From 80471c1cd9cc4c4eb39081777e56f17dfe9b00b9 Mon Sep 17 00:00:00 2001 From: fanzhihao8 Date: Wed, 10 Sep 2025 15:17:04 +0800 Subject: [PATCH 1/3] fix greenline-3 Signed-off-by: fanzhihao8 --- frameworks/innerkitsimpl/common/src/pixel_yuv_ext.cpp | 6 +++--- .../innerkitsimpl/utils/include/pixel_yuv_ext_utils.h | 2 +- .../innerkitsimpl/utils/src/pixel_yuv_ext_utils.cpp | 10 +++++++--- frameworks/innerkitsimpl/utils/src/pixel_yuv_utils.cpp | 7 +++---- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/frameworks/innerkitsimpl/common/src/pixel_yuv_ext.cpp b/frameworks/innerkitsimpl/common/src/pixel_yuv_ext.cpp index b31b00361..6c61d72f0 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 91dfa6649..4f8f7a779 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 1aa982074..904a7aea4 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 b5ce40fb2..0ee79ec53 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; @@ -600,9 +600,8 @@ static bool FlipUpDataDstdata(YuvImageInfo &srcInfo, uint8_t *dstData, AVFrame * { dstFrame->width = srcFrame->width; dstFrame->height = srcFrame->height; - int32_t dstSize = av_image_get_buffer_size(static_cast(dstFrame->format), - dstFrame->width, dstFrame->height, 1); + dstFrame->width, dstFrame->height, align); if (dstSize < 0) { IMAGE_LOGE("FlipUpDataDstdata get size failed"); return false; @@ -610,7 +609,7 @@ static bool FlipUpDataDstdata(YuvImageInfo &srcInfo, uint8_t *dstData, AVFrame * // Copy the output frame data to the destination buffer if (av_image_copy_to_buffer(dstData, dstSize, dstFrame->data, dstFrame->linesize, - static_cast(dstFrame->format), dstFrame->width, dstFrame->height, 1) < 0) { + static_cast(dstFrame->format), dstFrame->width, dstFrame->height, align) < 0) { IMAGE_LOGE("FlipUpDataDstdata copy data failed"); return false; } -- Gitee From eb3fe7771d896b10a5567ce32817c43a34556f35 Mon Sep 17 00:00:00 2001 From: fanzhihao8 Date: Wed, 10 Sep 2025 15:17:58 +0800 Subject: [PATCH 2/3] fix greenline-3 Signed-off-by: fanzhihao8 --- frameworks/innerkitsimpl/utils/src/pixel_yuv_utils.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frameworks/innerkitsimpl/utils/src/pixel_yuv_utils.cpp b/frameworks/innerkitsimpl/utils/src/pixel_yuv_utils.cpp index 0ee79ec53..cefc35131 100644 --- a/frameworks/innerkitsimpl/utils/src/pixel_yuv_utils.cpp +++ b/frameworks/innerkitsimpl/utils/src/pixel_yuv_utils.cpp @@ -600,8 +600,9 @@ static bool FlipUpDataDstdata(YuvImageInfo &srcInfo, uint8_t *dstData, AVFrame * { dstFrame->width = srcFrame->width; dstFrame->height = srcFrame->height; + int32_t dstSize = av_image_get_buffer_size(static_cast(dstFrame->format), - dstFrame->width, dstFrame->height, align); + dstFrame->width, dstFrame->height, 1); if (dstSize < 0) { IMAGE_LOGE("FlipUpDataDstdata get size failed"); return false; @@ -609,7 +610,7 @@ static bool FlipUpDataDstdata(YuvImageInfo &srcInfo, uint8_t *dstData, AVFrame * // Copy the output frame data to the destination buffer if (av_image_copy_to_buffer(dstData, dstSize, dstFrame->data, dstFrame->linesize, - static_cast(dstFrame->format), dstFrame->width, dstFrame->height, align) < 0) { + static_cast(dstFrame->format), dstFrame->width, dstFrame->height, 1) < 0) { IMAGE_LOGE("FlipUpDataDstdata copy data failed"); return false; } -- Gitee From 83b24ab885575477ab5cae8d129daaef2eafd56b Mon Sep 17 00:00:00 2001 From: fanzhihao8 Date: Wed, 10 Sep 2025 15:18:30 +0800 Subject: [PATCH 3/3] fix greenline-3 Signed-off-by: fanzhihao8 --- frameworks/innerkitsimpl/utils/src/pixel_yuv_utils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/innerkitsimpl/utils/src/pixel_yuv_utils.cpp b/frameworks/innerkitsimpl/utils/src/pixel_yuv_utils.cpp index cefc35131..5e520dd5b 100644 --- a/frameworks/innerkitsimpl/utils/src/pixel_yuv_utils.cpp +++ b/frameworks/innerkitsimpl/utils/src/pixel_yuv_utils.cpp @@ -600,7 +600,7 @@ static bool FlipUpDataDstdata(YuvImageInfo &srcInfo, uint8_t *dstData, AVFrame * { dstFrame->width = srcFrame->width; dstFrame->height = srcFrame->height; - + int32_t dstSize = av_image_get_buffer_size(static_cast(dstFrame->format), dstFrame->width, dstFrame->height, 1); if (dstSize < 0) { -- Gitee