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

2 篇文章 0 订阅
2 篇文章 0 订阅

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解码器相关的源代码文件:



评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值