diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2013-01-18 22:28:30 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2013-01-18 22:28:30 -0800 |
commit | 313f663af28e53dcdbed826737ef5ba97074fc03 (patch) | |
tree | 279abfb023852b92555cc3c5b0f8785bfa1c20af | |
parent | da2ae8433c7d40eb1d8af00119c203b31eabfd74 (diff) | |
parent | 384c1ac04a493fcaba27043511a2d583fefc4642 (diff) | |
download | media-313f663af28e53dcdbed826737ef5ba97074fc03.tar.gz |
Merge "libc2dcolorconvert: Support NV12 format for venus"
-rw-r--r-- | libc2dcolorconvert/C2DColorConverter.cpp | 14 | ||||
-rw-r--r-- | libc2dcolorconvert/C2DColorConverter.h | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/libc2dcolorconvert/C2DColorConverter.cpp b/libc2dcolorconvert/C2DColorConverter.cpp index a7bb763a..c47f5ca6 100644 --- a/libc2dcolorconvert/C2DColorConverter.cpp +++ b/libc2dcolorconvert/C2DColorConverter.cpp @@ -270,6 +270,7 @@ bool C2DColorConverter::isYUVSurface(ColorConvertFormat format) case YCbCr420P: case YCrCb420P: case NV12_2K: + case NV12_128m: return true; case RGB565: case RGBA8888: @@ -378,6 +379,7 @@ uint32_t C2DColorConverter::getC2DFormat(ColorConvertFormat format) return (C2D_COLOR_FORMAT_420_NV12 | C2D_FORMAT_MACROTILED); case YCbCr420SP: case NV12_2K: + case NV12_128m: return C2D_COLOR_FORMAT_420_NV12; case YCbCr420P: return C2D_COLOR_FORMAT_420_I420; @@ -402,6 +404,8 @@ size_t C2DColorConverter::calcStride(ColorConvertFormat format, size_t width) return ALIGN(width, ALIGN32); case NV12_2K: return ALIGN(width, ALIGN16); + case NV12_128m: + return ALIGN(width, ALIGN128); case YCbCr420P: return width; case YCrCb420P: @@ -427,6 +431,8 @@ size_t C2DColorConverter::calcYSize(ColorConvertFormat format, size_t width, siz size_t lumaSize = ALIGN(alignedw * height, ALIGN2K); return lumaSize; } + case NV12_128m: + return ALIGN(width, ALIGN128) * ALIGN(height, ALIGN32); default: return 0; } @@ -471,6 +477,11 @@ size_t C2DColorConverter::calcSize(ColorConvertFormat format, size_t width, size ALOGV("NV12_2k, width = %d, height = %d, size = %d", width, height, size); } break; + case NV12_128m: + alignedw = ALIGN(width, ALIGN128); + alignedh = ALIGN(height, ALIGN32); + size = ALIGN(alignedw * alignedh + (alignedw * ALIGN(height/2, ALIGN16)), ALIGN4K); + break; default: break; } @@ -550,6 +561,8 @@ size_t C2DColorConverter::calcLumaAlign(ColorConvertFormat format) { switch (format) { case NV12_2K: return ALIGN2K; + case NV12_128m: + return 1; default: ALOGE("unknown format passed for luma alignment number"); return 1; @@ -563,6 +576,7 @@ size_t C2DColorConverter::calcSizeAlign(ColorConvertFormat format) { case YCbCr420SP: //OR NV12 case YCbCr420P: case NV12_2K: + case NV12_128m: return ALIGN4K; default: ALOGE("unknown format passed for size alignment number"); diff --git a/libc2dcolorconvert/C2DColorConverter.h b/libc2dcolorconvert/C2DColorConverter.h index 93bf39b7..999d297c 100644 --- a/libc2dcolorconvert/C2DColorConverter.h +++ b/libc2dcolorconvert/C2DColorConverter.h @@ -73,6 +73,7 @@ enum ColorConvertFormat { YCrCb420P, RGBA8888, NV12_2K, + NV12_128m, }; typedef struct { |