diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2015-06-21 19:41:40 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-06-21 20:32:06 +0200 |
commit | ae215e2b42dd172f6bfd9f2dad44c9d5c11884bf (patch) | |
tree | 14ac07afbbba24d9d557d0e3893bdf3699c31619 /libavformat | |
parent | 3bcf61f495dcadbc9679a00e6b1023531288498d (diff) | |
parent | 6ec688e1bc76dd93151cbca1c340162ae4b10d77 (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')
-rw-r--r-- | libavformat/mov.c | 10 |
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: |