您的位置:首页 > 其它

ffmpeg有用的笔记,关于增加新解码方式

2014-10-23 16:36 387 查看
FFmpeg添加codec的步骤:(以wma为例)

1. 在libavcodec/avcodec.h 的CodecID 枚举中添加wma的codec id 比如

CODEC_ID_WMAV1 2. 在libavcodec/allcodecs.c的avcodec_register_all()函数中添加wma 解码器的注册比如:

REGISTER_ENCDEC(WMAV1, wmav1); 3. 在libavformat/xxx.c文件中添加对于可包含wma数据的文件格式对于wmav1的识别;(此

处的实现并不唯一,具体可参见ff_codec_wav_tags) 4. 创建wma.c 文件并实现 init, close, decode, flush函数,并定义一个AVCodec 变量,比如:

AVCodec wmav1_decoder = {

"wmav1", //name

AVMEDIA_TYPE_AUDIO,

CODEC_ID_WMAV1, //codec id

sizeof(WMACodecContext), //wma 结构体 wma_decode_init, // init 函数入口 NULL,

ff_wma_end,

//close 函数入口

wma_decode_superframe, // decode 函数入口 .flush=flush, //flush 函数入口 };

针对目前将wma,aac, mp3等定点解码库替换FFmpeg现有的实现,只需要重新实现init,close,decode,flush函数,实现的具体方法与各个定点解码库现有的实现有关,只要保证对传递的AVCodecContext类型的参数做正确的处理即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: