<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Wed, May 14, 2025 at 11:25 AM Andrew Randrianasulu <<a href="mailto:randrianasulu@gmail.com">randrianasulu@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">ср, 14 мая 2025 г., 14:10 Paul B Mahol <<a href="mailto:onemda@gmail.com" target="_blank">onemda@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, May 14, 2025 at 11:02 AM Andrew Randrianasulu <<a href="mailto:randrianasulu@gmail.com" rel="noreferrer" target="_blank">randrianasulu@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wed, May 14, 2025 at 10:59 AM Paul B Mahol <<a href="mailto:onemda@gmail.com" rel="noreferrer" target="_blank">onemda@gmail.com</a>> wrote:<br>
><br>
><br>
><br>
> On Wed, May 14, 2025 at 4:27 AM Andrew Randrianasulu <<a href="mailto:randrianasulu@gmail.com" rel="noreferrer" target="_blank">randrianasulu@gmail.com</a>> wrote:<br>
>><br>
>> On Sat, May 10, 2025 at 11:14 AM Andrew Randrianasulu<br>
>> <<a href="mailto:randrianasulu@gmail.com" rel="noreferrer" target="_blank">randrianasulu@gmail.com</a>> wrote:<br>
>> ><br>
>> > On Sat, May 10, 2025 at 9:05 AM Paul B Mahol <<a href="mailto:onemda@gmail.com" rel="noreferrer" target="_blank">onemda@gmail.com</a>> wrote:<br>
>> > ><br>
>> > ><br>
>> > ><br>
>> > > On Fri, May 9, 2025 at 11:38 PM Andrew Randrianasulu <<a href="mailto:randrianasulu@gmail.com" rel="noreferrer" target="_blank">randrianasulu@gmail.com</a>> wrote:<br>
>> > >><br>
>> > >> I was looking at why our application (cinelerra-gg) crashed at trying to use libplacebo<br>
>> > >><br>
>> > >> I found that libplacebo defines itself<br>
>> > >><br>
>> > >> <a href="https://ffmpeg.org/doxygen/7.0/vf__libplacebo_8c.html" rel="noreferrer noreferrer" target="_blank">https://ffmpeg.org/doxygen/7.0/vf__libplacebo_8c.html</a><br>
>> > >><br>
>> > >> as<br>
>> > >><br>
>> > >>  .flags = AVFILTER_FLAG_HWDEVICE | AVFILTER_FLAG_DYNAMIC_INPUTS,<br>
>> > >><br>
>> > >> so only output pad is defined, as far as I can see:<br>
>> > >><br>
>> > >> static const AVFilterPad libplacebo_outputs[] = {<br>
>> > >>   {<br>
>> > >>   .name = "default",<br>
>> > >>   .type = AVMEDIA_TYPE_VIDEO,<br>
>> > >>   .config_props = &libplacebo_config_output,<br>
>> > >>   },<br>
>> > >>  };<br>
>> > >><br>
>> > >><br>
>> > >><br>
>> > >> then when our code calls<br>
>> > >><br>
>> > >> avfilter_pad_get_type()<br>
>> > ><br>
>> > ><br>
>> > > 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.<br>
>> > > In  any case you need to check current number of input pads and output pads for each filter before trying to access them.<br>
>> > ><br>
>> ><br>
>> > Thanks. Attached patch  makes this crash go away, just 32-bit cingg<br>
>> > can't cope with 4k frames filtering en-masse :)<br>
>><br>
>> Sadly wtch ffmpeg.git patch does not work anymore.<br>
>><br>
>> I tried to use<br>
>><br>
>> int       nb_pads = avfilter_filter_pad_count(filter,0);<br>
><br>
><br>
> input pads != output pads<br>
<br>
<br>
well, sure, but I thought after you create filtergraph filters inside<br>
it will know, um, their ins and outs ?<br></blockquote><div><br></div><div>Yes, it should.</div><div><br></div><div>Dunno about your project code quality and coding practices so can not help more.</div><div>Make sure that you test with valgrind and/or address sanitizers turned on when developing your software.</div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">I think here is more logical error - may be we send null if filter name unknown for current  libav* build ....</div><div dir="auto"><br></div><div dir="auto">and avfilter_filter_pad_count dislikes this very much and crash? So backtrace points at it, but it basically innocent, while may be additional check for this bad input will not hurt?</div></div></blockquote><div><br></div><div>avfilter_filter_pad_count takes only const filter, which means not context that get later created.</div><div><br></div><div>After filter context have been created you just loop over filter_ctx->inputs[] and filter_ctx->outputs[] arrays.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
><br>
>><br>
>><br>
>> but this one apparently crashes when I try zscale :(<br>
>><br>
>> while may be zscale was just not compiled in?<br>
>><br>
>> I'll retry with some more env. options.<br>
>><br>
>> On the plus side ffmpeg.git + radv + h264 video = it mostly works.<br>
>> Some vids still crash us ...<br>
>><br>
>><br>
>> ><br>
>> > Andrea, can you test attached patch +  this opts file put alongside<br>
>> > test 4k HDR video  decodable by hardware?<br>
>> ><br>
>> ><br>
>> ><br>
>> > ><br>
>> > >><br>
>> > >><br>
>> > >> it promptly crashes.<br>
>> > >><br>
>> > >>  BC_Signals::dump_stack<br>
>> > >> cin() [0x8b2c9e2]<br>
>> > >> linux-gate.so.1(__kernel_rt_sigreturn+0) [0xf7fb8590]<br>
>> > >> cin(avfilter_pad_get_type+0x14) [0x99266a4]<br>
>> > >> cin(_ZN13FFVideoStream13create_filterEPKc+0xbc) [0x865669c]<br>
>> > >> cin(_ZN6FFMPEG12open_decoderEv+0x80f) [0x865732f]<br>
>> > >> cin(_ZN10FileFFMPEG9check_sigEP5Asset+0x81) [0x8670071]<br>
>> > >> cin(_ZN4File5probeEv+0x376) [0x867cd86]<br>
>> > >> cin(_ZN4File9open_fileEP11PreferencesP5Assetii+0x378) [0x867d628]<br>
>> > >> cin(_ZN7MWindow14load_filenamesEP9ArrayListIPcEiii+0x250) [0x87301f0]<br>
>> > >> cin(_ZN17CommandLineThread3runEv+0x53) [0x86e2cd3]<br>
>> > >> cin(_ZN6Thread10entrypointEPv+0x41) [0x8b70c11]<br>
>> > >> /lib/libpthread.so.0(+0x7328) [0xf7df9328]<br>
>> > >> /lib/libc.so.6(clone+0x66) [0xf0373f06]<br>
>> > >><br>
>> > >><br>
>> > >><br>
>> > >> 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.<br>
>> > >><br>
>> > >> Code:<br>
>> > >><br>
>> > >> <a href="https://git.cinelerra-gg.org/git/?p=goodguy/cinelerra.git;a=blob;f=cinelerra-5.1/cinelerra/ffmpeg.C;h=1d0979df59f932628246678a920aca002d8dd88b;hb=HEAD#l3893" rel="noreferrer noreferrer" target="_blank">https://git.cinelerra-gg.org/git/?p=goodguy/cinelerra.git;a=blob;f=cinelerra-5.1/cinelerra/ffmpeg.C;h=1d0979df59f932628246678a920aca002d8dd88b;hb=HEAD#l3893</a><br>
>> > >><br>
>> > >><br>
>> > >><br>
>> > >> _______________________________________________<br>
>> > >> Libav-user mailing list<br>
>> > >> <a href="mailto:Libav-user@ffmpeg.org" rel="noreferrer" target="_blank">Libav-user@ffmpeg.org</a><br>
>> > >> <a href="https://ffmpeg.org/mailman/listinfo/libav-user" rel="noreferrer noreferrer" target="_blank">https://ffmpeg.org/mailman/listinfo/libav-user</a><br>
>> > >><br>
>> > >> To unsubscribe, visit link above, or email<br>
>> > >> <a href="mailto:libav-user-request@ffmpeg.org" rel="noreferrer" target="_blank">libav-user-request@ffmpeg.org</a> with subject "unsubscribe".<br>
>> > ><br>
>> > > _______________________________________________<br>
>> > > Libav-user mailing list<br>
>> > > <a href="mailto:Libav-user@ffmpeg.org" rel="noreferrer" target="_blank">Libav-user@ffmpeg.org</a><br>
>> > > <a href="https://ffmpeg.org/mailman/listinfo/libav-user" rel="noreferrer noreferrer" target="_blank">https://ffmpeg.org/mailman/listinfo/libav-user</a><br>
>> > ><br>
>> > > To unsubscribe, visit link above, or email<br>
>> > > <a href="mailto:libav-user-request@ffmpeg.org" rel="noreferrer" target="_blank">libav-user-request@ffmpeg.org</a> with subject "unsubscribe".<br>
>> _______________________________________________<br>
>> Libav-user mailing list<br>
>> <a href="mailto:Libav-user@ffmpeg.org" rel="noreferrer" target="_blank">Libav-user@ffmpeg.org</a><br>
>> <a href="https://ffmpeg.org/mailman/listinfo/libav-user" rel="noreferrer noreferrer" target="_blank">https://ffmpeg.org/mailman/listinfo/libav-user</a><br>
>><br>
>> To unsubscribe, visit link above, or email<br>
>> <a href="mailto:libav-user-request@ffmpeg.org" rel="noreferrer" target="_blank">libav-user-request@ffmpeg.org</a> with subject "unsubscribe".<br>
><br>
> _______________________________________________<br>
> Libav-user mailing list<br>
> <a href="mailto:Libav-user@ffmpeg.org" rel="noreferrer" target="_blank">Libav-user@ffmpeg.org</a><br>
> <a href="https://ffmpeg.org/mailman/listinfo/libav-user" rel="noreferrer noreferrer" target="_blank">https://ffmpeg.org/mailman/listinfo/libav-user</a><br>
><br>
> To unsubscribe, visit link above, or email<br>
> <a href="mailto:libav-user-request@ffmpeg.org" rel="noreferrer" target="_blank">libav-user-request@ffmpeg.org</a> with subject "unsubscribe".<br>
_______________________________________________<br>
Libav-user mailing list<br>
<a href="mailto:Libav-user@ffmpeg.org" rel="noreferrer" target="_blank">Libav-user@ffmpeg.org</a><br>
<a href="https://ffmpeg.org/mailman/listinfo/libav-user" rel="noreferrer noreferrer" target="_blank">https://ffmpeg.org/mailman/listinfo/libav-user</a><br>
<br>
To unsubscribe, visit link above, or email<br>
<a href="mailto:libav-user-request@ffmpeg.org" rel="noreferrer" target="_blank">libav-user-request@ffmpeg.org</a> with subject "unsubscribe".<br>
</blockquote></div></div>
_______________________________________________<br>
Libav-user mailing list<br>
<a href="mailto:Libav-user@ffmpeg.org" rel="noreferrer" target="_blank">Libav-user@ffmpeg.org</a><br>
<a href="https://ffmpeg.org/mailman/listinfo/libav-user" rel="noreferrer noreferrer" target="_blank">https://ffmpeg.org/mailman/listinfo/libav-user</a><br>
<br>
To unsubscribe, visit link above, or email<br>
<a href="mailto:libav-user-request@ffmpeg.org" rel="noreferrer" target="_blank">libav-user-request@ffmpeg.org</a> with subject "unsubscribe".<br>
</blockquote></div></div></div>
_______________________________________________<br>
Libav-user mailing list<br>
<a href="mailto:Libav-user@ffmpeg.org" target="_blank">Libav-user@ffmpeg.org</a><br>
<a href="https://ffmpeg.org/mailman/listinfo/libav-user" rel="noreferrer" target="_blank">https://ffmpeg.org/mailman/listinfo/libav-user</a><br>
<br>
To unsubscribe, visit link above, or email<br>
<a href="mailto:libav-user-request@ffmpeg.org" target="_blank">libav-user-request@ffmpeg.org</a> with subject "unsubscribe".<br>
</blockquote></div></div>