# HG changeset patch # User bcoudurier # Date 1263850719 0 # Node ID 067c0af56a4cf91c786c287ee4e233b14e3d7c56 # Parent e09092917f7e7f7871348dfad2c14d36f3dc7ced move aspect ratio code at the end of the track parsing, fix cathedral-beta2-400extra-crop-avc.mp4 diff -r e09092917f7e -r 067c0af56a4c mov.c --- 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: