我自己在使用如下函数进行转换时报的错
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的概念,后续再补充,先记下来。