]> git.sesse.net Git - vlc/commitdiff
calculate SAR from visible width/height
authorMarian Durkovic <md@videolan.org>
Tue, 18 Oct 2005 07:04:46 +0000 (07:04 +0000)
committerMarian Durkovic <md@videolan.org>
Tue, 18 Oct 2005 07:04:46 +0000 (07:04 +0000)
src/input/decoder.c

index 3d9276226c02284f0bf9d306f9705fcdc1981f11..fb1f9319c6736e0665bc5b36aaf1839dbb2bf15c 100644 (file)
@@ -917,14 +917,29 @@ static picture_t *vout_new_buffer( decoder_t *p_dec )
             return NULL;
         }
 
+        if( !p_dec->fmt_out.video.i_visible_width ||
+            !p_dec->fmt_out.video.i_visible_height )
+        {
+            p_dec->fmt_out.video.i_visible_width =
+                p_dec->fmt_out.video.i_width;
+            p_dec->fmt_out.video.i_visible_height =
+                p_dec->fmt_out.video.i_height;
+        }
+
+        if( p_dec->fmt_out.video.i_visible_height == 1088 )
+        {
+/*            p_dec->fmt_out.video.i_visible_height = 1080;  */
+            msg_Warn( p_dec, "Broken HDTV stream (display_height=1088)");
+        }
+
         if( !p_dec->fmt_out.video.i_sar_num ||
             !p_dec->fmt_out.video.i_sar_den )
         {
-            p_dec->fmt_out.video.i_sar_num =
-              p_dec->fmt_out.video.i_aspect * p_dec->fmt_out.video.i_height;
+            p_dec->fmt_out.video.i_sar_num = p_dec->fmt_out.video.i_aspect * 
+              p_dec->fmt_out.video.i_visible_height;
 
             p_dec->fmt_out.video.i_sar_den = VOUT_ASPECT_FACTOR *
-              p_dec->fmt_out.video.i_width;
+              p_dec->fmt_out.video.i_visible_width;
         }
 
         vlc_ureduce( &p_dec->fmt_out.video.i_sar_num,
@@ -932,15 +947,6 @@ static picture_t *vout_new_buffer( decoder_t *p_dec )
                      p_dec->fmt_out.video.i_sar_num,
                      p_dec->fmt_out.video.i_sar_den, 0 );
 
-        if( !p_dec->fmt_out.video.i_visible_width ||
-            !p_dec->fmt_out.video.i_visible_height )
-        {
-            p_dec->fmt_out.video.i_visible_width =
-                p_dec->fmt_out.video.i_width;
-            p_dec->fmt_out.video.i_visible_height =
-                p_dec->fmt_out.video.i_height;
-        }
-
         p_dec->fmt_out.video.i_chroma = p_dec->fmt_out.i_codec;
         p_sys->video = p_dec->fmt_out.video;