一、函数
attribute_deprecated void | avcodec_set_dimensions (AVCodecContext *s, int width, int height) |
attribute_deprecated size_t | av_get_codec_tag_string (char *buf, size_t buf_size, unsigned int codec_tag) |
参数:buf:缓冲区放置编解码器标签
size:缓冲字节大小
codec_tag: 编解码器标签进行分配
返回:如果有足够的空间可用,将生成的字符串的长度,不包括尾随的null
void | avcodec_string (char *buf, int buf_size, AVCodecContext *enc, int encode) |
const char * | av_get_profile_name (const AVCodec *codec, int profile) |
参数:codec:搜索给定配置文件的编解码器
profile:请求名称的配置文件值
返回:找到配置文件的名称,否则返回空。
const char * | avcodec_profile_name (enum AVCodecID codec_id, int profile) |
参数:codec_id:请求的配置文件所属的编解码器的ID
profile:请求名称的配置文件值
返回:找到配置文件的名称,否则为空。
注意:不同于av_get_profile_name(),它搜索特定解码器或编码器实现支持的配置文件列表,该功能将从AVCodecDescriptor中搜索配置文件列表
int | avcodec_default_execute (AVCodecContext *c, int(*func)(AVCodecContext *c2, void *arg2), void *arg, int *ret, int count, int size) |
int | avcodec_default_execute2 (AVCodecContext *c, int(*func)(AVCodecContext *c2, void *arg2, int, int), void *arg, int *ret, int count) |
int | avcodec_fill_audio_frame (AVFrame *frame, int nb_channels, enum AVSampleFormat sample_fmt, const uint8_t *buf, int buf_size, int align) |
缓冲区buf必须是预分配的缓冲区,其大小足够容纳指定的样本量。 填充的AVFrame数据指针将指向此缓冲区。
如果需要平面音频,则分配AVFrame扩展数据通道指针。
参数:frame:必须在调用该函数之前设置AVFrame frame-> nb_samples。 此函数填充frame-> data,frame-> extended_data,frame-> linesize [0]。
nb_channels:管道数量
sample_fmt:采样格式
buf:缓冲区用于帧数据
buf_size:缓冲大小
align:平面尺寸样本对齐(0 =默认)
返回:> = 0成功,否则失败返回错误代码
在下一个libavutil碰撞时返回存储样品所需的大小(以字节为单位)
void | avcodec_flush_buffers (AVCodecContext *avctx) |
应该调用比如:在寻找或切换到不同的流时。
注意:当未计数的帧被使用(即,avctx-> refcounted_frames为0)时,这使得先前从解码器返回的帧无效。 当使用refcounted帧时,解码器只是释放它可能在内部保留的任何引用,但调用者的引用仍然有效。
int | av_get_bits_per_sample (enum AVCodecID codec_id) |
参数:[in]codec_id:编解码器
返回:每个样本的位数或零,如果给定的编解码器未知。
enum AVCodecID | av_get_pcm_codec (enum AVSampleFormat fmt, int be) |
参数:be:字符串,0为小,1为大,-1(或任何其他)为本机
返回:AV_CODEC_ID_PCM_* 或 AV_CODEC_ID_NONE
int | av_get_exact_bits_per_sample (enum AVCodecID codec_id) |
如果每个样本的位完全正确,而不是近似,则返回非零。
参数:[in]codec_id:编解码器
返回:每个样本的位数或零,如果给定的编解码器未知。
int | av_get_audio_frame_duration (AVCodecContext *avctx, int frame_bytes) |
参数:avctx:编解码上下文
frame_bytes:帧大小,如果未知,则为0
返回:如果已知,样本中的帧持续时间。
int | av_get_audio_frame_duration2 (AVCodecParameters *par, int frame_bytes) |
attribute_deprecated void | av_register_bitstream_filter (AVBitStreamFilter *bsf) |
过滤器可以通过av_bitstream_filter_next()访问应用程序代码,也可以使用av_bitstream_filter_init()直接初始化。
attribute_deprecated AVBitStreamFilterContext * | av_bitstream_filter_init (const char *name) |
必须使用av_bitstream_filter_close()来释放返回的上下文。
参数:name:比特流过滤器的名称
返回:如果找到匹配的过滤器并成功初始化了比特流过滤器上下文,否则为NULL
attribute_deprecated int | av_bitstream_filter_filter (AVBitStreamFilterContext *bsfc, AVCodecContext *avctx, const char *args, uint8_t **poutbuf, int *poutbuf_size, const uint8_t *buf, int buf_size, int keyframe) |
此功能可使用大小为buf_size的缓冲区buf进行过滤,并将过滤的缓冲区放在poutbuf指向的缓冲区中。
输出缓冲区必须由调用者释放。
参数:bsfc:由av_bitstream_filter_init()创建的比特流过滤器上下文
avctx:过滤器访问的AVCodecContext可能为NULL。 如果指定,则必须指向数据包发送到的输出流的编码器上下文。
args:指定过滤器配置的参数可以为NULL
poutbuf:指针被更新为指向经过滤的缓冲区
poutbuf_size:指针以字节更新为已过滤的缓冲区大小
buf:缓冲区包含要过滤的数据
buf_size:buf大小(以字节为单位)
keyframe:如果缓冲区过滤器对应于关键帧分组数据,则设置为非零
返回:> = 0,否则为错误代码
如果返回值为正,则输出缓冲区被分配并在* poutbuf中可用,并且与输入缓冲区不同。
如果返回值为0,则输出缓冲区不被分配,并且应该被视为与输入缓冲区相同,或者在设置了* poutbuf的情况下,它指向输入缓冲区(不一定在其起始地址)。 一个特殊情况是如果* poutbuf设置为NULL,并且* poutbuf_size设置为0,表示应该丢弃数据包。
attribute_deprecated void | av_bitstream_filter_close (AVBitStreamFilterContext *bsf) |
参数:bsf:使用av_bitstream_filter_init()创建的比特流过滤器上下文可以为NULL
attribute_deprecated AVBitStreamFilter * | av_bitstream_filter_next (const AVBitStreamFilter *f) |
该函数可用于遍历所有注册的比特流过滤器。
const AVBitStreamFilter * | av_bsf_get_by_name (const char *name) |
const AVBitStreamFilter * | av_bsf_next (void **opaque) |
参数:opaque:一个指针,其中libavcodec将存储迭代状态。 必须指向NULL才能开始迭代。
返回:下一个注册的比特流过滤器或迭代结束时为NULL
int | av_bsf_alloc (const AVBitStreamFilter *filter, AVBSFContext **ctx) |
调用者必须按照文档中所述填写上下文参数,然后在将任何数据发送到过滤器之前调用av_bsf_init()。
参数:filter:为其分配实例的过滤器。
ctx:指向新分配的上下文的指针的指针。 过滤完成后,必须先释放av_bsf_free()。
返回:0成功,失败时返回负ERROR代码
int | av_bsf_init (AVBSFContext *ctx) |
int | av_bsf_send_packet (AVBSFContext *ctx, AVPacket *pkt) |
发送每个数据包后,必须通过重复调用av_bsf_receive_packet()才能完全排除过滤器,直到它返回AVERROR(EAGAIN)或AVERROR_EOF。
参数:pkt:包过滤。 比特流过滤器将获取数据包的所有权并重置pkt的内容。 如果发生错误,pkt不会被触摸。 该参数可以是NULL,其指示流的结束(即,不再发送分组)。 这将导致过滤器输出其内部缓冲的任何数据包。
返回:0成功,否则返回AVERROR出错。
int | av_bsf_receive_packet (AVBSFContext *ctx, AVPacket *pkt) |
参数:[out]pkt:这个结构将被填充过滤的数据包的内容。 它由调用者拥有,当不再需要时,必须使用av_packet_unref()来释放它。 当调用此函数时,此参数应为“干净”(即,使用av_packet_alloc()新分配或与av_packet_unref())不相关。 如果此函数成功返回,则pkt的内容将被返回的数据完全覆盖。 失败时,pkt没有被触动。
返回:0成功。 如果需要将更多的数据包发送到过滤器(使用av_bsf_send_packet())获得更多的输出,则AVERROR(EAGAIN)。 如果过滤器没有进一步的输出,则为AVERROR_EOF。 如果发生错误,则另一个负AVERROR值。
注意:一个输入数据包可能会导致多个输出数据包,因此在使用av_bsf_send_packet()发送数据包后,需要重复调用该函数,直到它停止返回0.滤波器也可以输出比发送给它的数据包更少的数据包, 所以这个功能可以在av_bsf_send_packet()调用成功后立即返回AVERROR(EAGAIN)。
void | av_bsf_free (AVBSFContext **ctx) |
const AVClass * | av_bsf_get_class (void) |
它可以与AV_OPT_SEARCH_FAKE_OBJ结合使用来检查选项。
AVBSFList * | av_bsf_list_alloc (void) |
该列表必须稍后由av_bsf_list_free()释放,或由av_bsf_list_finalize()完成。
返回:指向AVBSFList成功时,在发生故障时为NULL
void | av_bsf_list_free (AVBSFList **lst) |
参数:lst:指向av_bsf_list_alloc()返回的指针
int | av_bsf_list_append (AVBSFList *lst, AVBSFContext *bsf) |
参数:lst:列表附加到
bsf:过滤上下文要附加
返回:> = 0成功,否则返回AVERROR在失败的情况下
int | av_bsf_list_append2 (AVBSFList *lst, const char *bsf_name, AVDictionary **options) |
参数:lst:列表附加到
bsf_name:比特流过滤器的名称
options:位流过滤器的选项可以设置为NULL
返回:> = 0成功,否则返回AVERROR在失败的情况下
int | av_bsf_list_finalize (AVBSFList **lst, AVBSFContext **bsf) |
该函数将AVBSFList转换为单个AVBSFContext,因此可将整个比特流过滤器链视为由av_bsf_alloc()最新分配的单个过滤器。 如果调用成功,则AVBSFList结构被释放,并且lst将被设置为NULL。 在失败的情况下,调用者负责通过av_bsf_list_free()释放结构,
参数:lst:要转换的过滤器列表结构
[out]bsf:指针被设置为新创建的表示比特流过滤器链的AVBSFContext结构
返回:> = 0成功,否则返回AVERROR在失败的情况下
int | av_bsf_list_parse_str (const char *str, AVBSFContext **bsf) |
导致AVBSFContext可以被视为由av_bsf_alloc()最新分配的任何其他AVBSFContext。
int | av_bsf_get_null_filter (AVBSFContext **bsf) |
参数:[out]bsf:指针被设置为直通比特流过滤器的新实例
void | av_fast_padded_malloc (void *ptr, unsigned int *size, size_t min_size) |
此外,整个缓冲区将在初始化之后和之后调整大小为0初始化,以便不会出现未初始化的数据。
void | av_fast_padded_mallocz (void *ptr, unsigned int *size, size_t min_size) |
unsigned int | av_xiphlacing (unsigned char *s, unsigned int v) |
由xiph编解码器使用。
参数:s:缓冲区写入; 必须至少(v / 255 + 1)个字节长
v:extradata的大小(以字节为单位)
返回:写入缓冲区的字节数。
attribute_deprecated void | av_log_missing_feature (void *avc, const char *feature, int want_sample) |
此函数仅用于FFmpeg(libavcodec,libavformat等)内部使用,通常不会被应用程序使用。
参数:avc:指向一个任意结构的指针,第一个字段是一个指向AVClass结构体的指针
feature:包含缺少的功能的名称的字符串
want_sample:指示是否需要展示此功能的样品。 如果want_sample不为零,则会向日志消息中添加额外的语句,该消息告诉用户如何将样本报告给开发邮件列表。
已废弃:请改用avpriv_report_missing_feature()。
attribute_deprecated void | av_log_ask_for_sample (void *avc, const char *msg,...) av_printf_format(2 |
此函数仅用于FFmpeg(libavcodec,libavformat等)内部使用,通常不会被应用程序使用。
参数:[in]avc:指向一个任意结构的指针,第一个字段是一个指向AVClass结构体的指针
[in]msg:包含可选消息的字符串,如果没有消息,则为NULL
attribute_deprecated void void | av_register_hwaccel (AVHWAccel *hwaccel) |
AVHWAccel * | av_hwaccel_next (const AVHWAccel *hwaccel) |
int | av_lockmgr_register (int(*cb)(void **mutex, enum AVLockOp op)) |
函数的“mutex”参数指向一个(void *),其中lockmgr应该存储/获取指向分配的互斥体的用户的指针。 它在AV_LOCK_CREATE时为NULL,并且等于最后一次调用所有其他操作的值。 如果锁管理器无法执行操作,那么它应该使互斥体处于与调用时相同的状态,并返回非零值。 但是,当使用AV_LOCK_DESTROY调用时,互斥量将始终被假定已被成功销毁。 如果av_lockmgr_register成功,它将返回一个非负值,如果它失败,它将返回一个负值,并销毁所有互斥量并注销所有回调。 av_lockmgr_register不是线程安全的,它必须在使用使用锁的任何调用之前从单个线程调用。
参数:cb:用户定义回调。 av_lockmgr_register调用此回调和以前注册的回调。 回调将用于创建多个互斥体,每个互斥体必须由其自己的底层锁定机制支持(即不要使用单个静态对象来实现您的锁管理器)。 如果cb设置为NULL,则lockmgr将被注销。
enum AVMediaType | avcodec_get_type (enum AVCodecID codec_id) |
const char * | avcodec_get_name (enum AVCodecID id) |
返回:标识编解码器的静态字符串; 从不NULL
int | avcodec_is_open (AVCodecContext *s) |
int | av_codec_is_encoder (const AVCodec *codec) |
int | av_codec_is_decoder (const AVCodec *codec) |
const AVCodecDescriptor * | avcodec_descriptor_get (enum AVCodecID id) |
const AVCodecDescriptor * | avcodec_descriptor_next (const AVCodecDescriptor *prev) |
参数:prev:先前的描述符。 NULL表示获取第一个描述符。
返回:下一个描述符或若是最后一个描述符后,返回NULL
const AVCodecDescriptor * | avcodec_descriptor_get_by_name (const char *name) |
AVCPBProperties * | av_cpb_properties_alloc (size_t *size) |
参数:size:如果非NULL,则分配的结构体的大小将在此处写入。 这对于将其嵌入在侧面数据中是有用的。
返回:新分配的结构或失败返回NULL