ffmpeg的--enable-small

2019-11-05  本文已影响0人  技术笔记

codec_descriptors,把codec id,type, name, profile放在一起

static const AVCodecDescriptor codec_descriptors[] = {
    /* video codecs */
    {
        .id        = AV_CODEC_ID_MPEG1VIDEO,
        .type      = AVMEDIA_TYPE_VIDEO,
        .name      = "mpeg1video",
        .long_name = NULL_IF_CONFIG_SMALL("MPEG-1 video"),
        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
    },
    //...
    //profile,有些有定义,有些没有定义,H264的有,AC3的没有
    {
        .id        = AV_CODEC_ID_H264,
        .type      = AVMEDIA_TYPE_VIDEO,
        .name      = "h264",
        .long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"),
        .props     = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS | AV_CODEC_PROP_REORDER,
        .profiles  = NULL_IF_CONFIG_SMALL(ff_h264_profiles),
    },

有意思的是通过av_get_profile_name和avcodec_profile_name这两函数获取profile的时候,怎么都是null, 最后检查,是configure的时候开了--enable-small,把这个去掉就好了。

因为profiles用到了NULL_IF_CONFIG_SMALL,所以要使用它,就得关掉。

.profiles  = NULL_IF_CONFIG_SMALL(ff_h264_profiles)
上一篇下一篇

猜你喜欢

热点阅读