代码片段:利用FFmpeg中libswsscale库 完成RGB24格式图像到YUV420P格式的转换
//************************************
// Method: rgb24_to_yuv420p
// FullName: rgb24_to_yuv420p
// Access: public
// Returns: int 返回值为0表示成功,否则失败
// Qualifier: 将RGB24格式图像转化为YUV420P格式,并进行相应的缩放
// Parameter: void * src 输入缓冲
// Parameter: int srcW 源宽
// Parameter: int srcH 源高
// Parameter: int srcSz 输入RGB图像数据大小=srcW*srcH*3
// Parameter: void * dst 输出缓冲
// Parameter: int dstW 目标宽
// Parameter: int dstH 目标高
// Parameter: int dstSz 输出的YUV图像数据大小=dstW*dstH*1.5
//************************************
int rgb24_to_yuv420p(void* src, int srcW, int srcH, int srcSz, void* dst, int dstW, int dstH, int dstSz)
{
if (!src || !dst || srcSz <= 0 || srcW <= 0 || srcH <= 0 || dstSz <= 0||dstW<=0||dstH<=0)
{
return -1;
}
if (srcSz != srcW*srcH * 3 || dstSz != dstW*dstH*1.5)
{
return -1;
}
auto* ctxt