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".

Reply via email to