[FFmpeg-trac] #9599(undetermined:reopened): VideoToolbox VP9 hwaccel freezes ffmpeg

FFmpeg trac at avcodec.org
Thu Jul 27 02:11:38 EEST 2023


#9599: VideoToolbox VP9 hwaccel freezes ffmpeg
-------------------------------------+-------------------------------------
             Reporter:  Eric Karnes  |                    Owner:  (none)
                 Type:  defect       |                   Status:  reopened
             Priority:  normal       |                Component:
                                     |  undetermined
              Version:  git-master   |               Resolution:
             Keywords:               |               Blocked By:
  videotoolbox vp9                   |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
Comment (by Eric Karnes):

 I've grabbed a backtrace of the freeze using lldb

 {{{
 (lldb) thread info -s
 thread #1: tid = 0x5c4f8, 0x00007ff81a0d08ec
 libsystem_pthread.dylib`_pthread_cond_updateval + 1, queue = 'com.apple
 .main-thread', stop reason = instruction step into

 (lldb) thread list
 Process 40009 stopped
 * thread #1: tid = 0x5c4f8, 0x00007ff81a0d08ec
 libsystem_pthread.dylib`_pthread_cond_updateval + 1, queue = 'com.apple
 .main-thread', stop reason = instruction step into
   thread #2: tid = 0x5c4fc, 0x00007ff81a0965e6
 libsystem_kernel.dylib`__psynch_cvwait + 10
   thread #3: tid = 0x5c4fd, 0x00007ff81a0965e6
 libsystem_kernel.dylib`__psynch_cvwait + 10
   thread #4: tid = 0x5c4ff, 0x00007ff81a095162
 libsystem_kernel.dylib`__workq_kernreturn + 10
   thread #5: tid = 0x5c50a, 0x00007ff81a0965e6
 libsystem_kernel.dylib`__psynch_cvwait + 10
   thread #6: tid = 0x5c50b, 0x00007ff81a0965e6
 libsystem_kernel.dylib`__psynch_cvwait + 10
   thread #7: tid = 0x5c50c, 0x00007ff81a0965e6
 libsystem_kernel.dylib`__psynch_cvwait + 10
   thread #8: tid = 0x5c50d, 0x00007ff81a0965e6
 libsystem_kernel.dylib`__psynch_cvwait + 10
   thread #9: tid = 0x5c50e, 0x00007ff81a0965e6
 libsystem_kernel.dylib`__psynch_cvwait + 10
   thread #10: tid = 0x5c50f, 0x00007ff81a0965e6
 libsystem_kernel.dylib`__psynch_cvwait + 10
   thread #11: tid = 0x5c510, 0x00007ff81a0965e6
 libsystem_kernel.dylib`__psynch_cvwait + 10
   thread #12: tid = 0x5c511, 0x00007ff81a0965e6
 libsystem_kernel.dylib`__psynch_cvwait + 10
   thread #13: tid = 0x5c512, 0x00007ff81a0965e6
 libsystem_kernel.dylib`__psynch_cvwait + 10

 (lldb) bt all
 * thread #1, queue = 'com.apple.main-thread', stop reason = instruction
 step into
   * frame #0: 0x00007ff81a0d08ec
 libsystem_pthread.dylib`_pthread_cond_updateval + 1
     frame #1: 0x00007ff81a0d37df
 libsystem_pthread.dylib`_pthread_cond_wait + 1327
     frame #2: 0x000000010aef9f6b
 ffmpeg_g`tq_receive(tq=0x0000611000003b00, stream_idx=0x00007ff7b50c96e0,
 data=0x0000616000005180) at thread_queue.c:202:13
     frame #3: 0x000000010ae39078
 ffmpeg_g`dec_packet(ist=0x0000614000000440, pkt=0x0000610000010340,
 no_eof=0) at ffmpeg_dec.c:791:15
     frame #4: 0x000000010af1a86a
 ffmpeg_g`process_input_packet(ist=0x0000614000000440,
 pkt=0x0000610000010340, no_eof=0) at ffmpeg.c:820:15
     frame #5: 0x000000010af1c0ad ffmpeg_g`process_input(file_index=0) at
 ffmpeg.c:1144:11
     frame #6: 0x000000010af18ac3
 ffmpeg_g`transcode_step(ost=0x0000617000000780) at ffmpeg.c:1171:11
     frame #7: 0x000000010af154a2
 ffmpeg_g`transcode(err_rate_exceeded=0x00007ff7b50ca0c0) at
 ffmpeg.c:1232:15
     frame #8: 0x000000010af14d9a ffmpeg_g`main(argc=15,
 argv=0x00007ff7b50ca4e0) at ffmpeg.c:1358:11
     frame #9: 0x00007ff819d4a3a6 dyld`start + 1942
   thread #2
     frame #0: 0x00007ff81a0965e6 libsystem_kernel.dylib`__psynch_cvwait +
 10
     frame #1: 0x00007ff81a0d376b
 libsystem_pthread.dylib`_pthread_cond_wait + 1211
     frame #2: 0x00007ff8247741c1 CoreMedia`WaitOnConditionTimed + 82
     frame #3: 0x00007ff82475620d CoreMedia`FigSemaphoreWaitRelative + 161
     frame #4: 0x00007ff8291c9701
 VideoToolbox`VTDecompressionSessionWaitForAsynchronousFrames + 708
     frame #5: 0x000000010ea63577
 ffmpeg_g`videotoolbox_session_decode_frame(avctx=0x0000619000026780) at
 videotoolbox.c:729:18
     frame #6: 0x000000010ea61d0c
 ffmpeg_g`ff_videotoolbox_common_end_frame(avctx=0x0000619000026780,
 frame=0x0000616000005780) at videotoolbox.c:1021:14
     frame #7: 0x000000010ea6af13
 ffmpeg_g`videotoolbox_vp9_end_frame(avctx=0x0000619000026780) at
 videotoolbox_vp9.c:125:12
     frame #8: 0x000000010ed05998
 ffmpeg_g`vp9_decode_frame(avctx=0x0000619000026780,
 frame=0x0000616000005480, got_frame=0x0000700001f5d360,
 pkt=0x0000610000002a40) at vp9.c:1648:15
     frame #9: 0x000000010d02eb34
 ffmpeg_g`decode_simple_internal(avctx=0x0000619000026780,
 frame=0x0000616000005480, discarded_samples=0x0000700001f5d3e0) at
 decode.c:431:20
     frame #10: 0x000000010d02e00b
 ffmpeg_g`decode_simple_receive_frame(avctx=0x0000619000026780,
 frame=0x0000616000005480) at decode.c:605:15
     frame #11: 0x000000010d01ab09
 ffmpeg_g`decode_receive_frame_internal(avctx=0x0000619000026780,
 frame=0x0000616000005480) at decode.c:633:15
     frame #12: 0x000000010d01a552
 ffmpeg_g`avcodec_send_packet(avctx=0x0000619000026780,
 avpkt=0x0000610000008040) at decode.c:730:15
     frame #13: 0x000000010ae3ed84
 ffmpeg_g`packet_decode(ist=0x0000614000000440, pkt=0x0000610000008040,
 frame=0x000061600000ff80) at ffmpeg_dec.c:555:11
     frame #14: 0x000000010ae3db3b
 ffmpeg_g`decoder_thread(arg=0x0000614000000440) at ffmpeg_dec.c:702:15
     frame #15: 0x00007ff81a0d3202 libsystem_pthread.dylib`_pthread_start +
 99
     frame #16: 0x00007ff81a0cebab libsystem_pthread.dylib`thread_start +
 15
   thread #3
     frame #0: 0x00007ff81a0965e6 libsystem_kernel.dylib`__psynch_cvwait +
 10
     frame #1: 0x00007ff81a0d376b
 libsystem_pthread.dylib`_pthread_cond_wait + 1211
     frame #2: 0x000000010fa744f8
 ffmpeg_g`av_thread_message_queue_send_locked(mq=0x0000611000003c40,
 msg=0x0000700001fe0c80, flags=0) at threadmessage.c:129:9
     frame #3: 0x000000010fa743e0
 ffmpeg_g`av_thread_message_queue_send(mq=0x0000611000003c40,
 msg=0x0000700001fe0c80, flags=0) at threadmessage.c:166:11
     frame #4: 0x000000010ae5b473
 ffmpeg_g`input_thread(arg=0x0000612000000640) at ffmpeg_demux.c:650:15
     frame #5: 0x00007ff81a0d3202 libsystem_pthread.dylib`_pthread_start +
 99
     frame #6: 0x00007ff81a0cebab libsystem_pthread.dylib`thread_start + 15
   thread #4
     frame #0: 0x00007ff81a095162 libsystem_kernel.dylib`__workq_kernreturn
 + 10
     frame #1: 0x00007ff81a0cfca0 libsystem_pthread.dylib`_pthread_wqthread
 + 416
     frame #2: 0x00007ff81a0ceb97 libsystem_pthread.dylib`start_wqthread +
 15
   thread #5
     frame #0: 0x00007ff81a0965e6 libsystem_kernel.dylib`__psynch_cvwait +
 10
     frame #1: 0x00007ff81a0d376b
 libsystem_pthread.dylib`_pthread_cond_wait + 1211
     frame #2: 0x000000010fa716a3
 ffmpeg_g`thread_worker(v=0x0000619000028a80) at slicethread.c:82:13
     frame #3: 0x00007ff81a0d3202 libsystem_pthread.dylib`_pthread_start +
 99
     frame #4: 0x00007ff81a0cebab libsystem_pthread.dylib`thread_start + 15
   thread #6
     frame #0: 0x00007ff81a0965e6 libsystem_kernel.dylib`__psynch_cvwait +
 10
     frame #1: 0x00007ff81a0d376b
 libsystem_pthread.dylib`_pthread_cond_wait + 1211
     frame #2: 0x000000010fa716a3
 ffmpeg_g`thread_worker(v=0x0000619000028b08) at slicethread.c:82:13
     frame #3: 0x00007ff81a0d3202 libsystem_pthread.dylib`_pthread_start +
 99
     frame #4: 0x00007ff81a0cebab libsystem_pthread.dylib`thread_start + 15
   thread #7
     frame #0: 0x00007ff81a0965e6 libsystem_kernel.dylib`__psynch_cvwait +
 10
     frame #1: 0x00007ff81a0d376b
 libsystem_pthread.dylib`_pthread_cond_wait + 1211
     frame #2: 0x000000010fa716a3
 ffmpeg_g`thread_worker(v=0x0000619000028b90) at slicethread.c:82:13
     frame #3: 0x00007ff81a0d3202 libsystem_pthread.dylib`_pthread_start +
 99
     frame #4: 0x00007ff81a0cebab libsystem_pthread.dylib`thread_start + 15
   thread #8
     frame #0: 0x00007ff81a0965e6 libsystem_kernel.dylib`__psynch_cvwait +
 10
     frame #1: 0x00007ff81a0d376b
 libsystem_pthread.dylib`_pthread_cond_wait + 1211
     frame #2: 0x000000010fa716a3
 ffmpeg_g`thread_worker(v=0x0000619000028c18) at slicethread.c:82:13
     frame #3: 0x00007ff81a0d3202 libsystem_pthread.dylib`_pthread_start +
 99
     frame #4: 0x00007ff81a0cebab libsystem_pthread.dylib`thread_start + 15
   thread #9
     frame #0: 0x00007ff81a0965e6 libsystem_kernel.dylib`__psynch_cvwait +
 10
     frame #1: 0x00007ff81a0d376b
 libsystem_pthread.dylib`_pthread_cond_wait + 1211
     frame #2: 0x000000010fa716a3
 ffmpeg_g`thread_worker(v=0x0000619000028ca0) at slicethread.c:82:13
     frame #3: 0x00007ff81a0d3202 libsystem_pthread.dylib`_pthread_start +
 99
     frame #4: 0x00007ff81a0cebab libsystem_pthread.dylib`thread_start + 15
   thread #10
     frame #0: 0x00007ff81a0965e6 libsystem_kernel.dylib`__psynch_cvwait +
 10
     frame #1: 0x00007ff81a0d376b
 libsystem_pthread.dylib`_pthread_cond_wait + 1211
     frame #2: 0x000000010fa716a3
 ffmpeg_g`thread_worker(v=0x0000619000028d28) at slicethread.c:82:13
     frame #3: 0x00007ff81a0d3202 libsystem_pthread.dylib`_pthread_start +
 99
     frame #4: 0x00007ff81a0cebab libsystem_pthread.dylib`thread_start + 15
   thread #11
     frame #0: 0x00007ff81a0965e6 libsystem_kernel.dylib`__psynch_cvwait +
 10
     frame #1: 0x00007ff81a0d376b
 libsystem_pthread.dylib`_pthread_cond_wait + 1211
     frame #2: 0x000000010fa716a3
 ffmpeg_g`thread_worker(v=0x0000619000028db0) at slicethread.c:82:13
     frame #3: 0x00007ff81a0d3202 libsystem_pthread.dylib`_pthread_start +
 99
     frame #4: 0x00007ff81a0cebab libsystem_pthread.dylib`thread_start + 15
   thread #12
     frame #0: 0x00007ff81a0965e6 libsystem_kernel.dylib`__psynch_cvwait +
 10
     frame #1: 0x00007ff81a0d376b
 libsystem_pthread.dylib`_pthread_cond_wait + 1211
     frame #2: 0x000000010fa716a3
 ffmpeg_g`thread_worker(v=0x0000619000028e38) at slicethread.c:82:13
     frame #3: 0x00007ff81a0d3202 libsystem_pthread.dylib`_pthread_start +
 99
     frame #4: 0x00007ff81a0cebab libsystem_pthread.dylib`thread_start + 15
   thread #13
     frame #0: 0x00007ff81a0965e6 libsystem_kernel.dylib`__psynch_cvwait +
 10
     frame #1: 0x00007ff81a0d376b
 libsystem_pthread.dylib`_pthread_cond_wait + 1211
     frame #2: 0x000000010aef9f6b
 ffmpeg_g`tq_receive(tq=0x00006110000043c0, stream_idx=0x0000700002687e40,
 data=0x0000610000030040) at thread_queue.c:202:13
     frame #3: 0x000000010aea3d62
 ffmpeg_g`muxer_thread(arg=0x0000611000002fc0) at ffmpeg_mux.c:215:15
     frame #4: 0x00007ff81a0d3202 libsystem_pthread.dylib`_pthread_start +
 99
     frame #5: 0x00007ff81a0cebab libsystem_pthread.dylib`thread_start + 15
 }}}
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/9599#comment:17>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list