一、函数
AVRational av_codec_get_pkt_timebase (const AVCodecContext *avctx)
void av_codec_set_pkt_timebase (AVCodecContext *avctx, AVRational val)
const AVCodecDescriptor * av_codec_get_codec_descriptor (const AVCodecContext *avctx)
void av_codec_set_codec_descriptor (AVCodecContext *avctx, const AVCodecDescriptor *desc)
unsigned av_codec_get_codec_properties (const AVCodecContext *avctx)
int av_codec_get_lowres (const AVCodecContext *avctx)
void av_codec_set_lowres (AVCodecContext *avctx, int val)
int av_codec_get_seek_preroll (const AVCodecContext *avctx)
void av_codec_set_seek_preroll (AVCodecContext *avctx, int val)
uint16_t * av_codec_get_chroma_intra_matrix (const AVCodecContext *avctx)
void av_codec_set_chroma_intra_matrix (AVCodecContext *avctx, uint16_t *val)
int av_codec_get_max_lowres (const AVCodec *codec)
AVCodec * av_codec_next (const AVCodec *c) 如果c为NULL,则返回第一个注册的编解码器,如果c为非NULL,则在c之后返回下一个已注册的编解码器,如果c为最后一个,则返回NULL。
unsigned avcodec_version (void) 返回LIBAVCODEC_VERSION_INT常量。
const char * avcodec_configuration (void) 返回libavcodec构建时配置。
const char * avcodec_license (void) 返回libavcodec许可证。
void avcodec_register (AVCodec *codec) 注册编解码器并初始化libavcodec。
警告:此函数或avcodec_register_all()必须在任何其他libavcodec函数之前调用。
void avcodec_register_all (void) 注册在配置时启用的所有编解码器,解析器和比特流筛选器。
如果您不调用此函数,您可以使用单独的注册功能来精确选择要支持的格式。
AVCodecContext * avcodec_alloc_context3 (const AVCodec *codec) 分配AVCodecContext并将其字段设置为默认值。
结果应该使用avcodec_free_context()来释放。
参数:codec:如果非NULL,则分配专用数据并初始化给定编解码器的默认值。 然后使用不同的编解码器调用avcodec_open2()是非法的。 如果为NULL,则编解码器特定的默认值将不会被初始化,这可能导致次优的默认设置(这对于编码器,例如libx264)很重要。
返回:AVCodecContext填入默认值或失败时为NULL。
void avcodec_free_context (AVCodecContext **avctx) 释放编解码器上下文和与之相关联的所有内容,并将NULL写入提供的指针。
int avcodec_get_context_defaults3 (AVCodecContext *s, const AVCodec *codec) 遗弃:不应该使用此函数,因为不支持多次打开和打开编解码器上下文。 应为每个新用途分配新的编解码器上下文。
const AVClass * avcodec_get_class (void) 获得AVCodecContext AVClass。
它可以与AV_OPT_SEARCH_FAKE_OBJ结合使用来检查选项。
const AVClass * avcodec_get_frame_class (void)
获取AVClass AVFrame。
它可以与AV_OPT_SEARCH_FAKE_OBJ结合使用来检查选项。
const AVClass * avcodec_get_subtitle_rect_class (void) 获取AVSubtitleRect的AVClass。
它可以与AV_OPT_SEARCH_FAKE_OBJ结合使用来检查选项。
attribute_deprecated int avcodec_copy_context (AVCodecContext *dest, const AVCodecContext *src) 将源AVCodecContext的设置复制到目标AVCodecContext中。
所得到的目标编解码器上下文将被打开,即您需要调用avcodec_open2(),然后才能使用此AVCodecContext对视频/音频数据进行解码/编码。
参数:dest:目标编解码器上下文,应使用avcodec_alloc_context3(NULL)初始化,否则将初始化
src:源编解码器上下文
返回:AVERROR()发生错误(例如内存分配错误),0成功
AVCodecParameters * avcodec_parameters_alloc (void) 分配一个新的AVCodecParameters并将其字段设置为默认值(未知/无效/ 0)。
返回的结构必须与avcodec_parameters_free()一起释放。
void avcodec_parameters_free (AVCodecParameters **par) 释放一个AVCodecParameters实例以及与之相关联的所有内容,并向提供的指针写入NULL。
int avcodec_parameters_copy (AVCodecParameters *dst, const AVCodecParameters *src) 将src的内容复制到dst。
dst中的任何分配的字段被释放,并被src中相应字段的新分配的副本替换。
返回:成功返回零,失败返回负值
int avcodec_parameters_from_context (AVCodecParameters *par, const AVCodecContext *codec) 根据提供的编解码器上下文中的值填写参数结构。
par中任何分配的字段都被释放,并被编码解码器中相应字段的重复替换。
返回:成功返回零,失败返回负值
int avcodec_parameters_to_context (AVCodecContext *codec, const AVCodecParameters *par) 根据提供的编解码器参数的值填写编解码器上下文。
二编解码器中具有par中对应字段的任何已分配字段将被释放,并替换为参数中相应字段的重复。 编解码器中没有对方的参数中的字段未被触发。
返回:成功返回零,失败返回负值
int avcodec_open2 (AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options) 初始化AVCodecContext以使用给定的AVCodec。
在使用此函数之前,上下文必须使用avcodec_alloc_context3()分配。
函数avcodec_find_decoder_by_name(),avcodec_find_encoder_by_name(),avcodec_find_decoder()和avcodec_find_encoder()提供了一种检索编解码器的简单方法。
警告:这个功能不是线程安全的!
注意:在使用解码例程(如avcodec_receive_frame())之前,始终调用此函数。
参数:avctx:初始化的上下文。
codec:打开这个上下文的编解码器。 如果非空编解码器先前传递给avcodec_alloc_context3()或此上下文,则该参数必须为NULL或等于先前传递的编解码器。
options:填写AVCodecContext和编解码器私有选项的字典。 返回时,此对象将填充未找到的选项。
返回:成功返回零,失败返回负值
int avcodec_close (AVCodecContext *avctx) 关闭给定的AVCodecContext并释放所有与之相关联的数据(而不是AVCodecContext本身)。
在尚未打开的AVCodecContext上调用此函数将使用非NULL编解码器释放avcodec_alloc_context3()中分配的编解码器特定数据。 随后的调用什么都不做。
void avsubtitle_free (AVSubtitle *sub) 释放给定字幕结构中所有分配的数据。
参数:sub:用来释放的AVSubtitle