summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2013-01-18 22:28:30 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2013-01-18 22:28:30 -0800
commit313f663af28e53dcdbed826737ef5ba97074fc03 (patch)
tree279abfb023852b92555cc3c5b0f8785bfa1c20af
parentda2ae8433c7d40eb1d8af00119c203b31eabfd74 (diff)
parent384c1ac04a493fcaba27043511a2d583fefc4642 (diff)
downloadmedia-313f663af28e53dcdbed826737ef5ba97074fc03.tar.gz
Merge "libc2dcolorconvert: Support NV12 format for venus"
-rw-r--r--libc2dcolorconvert/C2DColorConverter.cpp14
-rw-r--r--libc2dcolorconvert/C2DColorConverter.h1
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 {