сб, 10 мая 2025 г., 11:14 Andrew Randrianasulu <[email protected]>:
On Sat, May 10, 2025 at 9:05 AM Paul B Mahol <[email protected]> wrote:
On Fri, May 9, 2025 at 11:38 PM Andrew Randrianasulu <
[email protected]> wrote:
I was looking at why our application (cinelerra-gg) crashed at trying
to use libplacebo
I found that libplacebo defines itself
https://ffmpeg.org/doxygen/7.0/vf__libplacebo_8c.html
as
.flags = AVFILTER_FLAG_HWDEVICE | AVFILTER_FLAG_DYNAMIC_INPUTS,
so only output pad is defined, as far as I can see:
static const AVFilterPad libplacebo_outputs[] = { { .name = "default", .type = AVMEDIA_TYPE_VIDEO, .config_props = &libplacebo_config_output, }, };
then when our code calls
avfilter_pad_get_type()
You need to call it only after filtergraph have been configured, not before because in such cases number of output pads may be 0 before configuration. In any case you need to check current number of input pads and output pads for each filter before trying to access them.
Thanks. Attached patch makes this crash go away, just 32-bit cingg can't cope with 4k frames filtering en-masse :)
Andrea, can you test attached patch + this opts file put alongside test 4k HDR video decodable by hardware?
Aw, tried to reduce resolution to very barest minimum allowed by hevc encoder (228*128!) and while libplacebo works (sloowly!) with software decoder, it does not produce good frames with Vulkan hw decoder (even if I seen in nvtop hw decoder really runs sometimes at close to 100%). So, something confuses libplacebo greatly if used like this. I also tried *_vulkan filters on input, hoping they will also pick up hw vulkan decoding device but apparently no?
it promptly crashes.
BC_Signals::dump_stack cin() [0x8b2c9e2] linux-gate.so.1(__kernel_rt_sigreturn+0) [0xf7fb8590] cin(avfilter_pad_get_type+0x14) [0x99266a4] cin(_ZN13FFVideoStream13create_filterEPKc+0xbc) [0x865669c] cin(_ZN6FFMPEG12open_decoderEv+0x80f) [0x865732f] cin(_ZN10FileFFMPEG9check_sigEP5Asset+0x81) [0x8670071] cin(_ZN4File5probeEv+0x376) [0x867cd86] cin(_ZN4File9open_fileEP11PreferencesP5Assetii+0x378) [0x867d628] cin(_ZN7MWindow14load_filenamesEP9ArrayListIPcEiii+0x250) [0x87301f0] cin(_ZN17CommandLineThread3runEv+0x53) [0x86e2cd3] cin(_ZN6Thread10entrypointEPv+0x41) [0x8b70c11] /lib/libpthread.so.0(+0x7328) [0xf7df9328] /lib/libc.so.6(clone+0x66) [0xf0373f06]
We still hope to get libplacebo's tonemapping + vulkan hevc decoding
going, so any pointers how to talk to those dynamic_input filters will be useful. Even swscale is dynamic_input in ffmpeg 7.1+, so I (we) really hope to keep it working, too.
Code:
https://git.cinelerra-gg.org/git/?p=goodguy/cinelerra.git;a=blob;f=cinelerra...
_______________________________________________ Libav-user mailing list [email protected] https://ffmpeg.org/mailman/listinfo/libav-user
To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
_______________________________________________ Libav-user mailing list [email protected] https://ffmpeg.org/mailman/listinfo/libav-user
To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".