From e133c4b58c1a56f0d993dabef425cd532a6b53bf Mon Sep 17 00:00:00 2001 From: "jinhyung.jo" Date: Fri, 20 Mar 2015 18:57:48 +0900 Subject: [PATCH] maru-camera: modified bytesperline size The bytesperline size is same as the width of the YU12 & YV12 format in the progressive mode. Change-Id: I3fc8f2a2842e5f72ac58671758fc21a8fd2e9737 Signed-off-by: Jinhyung Jo --- tizen/src/hw/pci/maru_camera_darwin_pci.m | 20 ++++++++++++++++++-- tizen/src/hw/pci/maru_camera_win32_pci.c | 18 ++++++++++++++++-- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/tizen/src/hw/pci/maru_camera_darwin_pci.m b/tizen/src/hw/pci/maru_camera_darwin_pci.m index b470da3662..c75aa596a1 100644 --- a/tizen/src/hw/pci/maru_camera_darwin_pci.m +++ b/tizen/src/hw/pci/maru_camera_darwin_pci.m @@ -151,7 +151,7 @@ static uint32_t get_bytesperline(uint32_t pixfmt, uint32_t width) switch (pixfmt) { case V4L2_PIX_FMT_YUV420: case V4L2_PIX_FMT_YVU420: - bytesperline = (width * 12) >> 3; + bytesperline = width; break; case V4L2_PIX_FMT_YUYV: case V4L2_PIX_FMT_UYVY: @@ -165,9 +165,25 @@ static uint32_t get_bytesperline(uint32_t pixfmt, uint32_t width) static uint32_t get_sizeimage(uint32_t pixfmt, uint32_t width, uint32_t height) { - return get_bytesperline(pixfmt, width) * height; + uint32_t sizeimage; + + switch (pixfmt) { + case V4L2_PIX_FMT_YUV420: + case V4L2_PIX_FMT_YVU420: + sizeimage = height * ((width * 12) >> 3); + break; + case V4L2_PIX_FMT_YUYV: + case V4L2_PIX_FMT_UYVY: + default: + sizeimage = height * width * 2; + break; + } + + + return sizeimage; } + /****************************************************************** ** Maru Camera Implementation *****************************************************************/ diff --git a/tizen/src/hw/pci/maru_camera_win32_pci.c b/tizen/src/hw/pci/maru_camera_win32_pci.c index 72bfbbb2ab..35cdc0695b 100644 --- a/tizen/src/hw/pci/maru_camera_win32_pci.c +++ b/tizen/src/hw/pci/maru_camera_win32_pci.c @@ -1134,7 +1134,7 @@ static uint32_t get_bytesperline(uint32_t pixfmt, uint32_t width) switch (pixfmt) { case V4L2_PIX_FMT_YUV420: case V4L2_PIX_FMT_YVU420: - bytesperline = (width * 12) >> 3; + bytesperline = width; break; case V4L2_PIX_FMT_YUYV: default: @@ -1147,7 +1147,21 @@ static uint32_t get_bytesperline(uint32_t pixfmt, uint32_t width) static uint32_t get_sizeimage(uint32_t pixfmt, uint32_t width, uint32_t height) { - return get_bytesperline(pixfmt, width) * height; + uint32_t sizeimage; + + switch (pixfmt) { + case V4L2_PIX_FMT_YUV420: + case V4L2_PIX_FMT_YVU420: + sizeimage = height * ((width * 12) >> 3); + break; + case V4L2_PIX_FMT_YUYV: + default: + sizeimage = height * width * 2; + break; + } + + + return sizeimage; } void yuyv_to_yuv420(const unsigned char *src, unsigned char *dest, -- 2.34.1