FFMPEG中的av_opt_set是什么

时间:2018-11-11 17:37:12

标签: c++ c++11 ffmpeg libavcodec libav

我正在寻找一些代码库,用于在LibAV中编码视频。我无法理解这两行的目的:

<Type Name="Range">
  <DisplayString>&lt;{begin,d}, {end,d}&gt;</DisplayString>
</Type>

在这里,av_opt_set(context->priv_data, "tune", "zerolatency", 0); av_opt_set(context->priv_data, "preset", "fast", 0); context

我是这个图书馆的新手,希望您能提供一个描述性的答案。

2 个答案:

答案 0 :(得分:0)

这是一个实用程序函数,用于在第一个arg中传递的struct ref中设置已定义的AVOption成员的值。第2个arg是成员,第3个是值。第四个arg是一个搜索标志,告诉fn是否搜索子结构。

请参见https://www.ffmpeg.org/doxygen/trunk/group__opt__set__funcs.html

https://www.ffmpeg.org/doxygen/trunk/group__avoptions.html

答案 1 :(得分:0)

Gyan 的补充:

当我们使用 av_opt_set() 时,这里是原型

av_opt_set (void *obj, const char *name, const char *val, int search_flags)

第一个参数是类型 AvClass 定义在:https://www.ffmpeg.org/doxygen/trunk/structAVClass.html

这个结构体中有两个函数指针:child_next()child_class_iterate(),可以得到AvClass对象的child,所以很明显AvClass是树形的,有childern,{{ 1}} 决定是否对 childern 进行操作;