Opened 5 years ago
Closed 5 years ago
#7817 closed defect (fixed)
Fails to parse mp4 header
Reported by: | Tim | Owned by: | |
---|---|---|---|
Priority: | important | Component: | avformat |
Version: | git-master | Keywords: | mov regression |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
Submitted by HandBrake user:
https://forum.handbrake.fr/viewtopic.php?f=11&t=38897&p=183585#p183572
Also fails with git master:
ffmpeg -i 01_0001.mp4
ffmpeg version N-93476-g391f884675 Copyright (c) 2000-2019 the FFmpeg developers
built with Apple LLVM version 10.0.1 (clang-1001.0.46.3)
configuration:
libavutil 56. 26.100 / 56. 26.100
libavcodec 58. 47.106 / 58. 47.106
libavformat 58. 26.101 / 58. 26.101
libavdevice 58. 7.100 / 58. 7.100
libavfilter 7. 48.100 / 7. 48.100
libswscale 5. 4.100 / 5. 4.100
libswresample 3. 4.100 / 3. 4.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f88b3000000] error reading header
01_0001.mp4: Invalid data found when processing input
Sample above 10 MB (NSFW) available here: https://www.dropbox.com/s/tb5dox5ulywf14q/01_0001.mp4?dl=0
Sample appears to play fine in VLC, FWIW.
Attachments (1)
Change History (4)
comment:1 by , 5 years ago
Keywords: | mov regression added |
---|---|
Priority: | normal → important |
Reproduced by developer: | set |
Status: | new → open |
by , 5 years ago
Attachment: | 01_0001_cut.mp4 added |
---|
comment:2 by , 5 years ago
abf669479 is the proximate source of the error, but the root cause is 1c2e07b8111b24f62b8d1bda62907848e34dfbcb
The esds box for this track has a tag for MP4DecSpecificDescrTag but the length is 0. The commit I referenced stopped allowing that.
However, 14496-3 (2009) 9.D.2.2 says,
No decSpecificInfo is defined for MPEG-1 Audio or MPEG-2 Audio, i.e. in the case of DecoderConfigDescriptor.objectTypeIndication values that refer to streams complying with ISO/IEC 11172-3 (MPEG-1 Audio) and ISO/IEC 13818-3 (MPEG-2 Audio). In these cases audio decoders receive all relevant information in the ‘header()’ element of their own bitstream and can forward the composition memory format to the composition memory. Thus, changes in the output format need to be dealt with dynamically, i.e. without an elementary stream descriptor update.
So, an exception needs to be added for MPEG-1/2 audio streams. MPEG-2 AAC is not included.
comment:3 by , 5 years ago
Resolution: | → fixed |
---|---|
Status: | open → closed |
Regression since abf669479c0098ab5eb184a167e57a70aabb942b