[FFmpeg-trac] #4258(avcodec:open): HEVC Decoder Hang in Multi-threaded Slice Type Decoding

FFmpeg trac at avcodec.org
Fri Sep 11 04:23:34 CEST 2015


#4258: HEVC Decoder Hang in Multi-threaded Slice Type Decoding
-------------------------------------+-------------------------------------
             Reporter:  jlsantiago0  |                    Owner:
                 Type:  defect       |                   Status:  open
             Priority:  important    |                Component:  avcodec
              Version:  git-master   |               Resolution:
             Keywords:  hevc         |               Blocked By:
  deadlock regression                |  Reproduced by developer:  1
             Blocking:               |
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
Changes (by cehoyos):

 * keywords:  hevc deadlock => hevc deadlock regression


Comment:

 Regression since 0c8aba3842a718eb9139fc88b7b60dc79e127bd7
 {{{
 (gdb) r -thread_type slice -threads 2 -i ffmpeg-issue-4258-test-case2
 -short-garbage_cut.dat -f null -
 Starting program: ffmpeg_g -thread_type slice -threads 2 -i ffmpeg-
 issue-4258-test-case2-short-garbage_cut.dat -f null -
 [Thread debugging using libthread_db enabled]
 Using host libthread_db library "/lib64/libthread_db.so.1".
 ffmpeg version N-75185-gf58e011 Copyright (c) 2000-2015 the FFmpeg
 developers
   built with gcc 4.7 (SUSE Linux)
   configuration: --enable-gpl
   libavutil      55.  2.100 / 55.  2.100
   libavcodec     57.  1.100 / 57.  1.100
   libavformat    57.  0.100 / 57.  0.100
   libavdevice    57.  0.100 / 57.  0.100
   libavfilter     6.  1.100 /  6.  1.100
   libswscale      4.  0.100 /  4.  0.100
   libswresample   2.  0.100 /  2.  0.100
   libpostproc    54.  0.100 / 54.  0.100
 [hevc @ 0x1c62380] PPS id out of range: 0
     Last message repeated 1 times
 [hevc @ 0x1c62380] Error parsing NAL unit #2.
 [hevc @ 0x1c62380] PPS id out of range: 0
     Last message repeated 1 times
 [hevc @ 0x1c62380] Error parsing NAL unit #2.
 [hevc @ 0x1c62380] PPS id out of range: 0
     Last message repeated 1 times
 [hevc @ 0x1c62380] Error parsing NAL unit #2.
 [hevc @ 0x1c62380] PPS id out of range: 0
     Last message repeated 1 times
 [hevc @ 0x1c62380] Error parsing NAL unit #2.
 [hevc @ 0x1c62380] PPS id out of range: 0
     Last message repeated 1 times
 [hevc @ 0x1c62380] Error parsing NAL unit #2.
 [hevc @ 0x1c62380] PPS id out of range: 0
     Last message repeated 1 times
 [hevc @ 0x1c62380] Error parsing NAL unit #2.
 Input #0, mpegts, from 'ffmpeg-issue-4258-test-case2-short-
 garbage_cut.dat':
   Duration: 00:00:16.18, start: 28442.208811, bitrate: 1265 kb/s
   Program 1
     Metadata:
       service_name    : Haivision Network Video Media Server
       service_provider: Haivision Network Video http://www.haivision.com
     Stream #0:0[0x100]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000
 Hz, stereo, fltp, 124 kb/s
     Stream #0:1[0x21]: Video: hevc (Main) ([36][0][0][0] / 0x0024),
 yuv420p(tv), 1280x720 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn,
 29.97 tbc
 [New Thread 0x7ffff14f0700 (LWP 24078)]
 [New Thread 0x7ffff0cef700 (LWP 24079)]
 [New Thread 0x7ffff04ee700 (LWP 24080)]
 [New Thread 0x7fffefced700 (LWP 24081)]
 [New Thread 0x7fffef4ec700 (LWP 24082)]
 [New Thread 0x7fffeeceb700 (LWP 24083)]
 [New Thread 0x7fffee4ea700 (LWP 24084)]
 [New Thread 0x7fffedce9700 (LWP 24085)]
 [New Thread 0x7fffed4e8700 (LWP 24086)]
 [New Thread 0x7fffecce7700 (LWP 24087)]
 [New Thread 0x7fffec4e6700 (LWP 24088)]
 [New Thread 0x7fffebce5700 (LWP 24089)]
 [New Thread 0x7fffeb4e4700 (LWP 24090)]
 [New Thread 0x7fffeace3700 (LWP 24091)]
 [New Thread 0x7fffea4e2700 (LWP 24092)]
 [New Thread 0x7fffe9ce1700 (LWP 24093)]
 [New Thread 0x7fffe94e0700 (LWP 24094)]
 [New Thread 0x7fffe8cdf700 (LWP 24095)]
 [New Thread 0x7fffe84de700 (LWP 24096)]
 [New Thread 0x7fffe7cdd700 (LWP 24097)]
 Output #0, null, to 'pipe:':
   Metadata:
     encoder         : Lavf57.0.100
     Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1280x720
 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc
     Metadata:
       encoder         : Lavc57.1.100 rawvideo
     Stream #0:1: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
     Metadata:
       encoder         : Lavc57.1.100 pcm_s16le
 Stream mapping:
   Stream #0:1 -> #0:0 (hevc (native) -> rawvideo (native))
   Stream #0:0 -> #0:1 (aac (native) -> pcm_s16le (native))
 Press [q] to stop, [?] for help
 [hevc @ 0x1c65520] Could not find ref with POC 23
 [hevc @ 0x1c65520] Could not find ref with POC 22
 [null @ 0x1c659c0] Encoder did not produce proper pts, making some up.
 [hevc @ 0x1c65520] The cu_qp_delta 47 is outside the valid range [-26,
 25].

 Program received signal SIGINT, Interrupt.
 0x00007ffff62728f4 in pthread_cond_wait@@GLIBC_2.3.2 () from
 /lib64/libpthread.so.0
 (gdb) bt
 #0  0x00007ffff62728f4 in pthread_cond_wait@@GLIBC_2.3.2 () from
 /lib64/libpthread.so.0
 #1  0x0000000000a4b803 in thread_park_workers (thread_count=2,
 c=0x1e20f00)
     at libavcodec/pthread_slice.c:142
 #2  thread_execute (avctx=<optimized out>, func=<optimized out>,
 arg=<optimized out>,
     ret=<optimized out>, job_count=<optimized out>, job_size=<optimized
 out>)
     at libavcodec/pthread_slice.c:174
 #3  0x00000000008b978b in hls_slice_data_wpp (nal=<optimized out>,
 s=0x1c9fc00)
     at libavcodec/hevc.c:2510
 #4  decode_nal_unit (nal=<optimized out>, s=0x1c9fc00) at
 libavcodec/hevc.c:2734
 #5  decode_nal_units (s=s at entry=0x1c9fc00, buf=<optimized out>,
 length=<optimized out>)
     at libavcodec/hevc.c:2793
 #6  0x00000000008b9927 in hevc_decode_frame (avctx=0x1c65520,
 data=0x1dff6e0,
     got_output=0x7fffffffd7cc, avpkt=0x7fffffffd530) at
 libavcodec/hevc.c:2897
 #7  0x0000000000b35d38 in avcodec_decode_video2 (avctx=0x1c65520,
     picture=picture at entry=0x1dff6e0,
 got_picture_ptr=got_picture_ptr at entry=0x7fffffffd7cc,
     avpkt=avpkt at entry=0x7fffffffda80) at libavcodec/utils.c:2096
 #8  0x000000000048fffd in decode_video (ist=ist at entry=0x1c65240,
     pkt=pkt at entry=0x7fffffffda80,
 got_output=got_output at entry=0x7fffffffd7cc)
     at ffmpeg.c:2070
 #9  0x00000000004931c1 in process_input_packet (pkt=0x7fffffffda30,
 ist=0x1c65240)
     at ffmpeg.c:2327
 #10 process_input (file_index=234234) at ffmpeg.c:3834
 #11 transcode_step () at ffmpeg.c:3922
 #12 transcode () at ffmpeg.c:3975
 #13 0x0000000000475cfb in main (argc=<optimized out>, argv=0x7fffffffdcc8)
 at ffmpeg.c:4158
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/4258#comment:10>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list