FFMPEG学习【libavformat】:核心函数

查询libavformat功能,分配核心结构等函数



一、函数

unsigned  avformat_version (void)
返回LIBAVFORMAT_VERSION_INT常量。


const char *  avformat_configuration (void)
返回libavformat构建时配置。


const char *  avformat_license (void)
返回libavformat许可证。


void  av_register_all (void)
初始化libavformat并注册所有的muxers,demuxers和protocol。

如果不调用此功能,则可以准确选择要支持的格式。


void  av_register_input_format (AVInputFormat *format)
 

void  av_register_output_format (AVOutputFormat *format)

int  avformat_network_init (void)
进行网络组件的全局初始化。

这是可选的,但建议,因为它避免了隐含地为每个会话进行设置的开销。

如果在某些主要版本碰撞中使用网络协议,则调用此功能将变得强制。


int  avformat_network_deinit (void)
撤消由avformat_network_init完成的初始化。


AVInputFormat *  av_iformat_next (const AVInputFormat *f)
如果f为NULL,则返回第一个注册的输入格式,如果f为非NULL,则在f之后返回下一个注册的输入格式,如果f为最后一个则返回NULL。


AVOutputFormat *  av_oformat_next (const AVOutputFormat *f)
如果f为NULL,则返回第一个注册的输出格式,如果f为非NULL,则在f之后返回下一个注册的输出格式,如果f为最后一个则返回NULL。


AVFormatContext *  avformat_alloc_context (void)
分配AVFormatContext。

avformat_free_context()可用于释放上下文以及框架内的所有内容。


void  avformat_free_context (AVFormatContext *s)
释放AVFormatContext及其所有流。

参数:s:释放上下文


const AVClass *  avformat_get_class (void)
获取AVCormatContext的AVClass。

它可以与AV_OPT_SEARCH_FAKE_OBJ结合使用来检查选项。


AVStream *  avformat_new_stream (AVFormatContext *s, const AVCodec *c)
向媒体文件添加新的流。

当分解时,它由read_header()中的解分配器调用。 如果标志AVFMTCTX_NOHEADER在s.ctx_flags中设置,那么也可以在read_packet()中调用它。

当复用时,应由用户调用avformat_write_header()之前。

用户需要调用avcodec_close()和avformat_free_context()才能清除avformat_new_stream()的分配。

参数:s:媒体文件句柄

  c:如果不为空,则将新对应的AVCodecContext初始化为使用此编解码器。 这是需要的。 编解码器特定默认设置,因此如果已知编解码器应该提供。

返回:新创建的流或NULL错误。


int  av_stream_add_side_data (AVStream *st, enum AVPacketSideDataType typeuint8_t *data, size_t size)
将现有阵列作为流侧数据进行包装。

参数:st:流

  type:侧信息类型

  data:边数据数组。 必须使用av_malloc()函数族分配。 数据的所有权转移到st。

  size:侧信息大小。

返回:成功为零,失败时出现负ERROR代码。 在失败时,流不变,数据仍然由呼叫者拥有。


uint8_t *  av_stream_new_side_data (AVStream *stream, enum AVPacketSideDataType typeint size)
从流分配新信息。

参数:stream:流

  type:所需侧信息类型

  size:侧信息大小

返回:指向新鲜分配的数据,否则为NULL


uint8_t *  av_stream_get_side_data (const AVStream *stream, enum AVPacketSideDataType typeint *size)
从流中获取边信息。

参数:stream:流

  type:所需侧信息类型

  size: 用于存储的信息大小的指针(可选)

返回:指向数据的指针,否则为NULL


AVProgram *  av_new_program (AVFormatContext *sint id)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值