我自己在使用如下函数进行转换时报的错

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
int sws_scale(struct SwsContext *c, const uint8_t *const srcSlice[],
              const int srcStride[], int srcSliceY, int srcSliceH,
              uint8_t *const dst[], const int dstStride[]);

 

网上搜索的答案:

https://stackoverflow.com/questions/23067722/swscaler-warning-deprecated-pixel-format-used

 

原因就是你使用的格式已经被废除了,在如下链接可以看到哪些不能用了:

https://libav.org/documentation/doxygen/master/pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5

 

我写的转换函数:

AVPixelFormat ConvertDeprecatedFormat(enum AVPixelFormat format)
{
    switch (format)
    {
    case AV_PIX_FMT_YUVJ420P:
        return AV_PIX_FMT_YUV420P;
        break;
    case AV_PIX_FMT_YUVJ422P:
        return AV_PIX_FMT_YUV422P;
        break;
    case AV_PIX_FMT_YUVJ444P:
        return AV_PIX_FMT_YUV444P;
        break;
    case AV_PIX_FMT_YUVJ440P:
        return AV_PIX_FMT_YUV440P;
        break;
    default:
        return format;
        break;
    }
}

 

要使用新的格式类型,并且设置color range,还没有弄清color range的概念,后续再补充,先记下来。

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄