FFMPEG 增加 AVS+ 视频解码 支持-第二篇:ffmpeg中注册cavsp解码器

来源:互联网 发布:阿里云cdn网站加速 编辑:程序博客网 时间:2024/06/03 14:53

1、在ffmpeg中使用枚举enum AVCodecID 来标记每一个编解码器

在libavcodec下avcodec.h中定义所有codec的ID

enum AVCodecID {    AV_CODEC_ID_NONE,    /* video codecs */    AV_CODEC_ID_MPEG1VIDEO,    AV_CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding


下面的截图是 ffmpeg-2.7版本中AVS解码器的ID : AV_CODEC_ID_CAVS

【特别注意】ffmpeg是通过解码器的ID来调用解码器的API进行编解码


2、定义CAVSP解码器

首先看看AVS解码器的定义,然后增加AVS+解码器

下面是 CAVS解码器的定义:libavocdec下cavsdec.c中定义

AVCodec ff_cavs_decoder = {    .name           = "cavs",    .long_name      = NULL_IF_CONFIG_SMALL("Chinese AVS (Audio Video Standard) (AVS1-P2, JiZhun profile)"),    .type           = AVMEDIA_TYPE_VIDEO,    .id             = AV_CODEC_ID_CAVS,    .priv_data_size = sizeof(AVSContext),    .init           = ff_cavs_init,    .close          = ff_cavs_end,    .decode         = cavs_decode_frame,    .capabilities   = CODEC_CAP_DR1 | CODEC_CAP_DELAY,    .flush          = cavs_flush,};


下面截图是ffmpeg-2.7中与AVS解码器相关的源代码文件:



1 0
原创粉丝点击