> -----Original Message----- > From: ffmpeg-devel <ffmpeg-devel-boun...@ffmpeg.org> On Behalf Of Mark > Thompson > Sent: Montag, 19. Mai 2025 22:08 > To: ffmpeg-devel@ffmpeg.org > Subject: Re: [FFmpeg-devel] [PATCH v2] ffmpeg: Don't print graphs if there are > no outputs yet > > On 18/05/2025 15:57, softworkz . wrote: > >> -----Original Message----- > >> From: ffmpeg-devel <ffmpeg-devel-boun...@ffmpeg.org> On Behalf Of Mark > >> Thompson > >> Sent: Sonntag, 18. Mai 2025 16:22 > >> To: ffmpeg-devel@ffmpeg.org > >> Subject: Re: [FFmpeg-devel] [PATCH v2] ffmpeg: Don't print graphs if there > are > >> no outputs yet > >> > >> ... > >> > >> Suggest doing any non-performance-critical development (like this) with > asan > >> enabled in future; it doesn't slow things down very much and makes it > easier > >> to catch and fix leaks as you go along. > > > > > > It's a good idea - I didn't have it on the record anymore after the pause. > > > > In the past, it had often caused trouble with MSVC (/fsanitize=address), so > > we had it only in a Linux CI - which this work didn't go through 😊 > > I'll check it out, maybe MS have made some progress with it. > > > > Thanks for the suggestion and the patches, > > sw > > I've run with the mermaidhtml output a bit as well. The output looks nice but > there are many asan errors, mostly from lost string alloctions - see below. > > I had a look at fixing these, but the object lifetime model appears more > complex than I could straightforwardly divine - it's not obvious when any > given object can be freed. I suggest that you with your greater understanding > would be better placed to fix these. > > Thanks, > > - Mark
Hi Mark, I think I got all of them covered now, patches sent. While hunting those leaks, I noticed a lot of leaks around QSV hardware acceleration, is that known and do you see these as well? I hope it doesn't go back to my original code for QSV D3D11.. Thanks sw Command was something like: -init_hw_device d3d11va=d1:2 -init_hw_device qsv@d1 -hwaccel qsv -c:v h264_qsv -i in.mkv -filter_complex "[0:0]scale_qsv=w=512:h=256[f1_out0]" -map [f1_out0] -c:v hevc_qsv out1.mkv ---------- Block 11879 at 0x000000005A25B810: 103 bytes ---------- Leak Hash: 0xBD2EC68A, Count: 1, Total 103 bytes Call Stack (TID 51116): ucrtbased.dll!aligned_malloc() V:\ffbuild\source\ffmpeg\libavutil\mem.c (110): ffmpegd.exe!av_malloc() + 0x12 bytes V:\ffbuild\source\ffmpeg\libavutil\mem.c (258): ffmpegd.exe!av_mallocz() + 0xC bytes V:\ffbuild\source\ffmpeg\libavutil\buffer.c (44): ffmpegd.exe!buffer_create() + 0xA bytes V:\ffbuild\source\ffmpeg\libavutil\buffer.c (64): ffmpegd.exe!av_buffer_create() + 0x34 bytes V:\ffbuild\source\ffmpeg\libavutil\hwcontext.c (282): ffmpegd.exe!av_hwframe_ctx_alloc() + 0x20 bytes V:\ffbuild\source\ffmpeg\libavutil\hwcontext_qsv.c (576): ffmpegd.exe!qsv_init_child_ctx() + 0x9 bytes V:\ffbuild\source\ffmpeg\libavutil\hwcontext_qsv.c (754): ffmpegd.exe!qsv_init_pool() + 0xC bytes V:\ffbuild\source\ffmpeg\libavutil\hwcontext_qsv.c (1428): ffmpegd.exe!qsv_frames_init() + 0xF bytes V:\ffbuild\source\ffmpeg\libavutil\hwcontext.c (364): ffmpegd.exe!av_hwframe_ctx_init() + 0xF bytes V:\ffbuild\source\ffmpeg\libavcodec\qsvdec.c (349): ffmpegd.exe!qsv_decode_preinit() + 0x13 bytes V:\ffbuild\source\ffmpeg\libavcodec\qsvdec.c (445): ffmpegd.exe!qsv_decode_header() + 0x21 bytes ---------- Block 14884 at 0x000000005A2548B0: 103 bytes ---------- Leak Hash: 0x48BB8D37, Count: 1, Total 103 bytes Call Stack (TID 51116): ucrtbased.dll!aligned_malloc() V:\ffbuild\source\ffmpeg\libavutil\mem.c (110): ffmpegd.exe!av_malloc() + 0x12 bytes V:\ffbuild\source\ffmpeg\libavutil\mem.c (258): ffmpegd.exe!av_mallocz() + 0xC bytes V:\ffbuild\source\ffmpeg\libavutil\buffer.c (105): ffmpegd.exe!av_buffer_ref() + 0xA bytes V:\ffbuild\source\ffmpeg\libavcodec\qsv.c (764): ffmpegd.exe!qsv_create_mids() + 0xC bytes V:\ffbuild\source\ffmpeg\libavcodec\qsv.c (1143): ffmpegd.exe!ff_qsv_init_session_frames() + 0xF bytes V:\ffbuild\source\ffmpeg\libavcodec\qsvdec.c (211): ffmpegd.exe!qsv_init_session() + 0x77 bytes V:\ffbuild\source\ffmpeg\libavcodec\qsvdec.c (381): ffmpegd.exe!qsv_decode_preinit() + 0x38 bytes V:\ffbuild\source\ffmpeg\libavcodec\qsvdec.c (445): ffmpegd.exe!qsv_decode_header() + 0x21 bytes V:\ffbuild\source\ffmpeg\libavcodec\qsvdec.c (1026): ffmpegd.exe!qsv_process_data() + 0x2A bytes V:\ffbuild\source\ffmpeg\libavcodec\qsvdec.c (1186): ffmpegd.exe!qsv_decode_frame() + 0x34 bytes V:\ffbuild\source\ffmpeg\libavcodec\decode.c (442): ffmpegd.exe!decode_simple_internal() + 0x23 bytes V:\ffbuild\source\ffmpeg\libavcodec\decode.c (600): ffmpegd.exe!decode_simple_receive_frame() + 0x17 bytes V:\ffbuild\source\ffmpeg\libavcodec\decode.c (636): ffmpegd.exe!ff_decode_receive_frame_internal() + 0x13 bytes V:\ffbuild\source\ffmpeg\libavcodec\decode.c (653): ffmpegd.exe!decode_receive_frame_internal() + 0x13 bytes V:\ffbuild\source\ffmpeg\libavcodec\decode.c (729): ffmpegd.exe!avcodec_send_packet() + 0x17 bytes V:\ffbuild\source\ffmpeg\fftools\ffmpeg_dec.c (724): ffmpegd.exe!packet_decode() + 0x12 bytes V:\ffbuild\source\ffmpeg\fftools\ffmpeg_dec.c (952): ffmpegd.exe!decoder_thread() + 0x30 bytes V:\ffbuild\source\ffmpeg\fftools\ffmpeg_sched.c (2534): ffmpegd.exe!task_wrapper() + 0x11 bytes V:\ffbuild\source\ffmpeg\compat\w32pthreads.h (78): ffmpegd.exe!win32thread_worker() + 0x11 bytes ucrtbased.dll!register_onexit_function() + 0xF5 bytes KERNEL32.DLL!BaseThreadInitThunk() + 0x17 bytes ntdll.dll!RtlUserThreadStart() + 0x2C bytes ---------- Block 11870 at 0x000000005A1E1DF0: 127 bytes ---------- Leak Hash: 0x73D25304, Count: 1, Total 127 bytes Call Stack (TID 51116): ucrtbased.dll!aligned_malloc() V:\ffbuild\source\ffmpeg\libavutil\mem.c (110): ffmpegd.exe!av_malloc() + 0x12 bytes V:\ffbuild\source\ffmpeg\libavutil\mem.c (258): ffmpegd.exe!av_mallocz() + 0xC bytes V:\ffbuild\source\ffmpeg\libavutil\hwcontext.c (273): ffmpegd.exe!av_hwframe_ctx_alloc() + 0xD bytes V:\ffbuild\source\ffmpeg\libavutil\hwcontext_qsv.c (576): ffmpegd.exe!qsv_init_child_ctx() + 0x9 bytes V:\ffbuild\source\ffmpeg\libavutil\hwcontext_qsv.c (754): ffmpegd.exe!qsv_init_pool() + 0xC bytes V:\ffbuild\source\ffmpeg\libavutil\hwcontext_qsv.c (1428): ffmpegd.exe!qsv_frames_init() + 0xF bytes V:\ffbuild\source\ffmpeg\libavutil\hwcontext.c (364): ffmpegd.exe!av_hwframe_ctx_init() + 0xF bytes V:\ffbuild\source\ffmpeg\libavcodec\qsvdec.c (349): ffmpegd.exe!qsv_decode_preinit() + 0x13 bytes V:\ffbuild\source\ffmpeg\libavcodec\qsvdec.c (445): ffmpegd.exe!qsv_decode_header() + 0x21 bytes V:\ffbuild\source\ffmpeg\libavcodec\qsvdec.c (1026): ffmpegd.exe!qsv_process_data() + 0x2A bytes V:\ffbuild\source\ffmpeg\libavcodec\qsvdec.c (1186): ffmpegd.exe!qsv_decode_frame() + 0x34 bytes V:\ffbuild\source\ffmpeg\libavcodec\decode.c (442): ffmpegd.exe!decode_simple_internal() + 0x23 bytes V:\ffbuild\source\ffmpeg\libavcodec\decode.c (600): ffmpegd.exe!decode_simple_receive_frame() + 0x17 bytes V:\ffbuild\source\ffmpeg\libavcodec\decode.c (636): ffmpegd.exe!ff_decode_receive_frame_internal() + 0x13 bytes V:\ffbuild\source\ffmpeg\libavcodec\decode.c (653): ffmpegd.exe!decode_receive_frame_internal() + 0x13 bytes V:\ffbuild\source\ffmpeg\libavcodec\decode.c (729): ffmpegd.exe!avcodec_send_packet() + 0x17 bytes V:\ffbuild\source\ffmpeg\fftools\ffmpeg_dec.c (724): ffmpegd.exe!packet_decode() + 0x12 bytes V:\ffbuild\source\ffmpeg\fftools\ffmpeg_dec.c (952): ffmpegd.exe!decoder_thread() + 0x30 bytes V:\ffbuild\source\ffmpeg\fftools\ffmpeg_sched.c (2534): ffmpegd.exe!task_wrapper() + 0x11 bytes V:\ffbuild\source\ffmpeg\compat\w32pthreads.h (78): ffmpegd.exe!win32thread_worker() + 0x11 bytes ucrtbased.dll!register_onexit_function() + 0xF5 bytes KERNEL32.DLL!BaseThreadInitThunk() + 0x17 bytes ntdll.dll!RtlUserThreadStart() + 0x2C bytes ---------- Block 13196 at 0x000000005A049A40: 271 bytes ---------- Leak Hash: 0x8D8100C0, Count: 1, Total 271 bytes Call Stack (TID 51116): ucrtbased.dll!aligned_malloc() V:\ffbuild\source\ffmpeg\libavutil\mem.c (110): ffmpegd.exe!av_malloc() + 0x12 bytes V:\ffbuild\source\ffmpeg\libavutil\mem.c (258): ffmpegd.exe!av_mallocz() + 0xC bytes V:\ffbuild\source\ffmpeg\libavutil\mem.c (270): ffmpegd.exe!av_calloc() V:\ffbuild\source\ffmpeg\libavutil\hwcontext_qsv.c (1436): ffmpegd.exe!qsv_frames_init() + 0x15 bytes V:\ffbuild\source\ffmpeg\libavutil\hwcontext.c (364): ffmpegd.exe!av_hwframe_ctx_init() + 0xF bytes V:\ffbuild\source\ffmpeg\libavcodec\qsvdec.c (349): ffmpegd.exe!qsv_decode_preinit() + 0x13 bytes V:\ffbuild\source\ffmpeg\libavcodec\qsvdec.c (445): ffmpegd.exe!qsv_decode_header() + 0x21 bytes V:\ffbuild\source\ffmpeg\libavcodec\qsvdec.c (1026): ffmpegd.exe!qsv_process_data() + 0x2A bytes V:\ffbuild\source\ffmpeg\libavcodec\qsvdec.c (1186): ffmpegd.exe!qsv_decode_frame() + 0x34 bytes V:\ffbuild\source\ffmpeg\libavcodec\decode.c (442): ffmpegd.exe!decode_simple_internal() + 0x23 bytes V:\ffbuild\source\ffmpeg\libavcodec\decode.c (600): ffmpegd.exe!decode_simple_receive_frame() + 0x17 bytes V:\ffbuild\source\ffmpeg\libavcodec\decode.c (636): ffmpegd.exe!ff_decode_receive_frame_internal() + 0x13 bytes V:\ffbuild\source\ffmpeg\libavcodec\decode.c (653): ffmpegd.exe!decode_receive_frame_internal() + 0x13 bytes V:\ffbuild\source\ffmpeg\libavcodec\decode.c (729): ffmpegd.exe!avcodec_send_packet() + 0x17 bytes V:\ffbuild\source\ffmpeg\fftools\ffmpeg_dec.c (724): ffmpegd.exe!packet_decode() + 0x12 bytes V:\ffbuild\source\ffmpeg\fftools\ffmpeg_dec.c (952): ffmpegd.exe!decoder_thread() + 0x30 bytes V:\ffbuild\source\ffmpeg\fftools\ffmpeg_sched.c (2534): ffmpegd.exe!task_wrapper() + 0x11 bytes V:\ffbuild\source\ffmpeg\compat\w32pthreads.h (78): ffmpegd.exe!win32thread_worker() + 0x11 bytes ucrtbased.dll!register_onexit_function() + 0xF5 bytes KERNEL32.DLL!BaseThreadInitThunk() + 0x17 bytes ntdll.dll!RtlUserThreadStart() + 0x2C bytes _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".