diff --git a/frameworks/innerkitsimpl/common/src/pixel_yuv_ext.cpp b/frameworks/innerkitsimpl/common/src/pixel_yuv_ext.cpp index b31b003615dca1a0c936243753d63541049279ba..6c61d72f0cddbf312f9da04885ec9e3c4a2faeaf 100644 --- a/frameworks/innerkitsimpl/common/src/pixel_yuv_ext.cpp +++ b/frameworks/innerkitsimpl/common/src/pixel_yuv_ext.cpp @@ -293,11 +293,11 @@ void PixelYuvExt::flip(bool xAxis, bool yAxis) if (xAxis && yAxis) { bRet = PixelYuvExtUtils::Mirror(data_, dst, imageInfo.size, imageInfo.pixelFormat, yuvDataInfo, dstStrides, true); - } else if (yAxis) { + } else if (xAxis) { bRet = PixelYuvExtUtils::Mirror(data_, dst, imageInfo.size, imageInfo.pixelFormat, yuvDataInfo, dstStrides, false); - } else if (xAxis) { - bRet = PixelYuvExtUtils::FlipXaxis(data_, dst, imageInfo.size, imageInfo.pixelFormat, yuvDataInfo, + } else if (yAxis) { + bRet = PixelYuvExtUtils::FlipYaxis(data_, dst, imageInfo.size, imageInfo.pixelFormat, yuvDataInfo, dstStrides); } if (!bRet) { diff --git a/frameworks/innerkitsimpl/utils/include/pixel_yuv_ext_utils.h b/frameworks/innerkitsimpl/utils/include/pixel_yuv_ext_utils.h index 91dfa6649be14ace9c44c45fbd44b46391122386..4f8f7a779569783245daf670788a4b298c0f7687 100644 --- a/frameworks/innerkitsimpl/utils/include/pixel_yuv_ext_utils.h +++ b/frameworks/innerkitsimpl/utils/include/pixel_yuv_ext_utils.h @@ -65,7 +65,7 @@ public: YuvImageInfo &yuvInfo, uint8_t *src, uint8_t *dst, YUVStrideInfo &dstStrides); static bool Mirror(uint8_t *src, uint8_t *dst, Size &size, PixelFormat format, YUVDataInfo &info, YUVStrideInfo &dstStrides, bool isReversed); - static bool FlipXaxis(uint8_t *src, uint8_t *dst, Size &size, PixelFormat format, YUVDataInfo &info, + static bool FlipYaxis(uint8_t *src, uint8_t *dst, Size &size, PixelFormat format, YUVDataInfo &info, YUVStrideInfo &dstStrides); static bool NV12Rotate(uint8_t *src, PixelSize &size, YUVDataInfo &info, OpenSourceLibyuv::RotationMode &rotateNum, uint8_t* dst, YUVStrideInfo &dstStrides); diff --git a/frameworks/innerkitsimpl/utils/src/pixel_yuv_ext_utils.cpp b/frameworks/innerkitsimpl/utils/src/pixel_yuv_ext_utils.cpp index 1aa982074cb2d60588ebe2c5e65cdcdcfe0dfafa..904a7aea4cc4c2d78c7b47d325b1103f5e509cc1 100644 --- a/frameworks/innerkitsimpl/utils/src/pixel_yuv_ext_utils.cpp +++ b/frameworks/innerkitsimpl/utils/src/pixel_yuv_ext_utils.cpp @@ -505,10 +505,10 @@ void PixelYuvExtUtils::ScaleYuv420(int32_t dstWidth, int32_t dstHeight, const An } } -bool PixelYuvExtUtils::FlipXaxis(uint8_t *src, uint8_t *dst, Size &size, PixelFormat format, +bool PixelYuvExtUtils::FlipYaxis(uint8_t *src, uint8_t *dst, Size &size, PixelFormat format, YUVDataInfo &info, YUVStrideInfo &dstStrides) { - IMAGE_LOGE("PixelYuvExtUtils FlipXaxis"); + IMAGE_LOGE("PixelYuvExtUtils FlipYaxis"); uint8_t *srcY = src + info.yOffset; uint8_t *srcUV = src + info.uvOffset; int srcYStride = static_cast(info.yStride); @@ -522,7 +522,11 @@ bool PixelYuvExtUtils::FlipXaxis(uint8_t *src, uint8_t *dst, Size &size, PixelFo int dstUVStride = static_cast(dstStrides.uvStride); auto converter = ConverterHandle::GetInstance().GetHandle(); - converter.NV12Copy(srcY, srcYStride, srcUV, srcUVStride, dstY, dstYStride, dstUV, dstUVStride, width, -height); + int iret = converter.NV12Copy(srcY, srcYStride, srcUV, srcUVStride, dstY, dstYStride, + dstUV, dstUVStride, width, -height); + if (iret == -1) { + return false; + } return true; } diff --git a/frameworks/innerkitsimpl/utils/src/pixel_yuv_utils.cpp b/frameworks/innerkitsimpl/utils/src/pixel_yuv_utils.cpp index b5ce40fb25a05e39f56d7f096e389ba263ba4969..5e520dd5bfcf4f0f2ac6be8c117c6a3d88687b80 100644 --- a/frameworks/innerkitsimpl/utils/src/pixel_yuv_utils.cpp +++ b/frameworks/innerkitsimpl/utils/src/pixel_yuv_utils.cpp @@ -320,7 +320,7 @@ static bool CreateBufferSource(AVFilterGraph **filterGraph, AVFilterContext **bu YuvImageInfo &srcInfo) { const char *bufferSrcArgs = av_asprintf("video_size=%dx%d:pix_fmt=%d:time_base=1/1:pixel_aspect=1/1", - srcInfo.yuvDataInfo.yStride, srcInfo.height, srcInfo.format); + srcInfo.width, srcInfo.height, srcInfo.format); if (!bufferSrcArgs) { IMAGE_LOGE("bufferSrcArgs is null"); return false;