<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On 1 April 2018 at 12:16, Henri Zikken <span dir="ltr"><<a href="mailto:zikken@xs4all.nl" target="_blank">zikken@xs4all.nl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="NL"><div class="gmail-m_-6163678319089153265WordSection1"><p class="MsoNormal">Dear all,<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I am trying to control the settings for encoding to several formats, amongst which libfdk_aac. Now I’m trying to set an option like the VBR settings, to no avail.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">The option can be between 0 and 5.  I have tried like 20 ways to set it now, to no avail.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">For instance:<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:blue">int</span><span style="font-size:9.5pt;font-family:Consolas;color:black"> ret = av_opt_set(_codecContext, </span><span style="font-size:9.5pt;font-family:Consolas;color:rgb(163,21,21)">"vbr"</span><span style="font-size:9.5pt;font-family:Consolas;color:black">, 0, 0);<u></u><u></u></span></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">returns ‘option not found’.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:blue">int</span><span style="font-size:9.5pt;font-family:Consolas;color:black"> ret = av_opt_set(_codecContext-><wbr>priv_data, </span><span style="font-size:9.5pt;font-family:Consolas;color:rgb(163,21,21)">"vbr"</span><span style="font-size:9.5pt;font-family:Consolas;color:black">, 0, 0);<u></u><u></u></span></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">returns ‘invalid argument’.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Same goes for av_opt_set(_codec, “vbr”,0,0); and the variant with priv_data.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">setting an AVDictionary also does not work:<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">AVDictionary * opts = NULL;<u></u><u></u></p><p class="MsoNormal">av_dict_set_int(&opts,"vbr",0,<wbr>0)<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">int ret = av_opt_set_dict(_codecContext-<wbr>>priv_data, &opts);<u></u><u></u></p><p class="MsoNormal">int ret = av_opt_set_dict(_codecContext, &opts);<u></u><u></u></p><p class="MsoNormal">int ret = av_opt_set_dict(_codec, &opts);<u></u><u></u></p><p class="MsoNormal">int ret = av_opt_set_dict(_codec->priv_<wbr>data, &opts);<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">al does exactly nothing.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">So how do I set this blasted option?!?! :P<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I know the option is present in the aac_enc_options struct:<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">static const AVOption aac_enc_options[] = {<u></u><u></u></p><p class="MsoNormal">[..]<u></u><u></u></p><p class="MsoNormal">  { "vbr", "VBR mode (1-5)", offsetof(AACContext, vbr), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 5, AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_ENCODING_PARAM },<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">This ends up in aac_enc_class:<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">static const AVClass aac_enc_class = {<u></u><u></u></p><p class="MsoNormal">[..]<u></u><u></u></p><p class="MsoNormal">.option     = aac_enc_options,<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Which in turn ends up as the .priv_class for the codec:<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">AVCodec ff_libfdk_aac_encoder = {<u></u><u></u></p><p class="MsoNormal">[..]<u></u><u></u></p><p class="MsoNormal">.priv_class            = &aac_enc_class,<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Any help would be appriciated. <u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Regards,<span class="gmail-HOEnZb"><font color="#888888"><u></u><u></u></font></span></p><span class="gmail-HOEnZb"><font color="#888888"><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Henri Zikken<u></u><u></u></p><p class="MsoNormal"><u></u> </p><p class="MsoNormal"><u></u></p></font></span></div></div></blockquote><div><br></div><div>Hi Henri</div><div><br></div><div>Try this:</div><div>av_opt_set(_codecContext, "vbr", "0", AV_OPT_SEARCH_CHILDREN);<br></div><div><br></div><div>or if you want to set the integer value:</div><div><br></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">av_opt_set_int(_codecContext</span><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">, "vbr", 0, AV_OPT_SEARCH_CHILDREN);</span>

</div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div>Please bear in mind that this is out of my head and untested</div><div><br></div><div>Jaka</div></div><br></div></div>