AVCodec 结构体

typedef struct AVCodec
{
// 标示Codec 的名字, 比如,"h264" "h263" 等。
const char *name;
// 标示Codec 的类型,有video ,audio 等类型。
enum CodecType type;
// 标示Codec 的ID,有CODEC_ID_H264 等。
enum CodecID id;
// 标示具体的Codec 对应的Context 的size,如:H264Context。
int priv_data_size;
// 以下标示Codec 对外提供的操作,每一种解码器都会实现这些操作。
int(*init)(AVCodecContext*);
int(*encode)(AVCodecContext *, uint8_t *buf, int buf_size, void *data);
int(*close)(AVCodecContext*);
int(*decode)(AVCodecContext *, void *outdata, int *outdata_size, uint8_t *buf, int buf_size);
struct AVCodec *next;
}AVCodec;
时间: 2024-11-02 10:26:19

AVCodec 结构体的相关文章

FFmpeg 结构体学习(七): AVIOContext 分析

在上文FFmpeg 结构体学习(六): AVCodecContext 分析我们学习了AVCodec结构体的相关内容.本文,我们将讲述一下AVIOContext. AVIOContext是FFMPEG管理输入输出数据的结构体.下面我们来分析一下该结构体里重要变量的含义和作用. 一.源码整理 首先我们先看一下结构体AVIOContext的定义的结构体源码(位于libavformat/avio.h): /** * Bytestream IO Context. * New fields can be a

FFmpeg总结(五)AV系列结构体之AVCodec、AVCodecParameters、AVCodecParser、AVCodecParserContext、AVCodecDescriptor

AVCodec: 编解码器结构体 位于libavcodec/avcodec.h中 typedef struct AVCodec { const char *name; // codec的名字,保持全局唯一,标识名 const char *long_name; // codec的名字,全名 enum AVMediaType type; // Media类型,是视频,音频,还是字幕 enum AVCodecID id; int capabilities; // codec的容量,参考 AV_CODE

FFmpeg结构体之AVCodec

AVCodec字段 AVCodec是存储编解码器信息的结构体,主要字段注释如下: const char *name; //编解码器名字 const char *long_name; //编解码器全名 enum AVMediaType type; //编解码器类型 enum AVCodecID id; //编解码器ID const AVRational *supported_framerates; //支持帧率数组(视频) const enum AVPixelFormat *pix_fmts; /

FFmpeg 结构体学习(五): AVCodec 分析

在上文FFmpeg 结构体学习(四): AVFrame 分析我们学习了AVStream结构体的相关内容.本文,我们将讲述一下AVCodec. AVCodec是存储编解码器信息的结构体.下面我们来分析一下该结构体里重要变量的含义和作用. 一.源码整理 首先我们先看一下结构体AVFrame的定义的结构体源码(位于libavcodec/avcodec.h): /* 雷霄骅 * 中国传媒大学/数字电视技术 * [email protected] * */ /** * AVCodec. */ typede

FFMPEG关键结构体

// FFMPEG关键结构体:// 转载 http://blog.csdn.net/leixiaohua1020/article/details/14214577// 2016.2.26 AVFrame(位于avcodec.h)结构体一般用于存储原始数据.===============================================================================下面看几个主要变量的作用(在这里考虑解码的情况):uint8_t *data[AV_N

FFmpeg中几个重要结构体的意义

AVCodec是存储编解码器信息的结构体,特指一个特定的解码器,比如H264编码器的名字,ID,支持的视频格式,支持的采样率等: AVCodecContext是一个描述编解码器采用的具体参数,比如采用的是那种编码器(H264或MPEG等),采用的采样率,声道数等: AVPacket是存储编码后的数据信息的结构体(This structure stores compressed data.),可以理解为编码后等待被传输的数据包: AVFrame是存储解码数据相关信息的结构体(This struct

FFmpeg总结(六)AV系列结构体之AVPacket

AVPacket位置:libavcodec/avcodec.h下: AVPacket: 通常通过demuxer导出的data packet作为解码器的input data 或是收到来自编码器的data packet,通过muxer进入输出的output data 看如下图,更易理解: 对于视频来说,它通常应该包含一个压缩的帧,对于音频,可能包含多个压缩帧,允许编码器输出为空的packet,没有压缩数据,只包含数据(如一些更新参数的编码) AVPacket 是FFmpeg中为数不多的结构体,它的s

FFmpeg源代码分析:结构体成员管理系统-AVClass

打算写两篇文章记录FFmpeg中和AVOption有关的源代码.AVOption用于在FFmpeg中描述结构体中的成员变量.它最主要的作用可以概括为两个字:"赋值".一个AVOption结构体包含了变量名称,简短的帮助,取值等等信息. 所有和AVOption有关的数据都存储在AVClass结构体中.如果一个结构体(例如AVFormatContext或者AVCodecContext)想要支持AVOption的话,它的第一个成员变量必须是一个指向AVClass结构体的指针.该AVClass

FFmpeg总结(三)AV系列结构体之AVCodecContext

位置: 描述:主要扩展API的结构体 New fields can be added to the end with minor version bumps. Removal, reordering and changes to existing fields require a major version bump. You can use AVOptions (av_opt* / av_set/get*()) to access these fields from user applicat