diff mxfenc.c @ 4278:5bf611a311b9 libavformat

reduce display aspect ratio
author bcoudurier
date Fri, 23 Jan 2009 20:20:36 +0000
parents a5e558f1a64f
children 2402eb8c37ff
line wrap: on
line diff
--- a/mxfenc.c	Fri Jan 23 20:15:46 2009 +0000
+++ b/mxfenc.c	Fri Jan 23 20:20:36 2009 +0000
@@ -558,6 +558,7 @@
 {
     ByteIOContext *pb = s->pb;
     int stored_height = (st->codec->height+15)/16*16;
+    AVRational dar;
 
     mxf_write_generic_desc(pb, st, mxf_mpegvideo_descriptor_key);
 
@@ -567,9 +568,14 @@
     mxf_write_local_tag(pb, 4, 0x3202);
     put_be32(pb, stored_height);
 
+    av_reduce(&dar.num, &dar.den,
+              st->codec->width*st->codec->sample_aspect_ratio.num,
+              st->codec->height*st->codec->sample_aspect_ratio.den,
+              1024*1024);
+
     mxf_write_local_tag(pb, 8, 0x320E);
-    put_be32(pb, st->codec->height * st->sample_aspect_ratio.den);
-    put_be32(pb, st->codec->width  * st->sample_aspect_ratio.num);
+    put_be32(pb, dar.num);
+    put_be32(pb, dar.den);
 }
 
 static void mxf_write_wav_desc(AVFormatContext *s, AVStream *st)