changeset 5561:067c0af56a4c libavformat

move aspect ratio code at the end of the track parsing, fix cathedral-beta2-400extra-crop-avc.mp4
author bcoudurier
date Mon, 18 Jan 2010 21:38:39 +0000
parents e09092917f7e
children 5d938dd16b34
files mov.c
diffstat 1 files changed, 10 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/mov.c	Mon Jan 18 13:44:12 2010 +0000
+++ b/mov.c	Mon Jan 18 21:38:39 2010 +0000
@@ -925,16 +925,6 @@
             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 */
@@ -1662,6 +1652,16 @@
     } else
         sc->pb = c->fc->pb;
 
+    if (st->codec->codec_type == CODEC_TYPE_VIDEO &&
+        (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;
+    }
+
     switch (st->codec->codec_id) {
 #if CONFIG_H261_DECODER
     case CODEC_ID_H261: