[FFmpeg-devel] [PATCH] pthread_frame: attempt to get frame to reduce latency

James Almer jamrial at gmail.com
Thu Mar 12 14:18:39 EET 2020


On 3/12/2020 7:05 AM, Dai, Jianhui J wrote:
> Apologize for segfaults.
> I do pass FATE and some basic tests myself before submit for review.

It probably doesn't need to be mentioned, but since this affects frame
threading, make sure to run "make fate THREADS=N THREAD_TYPE=frame" or
similar.

> Fixed locally and wait for other review comments.
> 
> Thanks,
> Jianhui Dai
> 
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of Michael Niedermayer
> Sent: Wednesday, March 11, 2020 5:56 PM
> To: FFmpeg development discussions and patches <ffmpeg-devel at ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH] pthread_frame: attempt to get frame to reduce latency
> 
> On Tue, Mar 10, 2020 at 05:36:40PM +0800, Jianhui Dai wrote:
>> Avoid constant N frames latency in video streaming.
>>
>> Signed-off-by: Jianhui Dai <jianhui.j.dai at intel.com>
>> ---
>>  libavcodec/pthread_frame.c | 17 ++---------------
>>  1 file changed, 2 insertions(+), 15 deletions(-)
> 
> This patch causes segfaults
> 
> ./ffmpeg_g -i tickets/466/Brazil.ts -t 3 random.avi
> 
> Thread 1 "ffmpeg_g" received signal SIGSEGV, Segmentation fault.
> 0x0000555555e64a5d in submit_packet (p=0x5555578c5e80, user_avctx=0x55555787fac0, avpkt=0x555557845340) at libavcodec/pthread_frame.c:380
> 380	    PerThreadContext *prev_thread = fctx->prev_thread;
> (gdb) bt
> #0  0x0000555555e64a5d in submit_packet (p=0x5555578c5e80, user_avctx=0x55555787fac0, avpkt=0x555557845340) at libavcodec/pthread_frame.c:380
> #1  0x0000555555e64fea in ff_thread_decode_frame (avctx=0x55555787fac0, picture=0x555557845080, got_picture_ptr=0x7fffffffd344, avpkt=0x555557845340) at libavcodec/pthread_frame.c:486
> #2  0x0000555555bc5431 in decode_simple_internal (avctx=0x55555787fac0, frame=0x555557845080) at libavcodec/decode.c:430
> #3  0x0000555555bc6050 in decode_simple_receive_frame (avctx=0x55555787fac0, frame=0x555557845080) at libavcodec/decode.c:628
> #4  0x0000555555bc6120 in decode_receive_frame_internal (avctx=0x55555787fac0, frame=0x555557845080) at libavcodec/decode.c:646
> #5  0x0000555555bc6380 in avcodec_send_packet (avctx=0x55555787fac0, avpkt=0x7fffffffd530) at libavcodec/decode.c:704
> #6  0x0000555555694420 in decode (avctx=0x55555787fac0, frame=0x555557906280, got_frame=0x7fffffffd67c, pkt=0x7fffffffd530) at fftools/ffmpeg.c:2232
> #7  0x0000555555694cd0 in decode_video (ist=0x5555578f6900, pkt=0x7fffffffd6c0, got_output=0x7fffffffd67c, duration_pts=0x7fffffffd6b8, eof=0, decode_failed=0x7fffffffd680) at fftools/ffmpeg.c:2374
> #8  0x0000555555695dbd in process_input_packet (ist=0x5555578f6900, pkt=0x7fffffffd900, no_eof=0) at fftools/ffmpeg.c:2615
> #9  0x000055555569d74a in process_input (file_index=0) at fftools/ffmpeg.c:4509
> #10 0x000055555569dd0b in transcode_step () at fftools/ffmpeg.c:4629
> #11 0x000055555569de88 in transcode () at fftools/ffmpeg.c:4683
> #12 0x000055555569e7ae in main (argc=6, argv=0x7fffffffe268) at fftools/ffmpeg.c:4885
> 
> https://samples.ffmpeg.org/ffmpeg-bugs/trac/ticket466/
> 
> [...]
> 



More information about the ffmpeg-devel mailing list