Dynamic_input filters and avfilter_pad_get_type
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 <https://ffmpeg.org/doxygen/7.0/group__lavfi.html#ga01e3b7175b4477235061256f3398eecc> | AVFILTER_FLAG_DYNAMIC_INPUTS <https://ffmpeg.org/doxygen/7.0/group__lavfi.html#gae6ed6c10a03508829bdf17560e3e10e5> , so only output pad is defined, as far as I can see: static const AVFilterPad <https://ffmpeg.org/doxygen/7.0/structAVFilterPad.html> libplacebo_outputs <https://ffmpeg.org/doxygen/7.0/vf__libplacebo_8c.html#a3545e8f08cc238430300b27efc10cdaf>[] = { { .name <https://ffmpeg.org/doxygen/7.0/structAVFilterPad.html#afc112061a6035639934e0135aab7d425> = "default", .type = AVMEDIA_TYPE_VIDEO <https://ffmpeg.org/doxygen/7.0/group__lavu__misc.html#gga9a84bba4713dfced21a1a56163be1f48ac1a46f59be5c6c2d3412ab172d6b8cf5> , .config_props = &libplacebo_config_output <https://ffmpeg.org/doxygen/7.0/vf__libplacebo_8c.html#a09a97380118a876bb5fce38315c70f6a> , }, }; then when our code calls avfilter_pad_get_type() 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...
participants (1)
-
Andrew Randrianasulu