]> git.sesse.net Git - vlc/commitdiff
transcode/video: fit sar-calculation
authorIlkka Ollakka <ileoo@iki.fi>
Sat, 26 Dec 2009 14:23:33 +0000 (16:23 +0200)
committerIlkka Ollakka <ileoo@iki.fi>
Sat, 26 Dec 2009 16:41:02 +0000 (18:41 +0200)
Should fix aspect-ratio issues and fixes #2793

modules/stream_out/transcode/video.c

index 5e3ed9415ee761139b8051cc141f1be9fffba89e..15fd25d1e34712e8e3ff42f40840041c148be2a1 100644 (file)
@@ -435,11 +435,15 @@ static void transcode_video_encoder_init( sout_stream_t *p_stream,
     if( id->p_encoder->fmt_out.video.i_sar_num <= 0 ||
         id->p_encoder->fmt_out.video.i_sar_den <= 0 )
     {
-        id->p_encoder->fmt_out.video.i_sar_num =
-            f_aspect * id->p_encoder->fmt_out.video.i_height + 0.5;
-        id->p_encoder->fmt_out.video.i_sar_num =
-            VOUT_ASPECT_FACTOR * id->p_encoder->fmt_out.video.i_width;
+        id->p_encoder->fmt_out.video.i_sar_num = id->p_decoder->fmt_out.video.i_sar_num * i_src_width / i_dst_width;
+        id->p_encoder->fmt_out.video.i_sar_den = id->p_decoder->fmt_out.video.i_sar_den * i_src_height / i_dst_height;
     }
+    vlc_ureduce( &id->p_encoder->fmt_out.video.i_sar_num,
+                 &id->p_encoder->fmt_out.video.i_sar_den,
+                 id->p_encoder->fmt_out.video.i_sar_num,
+                 id->p_encoder->fmt_out.video.i_sar_den,
+                 0 );
+
     id->p_encoder->fmt_in.video.i_sar_num =
         id->p_encoder->fmt_out.video.i_sar_num;
     id->p_encoder->fmt_in.video.i_sar_den =