diff libmpdemux/demux_y4m.c @ 3800:3080ef830f93

aspect ratio patch by Rik Snel
author alex
date Thu, 27 Dec 2001 19:54:36 +0000
parents f21832490974
children 64f5c5749bad
line wrap: on
line diff
--- a/libmpdemux/demux_y4m.c	Thu Dec 27 18:53:11 2001 +0000
+++ b/libmpdemux/demux_y4m.c	Thu Dec 27 19:54:36 2001 +0000
@@ -116,7 +116,7 @@
 
 void demux_open_y4m(demuxer_t* demuxer){
     y4m_priv_t* priv = demuxer->priv;
-    y4m_ratio_t framerate;
+    y4m_ratio_t ratio;
     sh_video_t* sh=new_sh_video(demuxer,0);
     int err;
 
@@ -186,13 +186,17 @@
 	    mp_msg(MSGT_DEMUXER, MSGL_FATAL, "error parsing YUV4MPEG header: %s\n", y4m_strerr(err));
 	
 	if(!sh->fps) {
-    	    framerate = y4m_si_get_framerate(priv->si);
-    	    if (framerate.d != 0)
-        	sh->fps=(float)framerate.n/(float)framerate.d;
+    	    ratio = y4m_si_get_framerate(priv->si);
+    	    if (ratio.d != 0)
+        	sh->fps=(float)ratio.n/(float)ratio.d;
     	    else
         	sh->fps=15.0f;
 	}
 	sh->frametime=1.0f/sh->fps;
+	
+	ratio = y4m_si_get_sampleaspect(priv->si);
+	if (ratio.d != 0 && ratio.n != 0)
+	    sh->aspect = (float)ratio.n/(float)ratio.d;
 
 	sh->disp_w = y4m_si_get_width(priv->si);
 	sh->disp_h = y4m_si_get_height(priv->si);
@@ -224,7 +228,7 @@
 
 void demux_close_y4m(demuxer_t *demuxer)
 {
-    y4m_priv_t* priv;
+    y4m_priv_t* priv = demuxer->priv;
     
     if (!priv->is_older)
 	y4m_fini_stream_info(((y4m_priv_t*)demuxer->priv)->si);