I see and whenever I toggle my enable flag I have to recall avfilter_init_str() to make sure filtergraph takes the newest set enable flag right?
On Sat, Feb 6, 2021, 01:00 Paul B Mahol <[email protected]> wrote: > > > 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".
_______________________________________________ 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".
