summaryrefslogtreecommitdiff
path: root/libavformat/mov.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2015-06-21 19:41:40 +0200
committerMichael Niedermayer <michaelni@gmx.at>2015-06-21 20:32:06 +0200
commitae215e2b42dd172f6bfd9f2dad44c9d5c11884bf (patch)
tree14ac07afbbba24d9d557d0e3893bdf3699c31619 /libavformat/mov.c
parent3bcf61f495dcadbc9679a00e6b1023531288498d (diff)
parent6ec688e1bc76dd93151cbca1c340162ae4b10d77 (diff)
Merge commit '6ec688e1bc76dd93151cbca1c340162ae4b10d77'
* commit '6ec688e1bc76dd93151cbca1c340162ae4b10d77': mp3: enable packed main_data decoding in MP4 Conflicts: libavcodec/mpegaudiodec_template.c Only the parts needed to support the available sample are merged the remaining error checks are left in place Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/mov.c')
-rw-r--r--libavformat/mov.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 5ea6932801..47628165fd 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -1669,6 +1669,15 @@ static void mov_parse_stsd_audio(MOVContext *c, AVIOContext *pb,
ff_mov_get_lpcm_codec_id(st->codec->bits_per_coded_sample,
flags);
}
+ if (version == 0 || (version == 1 && sc->audio_cid != -2)) {
+ /* can't correctly handle variable sized packet as audio unit */
+ switch (st->codec->codec_id) {
+ case AV_CODEC_ID_MP2:
+ case AV_CODEC_ID_MP3:
+ st->need_parsing = AVSTREAM_PARSE_FULL;
+ break;
+ }
+ }
}
switch (st->codec->codec_id) {
@@ -1889,7 +1898,6 @@ static int mov_finalize_stsd_codec(MOVContext *c, AVIOContext *pb,
case AV_CODEC_ID_MP3:
/* force type after stsd for m1a hdlr */
st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
- st->need_parsing = AVSTREAM_PARSE_FULL;
break;
case AV_CODEC_ID_GSM:
case AV_CODEC_ID_ADPCM_MS: