[FFmpeg-trac] #8428(undetermined:new): ffmpeg has problems with some AC-3/EAC-3 files with "syncword" 0x770b

FFmpeg trac at avcodec.org
Fri Dec 13 01:21:34 EET 2019


#8428: ffmpeg has problems with some AC-3/EAC-3 files with "syncword" 0x770b
-------------------------------------+-------------------------------------
             Reporter:  zhidd        |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 ffmpeg only seem to distinguish AC-3(.ac3)/EAC-3(.ec3) files by a 0x0b77
 syncword. so when i pass on an .ac3 file with 0x770b syncword to ffmpeg,
 it shows me the wrong .ac3 info. but when it comes to decoding said file
 into a lossless little-endian 16-bit PCM file with a RIFF header it only
 seems to have an entirely different header info from what's shown in mind.
 yet for whatever reason ffmpeg just stops decoding the whole thing after
 just two seconds.
 How to reproduce:
 {{{
 H:\ffmpeg\bin>ffmpeg.exe -i
 H:\ffmpeg\bin\[some_ps2_game][ac3_file_demuxed_from_dat+sz_file]movie_01.ac3
 H:\ffmpeg\bin\[some_ps2_game][ac3_file_demuxed_from_dat+sz_file]movie_01.wav
 ffmpeg version git-2019-12-11-13f2b6d Copyright (c) 2000-2019 the FFmpeg
 developers
   built with gcc 9.2.1 (GCC) 20191125
   configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
 fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-
 libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame
 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
 --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr
 --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack
 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2
 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-
 libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa
 --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx
 --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc
 --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
 --enable-amf
   libavutil      56. 36.101 / 56. 36.101
   libavcodec     58. 64.101 / 58. 64.101
   libavformat    58. 35.101 / 58. 35.101
   libavdevice    58.  9.101 / 58.  9.101
   libavfilter     7. 68.100 /  7. 68.100
   libswscale      5.  6.100 /  5.  6.100
   libswresample   3.  6.100 /  3.  6.100
   libpostproc    55.  6.100 / 55.  6.100
 [ac3 @ 000001c92b258ec0] Estimating duration from bitrate, this may be
 inaccurate
 Input #0, ac3, from
 'H:\ffmpeg\bin\[some_ps2_game][ac3_file_demuxed_from_dat+sz_file]movie_01.ac3':
   Duration: 00:02:51.78, start: 0.000000, bitrate: 112 kb/s
     Stream #0:0: Audio: eac3, 44100 Hz, 2.1, fltp, 112 kb/s
 Stream mapping:
   Stream #0:0 -> #0:0 (eac3 (native) -> pcm_s16le (native))
 Press [q] to stop, [?] for help
 [eac3 @ 000001c92b266980] Multiple frames in a packet.
 [eac3 @ 000001c92b266980] incomplete frame
 H:\ffmpeg\bin\[some_ps2_game][ac3_file_demuxed_from_dat+sz_file]movie_01.ac3:
 corrupt decoded frame in stream 0
 Output #0, wav, to
 'H:\ffmpeg\bin\[some_ps2_game][ac3_file_demuxed_from_dat+sz_file]movie_01.wav':
   Metadata:
     ISFT            : Lavf58.35.101
     Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz,
 5.1(side), s16, 4608 kb/s
     Metadata:
       encoder         : Lavc58.64.101 pcm_s16le
 [eac3 @ 000001c92b266980] new coupling strategy must be present in block 0
 [eac3 @ 000001c92b266980] error decoding the audio block
 Error while decoding stream #0:0: Error number -16976906 occurred
 [eac3 @ 000001c92b266980] new snr offsets must be present in block 0
 [eac3 @ 000001c92b266980] error decoding the audio block
 Error while decoding stream #0:0: Error number -16976906 occurred
 [eac3 @ 000001c92b266980] new coupling strategy must be present in block 0
 [eac3 @ 000001c92b266980] error decoding the audio block
 Error while decoding stream #0:0: Error number -16976906 occurred
 [eac3 @ 000001c92b266980] new coupling strategy must be present in block 0
 [eac3 @ 000001c92b266980] error decoding the audio block
 Error while decoding stream #0:0: Error number -16976906 occurred
 [eac3 @ 000001c92b266980] invalid coupling range (12 >= 11)
 [eac3 @ 000001c92b266980] error decoding the audio block
 Error while decoding stream #0:0: Error number -16976906 occurred
 [eac3 @ 000001c92b266980] expacc 125 is out-of-range
 [eac3 @ 000001c92b266980] error decoding the audio block
 Error while decoding stream #0:0: Error number -16976906 occurred
 [eac3 @ 000001c92b266980] exponent -2 is out-of-range
 [eac3 @ 000001c92b266980] error decoding the audio block
 Error while decoding stream #0:0: Error number -16976906 occurred
 size=    1296kB time=00:00:02.30 bitrate=4608.4kbits/s speed=12.1x
 video:0kB audio:1296kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 0.007686%
 }}}

 Anyway, the .7z file (which contains the .ac3 sample file) was made using
 '''''7-Zip ZS''''', an off-shoot of 7-Zip which apparently supports more
 compression algorithms than what base 7-Zip currently has. The version I
 used for this one is 19.00 v1.4.4 R1(Release 1).

 this bug could be an endianness problem for all i care, but keep in mind
 that i only have an .ac3 file with me as of this writing. anyway, here's
 the file.
 [https://www.sendspace.com/file/dzrgkm
 [some_ps2_game][ac3_file_demuxed_from_dat+sz_file]movie_01.7z]
 i got the file using my own quickBMS script that demuxes some dat+sz movie
 format i managed to discover through some PS2 game, hence the filename.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/8428>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list