Thank you, it worked perfectly. On Sat, Feb 6, 2021 at 1:10 AM Paul B Mahol <[email protected]> wrote:
> Nope, initialization is done only once, To set options at runtime > use avfilter_graph_send_command() > > On Fri, Feb 5, 2021 at 11:07 PM ilkercan Kaya <[email protected]> > wrote: > >> 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". > > _______________________________________________ > 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".
