summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorAndrew Wason <rectalogic@rectalogic.com>2010-01-14 00:32:36 +0000
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>2010-01-14 00:32:36 +0000
commitff5ab5c8c9b87908639861a6d29d6cf330c4ed56 (patch)
tree920233a2652aa0e239ac0557f8d1ab8c1f97966d /libavformat
parent49544546b0c5b5a1df935ec7c34f42c8e2231267 (diff)
set stream aspect from mov tkhd width/height, patch by Andrew Wason, rectalogic at rectalogic dot com
Fixes issue 671. Originally committed as revision 21210 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/mov.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 50a5e789ca..f662ff9dfd 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -925,6 +925,16 @@ static int mov_read_stsd(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
st->codec->width = get_be16(pb); /* width */
st->codec->height = get_be16(pb); /* height */
+ if (st->codec->width != sc->width || st->codec->height != sc->height) {
+ AVRational r = av_d2q(
+ ((double)st->codec->height * sc->width) /
+ ((double)st->codec->width * sc->height), INT_MAX);
+ if (st->sample_aspect_ratio.num)
+ st->sample_aspect_ratio = av_mul_q(st->sample_aspect_ratio, r);
+ else
+ st->sample_aspect_ratio = r;
+ }
+
get_be32(pb); /* horiz resolution */
get_be32(pb); /* vert resolution */
get_be32(pb); /* data size, always 0 */