查询libavformat功能,分配核心结构等函数
一、函数
unsigned | avformat_version (void) |
const char * | avformat_configuration (void) |
const char * | avformat_license (void) |
void | av_register_all (void) |
如果不调用此功能,则可以准确选择要支持的格式。
void | av_register_input_format (AVInputFormat *format) |
void | av_register_output_format (AVOutputFormat *format) |
int | avformat_network_init (void) |
这是可选的,但建议,因为它避免了隐含地为每个会话进行设置的开销。
如果在某些主要版本碰撞中使用网络协议,则调用此功能将变得强制。
int | avformat_network_deinit (void) |
AVInputFormat * | av_iformat_next (const AVInputFormat *f) |
AVOutputFormat * | av_oformat_next (const AVOutputFormat *f) |
AVFormatContext * | avformat_alloc_context (void) |
avformat_free_context()可用于释放上下文以及框架内的所有内容。
void | avformat_free_context (AVFormatContext *s) |
参数:s:释放上下文
const AVClass * | avformat_get_class (void) |
它可以与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 type, uint8_t *data, size_t size) |
参数:st:流
type:侧信息类型
data:边数据数组。 必须使用av_malloc()函数族分配。 数据的所有权转移到st。
size:侧信息大小。
返回:成功为零,失败时出现负ERROR代码。 在失败时,流不变,数据仍然由呼叫者拥有。
uint8_t * | av_stream_new_side_data (AVStream *stream, enum AVPacketSideDataType type, int size) |
参数:stream:流
type:所需侧信息类型
size:侧信息大小
返回:指向新鲜分配的数据,否则为NULL
uint8_t * | av_stream_get_side_data (const AVStream *stream, enum AVPacketSideDataType type, int *size) |
参数:stream:流
type:所需侧信息类型
size: 用于存储的信息大小的指针(可选)
返回:指向数据的指针,否则为NULL
AVProgram * | av_new_program (AVFormatContext *s, int id) |