On Fri, Feb 5, 2021 at 10:57 PM ilkercan Kaya <[email protected]> wrote:
> There are two APIs to set options, > > Is the other one through a dictionary? I tried to find it through examples > but that's all I got. > > Could you tell me the other API so I can try to set the enable flag > through there. > The one where you concat options as string with values.... might not be friendly. avfilter_init_str() > > On Fri, Feb 5, 2021 at 3:25 PM Paul B Mahol <[email protected]> wrote: > >> >> >> On Fri, Feb 5, 2021 at 2:49 AM ilkercan Kaya <[email protected]> >> wrote: >> >>> enable option is also command for every filter that supports timeline. >>>> Yes it looks like not documented explicitly. >>> >>> Does this mean that I can set "enable" as an option? if so I tried to do >>> the following before initializing the filter: >>> >>> if ((res = av_opt_set_int(ctx, "enable", 1, AV_OPT_SEARCH_CHILDREN)) == 0) { >>> isOn = true; >>> } else { >>> isFxBroken = true; >>> LOGE("AvFX::activateFilter failed! %s %s", name, >>> av_err2str(res)); >>> } >>> >>> But the call always landed on else with " AvFX::activateFilter failed! >>> agate Invalid argument" >>> Than I tried the following: >>> >>> if ((res = av_opt_set(ctx, "enable", "1", AV_OPT_SEARCH_CHILDREN)) == 0) { >>> isOn = true; >>> } else { >>> isFxBroken = true; >>> LOGE("AvFX::activateFilter failed! %s %s", name, >>> av_err2str(res)); >>> } >>> >>> This time it did not land on else but this just makes it crash the app >>> when data is passed through the filtergraph with "null pointer deference on >>> libavfilter.so" >>> >>> How may I set this enable option through the code? >>> >> >> There is nothing wrong with your code. It is just bug in libavfilter, I >> posted patch to fix it on devel mailing list. >> >> There are two APIs to set options, one of them is not much tested and >> thus it got broken. >> >> >>> >>> On Tue, Feb 2, 2021 at 12:52 AM Paul B Mahol <[email protected]> wrote: >>> >>>> >>>> >>>> On Mon, Feb 1, 2021 at 10:33 PM ilkercan Kaya <[email protected]> >>>> wrote: >>>> >>>>> A simpler solution, if you only need to implement enabling and >>>>>> disabling >>>>>> some of the filters, you can expect the "timeline" support does the >>>>>> trick: >>>>> >>>>> >>>>> I looked at timeline support, correct me if I am wrong but it is done >>>>> through the *enable_str *property of *AVFilterContext*. It is >>>>> activated with *avfilter_init_str *call. This seems like setting the >>>>> *enable_str >>>>> * evaluation can only be done once without reiniting the whole graph. >>>>> If this is the case, is there a way to pass a custom variable to the >>>>> expression so that I can switch it on or off? The case in the example at >>>>> the documentation, smartblur is hardcoded to be activated between 10 >>>>> seconds to 3 minutes, in my case I can not foresee when the filter will be >>>>> turned on/off. >>>>> >>>> >>>> enable option is also command for every filter that supports timeline. >>>> Yes it looks like not documented explicitly. >>>> >>>> Just tried it and works. >>>> >>>> mpv crowd_run_1080p50.y4m -vf "lavfi=[sendcmd=2.0 colorcorrect enable >>>> 0,colorcorrect=saturation=0]" >>>> >>>> >>>>> >>>>> On Mon, Feb 1, 2021 at 11:10 PM Paul B Mahol <[email protected]> wrote: >>>>> >>>>>> lowpass, highpass and agate on master git version have both timeline >>>>>> and command support. >>>>>> >>>>>> On Mon, Feb 1, 2021 at 7:39 PM ilkercan Kaya <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Hi Everyone, >>>>>>> >>>>>>> I am making a mobile music app where the user can add multiple >>>>>>> different FXS at runtime to current playing music through a two >>>>>>> dimensional >>>>>>> pad with an effects header. I am using FFmpeg, libavfilter in C++ to add >>>>>>> multiple FX to the audio. >>>>>>> >>>>>>> My problem is, the user can disable any of the FX's I am using at >>>>>>> any time as they wish, the effects I use are agate, lowpass, highpass. >>>>>>> The >>>>>>> graph is: >>>>>>> >>>>>>> abuffer -> lowpass -> highpass -> agate -> aformat -> abuffersink. >>>>>>> >>>>>>> From time to time, I want to disable some of the following lowpass, >>>>>>> highpass, agate. So I thought I could just reconfigure the graph and >>>>>>> basically get rid of links to fulfil my wish. I am not sure this is the >>>>>>> right way to do it tho. I tried to dig online but all I could find was a >>>>>>> thread from 2012 with no conclusion. Libavfilter documentation doesn't >>>>>>> say >>>>>>> anything about reconfigure or reset existing filtergraph (of that I >>>>>>> could >>>>>>> find). >>>>>>> >>>>>>> What would be the best way to do this? >>>>>>> >>>>>>> Thank you! >>>>>>> _______________________________________________ >>>>>>> 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". >>>>> >>>>> _______________________________________________ >>>>> 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". >>> >>> _______________________________________________ >>> 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". > > _______________________________________________ > 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".
