Dear Phyllis, I retested this patch on ffmpeg-7.0 based Cinelerra-gg and it works at least for libplacebo's tonemapper implementation.

BUT for ffmpeg 8.0 patchset it already included, as far as I can see. I " just" need to update mpv with newest libplacebo (joys of self-compiling some software) and then rebuild Slackbuild way cingg with ffmpeg 8.0, they sneaked breaking changes for older libplacebo compilation .... .

Can you install libplacebo-dev on you machine used for building new Appimage, and configure cingg to use it? From what I see libplacebo's upstream uses Meson build system, so it will be a bit rouch to properly integrate, esp. for older distros.... or so I think for now!

I am not sure about zimg because this one uses really funny license. But libplacebo widely known and should work over good Vulkan driver (like radv for my RX550).



---------- Forwarded message ---------
От: Andrew Randrianasulu <randrianasulu@gmail.com>
Date: сб, 10 мая 2025 г., 11:14
Subject: Re: [Libav-user] Dynamic_input filters and avfilter_pad_get_type
To: This list is about using libavcodec, libavformat, libavutil, libavdevice and libavfilter. <libav-user@ffmpeg.org>
Cc: Cinelerra.GG <cin@lists.cinelerra-gg.org>, Andrea paz <gamberucci.andrea@gmail.com>


On Sat, May 10, 2025 at 9:05 AM Paul B Mahol <onemda@gmail.com> wrote:
>
>
>
> On Fri, May 9, 2025 at 11:38 PM Andrew Randrianasulu <randrianasulu@gmail.com> 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?



>
>>
>>
>> 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-5.1/cinelerra/ffmpeg.C;h=1d0979df59f932628246678a920aca002d8dd88b;hb=HEAD#l3893
>>
>>
>>
>> _______________________________________________
>> Libav-user mailing list
>> Libav-user@ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/libav-user
>>
>> To unsubscribe, visit link above, or email
>> libav-user-request@ffmpeg.org with subject "unsubscribe".
>
> _______________________________________________
> Libav-user mailing list
> Libav-user@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/libav-user
>
> To unsubscribe, visit link above, or email
> libav-user-request@ffmpeg.org with subject "unsubscribe".