[FFmpeg-trac] #5908(avcodec:new): audiotoolbox ac3 decoder will hang on some inputs

FFmpeg trac at avcodec.org
Mon Oct 24 21:38:07 EEST 2016


#5908: audiotoolbox ac3 decoder will hang on some inputs
---------------------------------+--------------------------------------
             Reporter:  tmm1     |                     Type:  defect
               Status:  new      |                 Priority:  normal
            Component:  avcodec  |                  Version:  git-master
             Keywords:           |               Blocked By:
             Blocking:           |  Reproduced by developer:  0
Analyzed by developer:  0        |
---------------------------------+--------------------------------------
 To reproduce, use ffplay to play this sample:
 http://s3.amazonaws.com/tmm1/ac3_at_deadlock.ts

 One ffplay starts, hit the left/right keys in rapid succession 3-4 times
 to seek forward and back. Audio will stop playing, and when you try to
 quit with the Q key the player will deadlock.

 {{{
 $ ./ffplay_g -threads 1 -codec:a ac3_at -i /tmp/ac3_at_deadlock.ts
 ffplay version n3.1.3-359-g2a65f1e Copyright (c) 2003-2016 the FFmpeg
 developers
   built with Apple LLVM version 8.0.0 (clang-800.0.38)
 ...
 }}}

 Using lldb I see the audio decoder is stuck with the following backtrace:

 {{{
 * thread #6: tid = 0x721540, 0x00007fffbce57bc9
 libsystem_platform.dylib`_platform_bzero$VARIANT$Haswell + 41
   * frame #0: 0x00007fffbce57bc9
 libsystem_platform.dylib`_platform_bzero$VARIANT$Haswell + 41
     frame #1: 0x00000001150072c2
 AudioCodecs`ACUDCDecoder::ProduceOutputBufferList(AudioBufferList*,
 unsigned int&, AudioStreamPacketDescription*) + 392
     frame #2: 0x000000011500712d
 AudioCodecs`ACUDCDecoder::ProduceOutputPackets(void*, unsigned int&,
 unsigned int&, AudioStreamPacketDescription*) + 53
     frame #3: 0x0000000115149384 AudioCodecs`ProduceOutputPackets(void*,
 void*, unsigned int*, unsigned int*, AudioStreamPacketDescription*,
 unsigned int*) + 23
     frame #4: 0x00007fffa6a9daa3
 AudioToolbox`CodecConverter::DecoderFillBuffer(unsigned int&,
 AudioBufferList&, AudioStreamPacketDescription*) + 1199
     frame #5: 0x00007fffa6aa9c93
 AudioToolbox`BufferedAudioConverter::GetInputBytes(unsigned int, unsigned
 int&, CABufferList const*&) + 135
     frame #6: 0x00007fffa6aa9b82
 AudioToolbox`CBRConverter::RenderOutput(CABufferList*, unsigned int,
 unsigned int&, AudioStreamPacketDescription*) + 106
     frame #7: 0x00007fffa6a9cc9d
 AudioToolbox`BufferedAudioConverter::FillBuffer(unsigned int&,
 AudioBufferList&, AudioStreamPacketDescription*) + 281
     frame #8: 0x00007fffa6a9cf7f
 AudioToolbox`AudioConverterChain::RenderOutput(CABufferList*, unsigned
 int, unsigned int&, AudioStreamPacketDescription*) + 99
     frame #9: 0x00007fffa6a9cc9d
 AudioToolbox`BufferedAudioConverter::FillBuffer(unsigned int&,
 AudioBufferList&, AudioStreamPacketDescription*) + 281
     frame #10: 0x00007fffa6a9c76f
 AudioToolbox`AudioConverterFillComplexBuffer + 282
     frame #11: 0x000000010d7316ab
 libavcodec.57.dylib`___lldb_unnamed_symbol344$$libavcodec.57.dylib + 715
     frame #12: 0x000000010dc753db
 libavcodec.57.dylib`avcodec_decode_audio4 + 251
     frame #13: 0x000000010d2fe7eb ffplay`___lldb_unnamed_symbol45$$ffplay
 + 747
     frame #14: 0x000000010d2fc0a1 ffplay`___lldb_unnamed_symbol39$$ffplay
 + 1153
     frame #15: 0x000000010eb2cf8d libSDL-1.2.0.dylib`SDL_RunThread + 53
     frame #16: 0x000000010eb4f764 libSDL-1.2.0.dylib`RunThread + 9
     frame #17: 0x00007fffbce5dabb libsystem_pthread.dylib`_pthread_body +
 180
     frame #18: 0x00007fffbce5da07 libsystem_pthread.dylib`_pthread_start +
 286
     frame #19: 0x00007fffbce5d231 libsystem_pthread.dylib`thread_start +
 13
 }}}

 This happens reproducibly on both macOS and iOS.

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


More information about the FFmpeg-trac mailing list