diff matroskaenc.c @ 3759:27537074f2a9 libavformat

convert every muxer/demuxer to write/read sample_aspect_ratio from/to the corresponding AVStream instead of AVCodecContext
author aurel
date Sat, 23 Aug 2008 23:43:20 +0000
parents e8f67b6063c3
children f062deeedb8d
line wrap: on
line diff
--- a/matroskaenc.c	Sat Aug 23 23:13:58 2008 +0000
+++ b/matroskaenc.c	Sat Aug 23 23:43:20 2008 +0000
@@ -593,11 +593,10 @@
                 // XXX: interlace flag?
                 put_ebml_uint (pb, MATROSKA_ID_VIDEOPIXELWIDTH , codec->width);
                 put_ebml_uint (pb, MATROSKA_ID_VIDEOPIXELHEIGHT, codec->height);
-                if (codec->sample_aspect_ratio.num) {
-                    AVRational dar = av_mul_q(codec->sample_aspect_ratio,
-                                    (AVRational){codec->width, codec->height});
-                    put_ebml_uint(pb, MATROSKA_ID_VIDEODISPLAYWIDTH , dar.num);
-                    put_ebml_uint(pb, MATROSKA_ID_VIDEODISPLAYHEIGHT, dar.den);
+                if (st->sample_aspect_ratio.num) {
+                    int d_width = codec->width*av_q2d(st->sample_aspect_ratio);
+                    put_ebml_uint(pb, MATROSKA_ID_VIDEODISPLAYWIDTH , d_width);
+                    put_ebml_uint(pb, MATROSKA_ID_VIDEODISPLAYHEIGHT, codec->height);
                 }
                 end_ebml_master(pb, subinfo);
                 break;