mm-video-v4l2: vdec: Enable thumbnail for TP10
Added thumbnail generation support for TP10 clips using
combined mode.
Change-Id: I0dda5d74c37d720558e0b492822dd9321564dc5c
CRs-Fixed: 2091107
diff --git a/libc2dcolorconvert/C2DColorConverter.cpp b/libc2dcolorconvert/C2DColorConverter.cpp
index 0551a8f..d36a950 100644
--- a/libc2dcolorconvert/C2DColorConverter.cpp
+++ b/libc2dcolorconvert/C2DColorConverter.cpp
@@ -266,6 +266,7 @@
case NV12_2K:
case NV12_128m:
case NV12_UBWC:
+ case TP10_UBWC:
return true;
default:
return false;
@@ -442,6 +443,8 @@
return C2D_COLOR_FORMAT_420_YV12;
case NV12_UBWC:
return C2D_COLOR_FORMAT_420_NV12 | C2D_FORMAT_UBWC_COMPRESSED;
+ case TP10_UBWC:
+ return C2D_COLOR_FORMAT_420_TP10 | C2D_FORMAT_UBWC_COMPRESSED;
default:
ALOGW("%s: Format not supported , %d", __FUNCTION__, format);
return -1;
@@ -472,6 +475,8 @@
return ALIGN(width, ALIGN16);
case NV12_UBWC:
return VENUS_Y_STRIDE(COLOR_FMT_NV12_UBWC, width);
+ case TP10_UBWC:
+ return VENUS_Y_STRIDE(COLOR_FMT_NV12_BPP10_UBWC, width);
default:
ALOGW("%s: Format not supported , %d", __FUNCTION__, format);
return 0;
@@ -501,6 +506,11 @@
VENUS_Y_SCANLINES(COLOR_FMT_NV12_UBWC, height), ALIGN4K) +
ALIGN( VENUS_Y_META_STRIDE(COLOR_FMT_NV12_UBWC, width) *
VENUS_Y_META_SCANLINES(COLOR_FMT_NV12_UBWC, height), ALIGN4K);
+ case TP10_UBWC:
+ return ALIGN( VENUS_Y_STRIDE(COLOR_FMT_NV12_BPP10_UBWC, width) *
+ VENUS_Y_SCANLINES(COLOR_FMT_NV12_BPP10_UBWC, height), ALIGN4K) +
+ ALIGN( VENUS_Y_META_STRIDE(COLOR_FMT_NV12_BPP10_UBWC, width) *
+ VENUS_Y_META_SCANLINES(COLOR_FMT_NV12_BPP10_UBWC, height), ALIGN4K);
default:
ALOGW("%s: Format not supported , %d", __FUNCTION__, format);
return 0;
@@ -569,6 +579,9 @@
case NV12_UBWC:
size = VENUS_BUFFER_SIZE(COLOR_FMT_NV12_UBWC, width, height);
break;
+ case TP10_UBWC:
+ size = VENUS_BUFFER_SIZE(COLOR_FMT_NV12_BPP10_UBWC, width, height);
+ break;
default:
ALOGW("%s: Format not supported , %d", __FUNCTION__, format);
break;
@@ -674,6 +687,7 @@
case NV12_128m:
return 1;
case NV12_UBWC:
+ case TP10_UBWC:
return ALIGN4K;
default:
ALOGW("%s: unknown format (%d) passed for luma alignment number.",
@@ -691,6 +705,7 @@
case NV12_2K:
case NV12_128m:
case NV12_UBWC:
+ case TP10_UBWC:
return ALIGN4K;
default:
ALOGW("%s: unknown format (%d) passed for size alignment number",
@@ -719,6 +734,7 @@
case NV12_2K:
case NV12_128m:
case NV12_UBWC:
+ case TP10_UBWC:
bpp.numerator = 3;
bpp.denominator = 2;
break;
diff --git a/libc2dcolorconvert/C2DColorConverter.h b/libc2dcolorconvert/C2DColorConverter.h
index 3be364f..f1092c0 100644
--- a/libc2dcolorconvert/C2DColorConverter.h
+++ b/libc2dcolorconvert/C2DColorConverter.h
@@ -102,7 +102,7 @@
NV12_2K,
NV12_128m,
NV12_UBWC,
- NV12_TP10,
+ TP10_UBWC,
NO_COLOR_FORMAT
};
diff --git a/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp b/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
index 797cc49..a754fda 100644
--- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
+++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
@@ -1065,15 +1065,9 @@
}
if (tp10_enable && !dither_enable) {
- /* When thumbnails enabled, always output in NV12 UBWC */
- if(drv_ctx.idr_only_decoding) {
- drv_ctx.output_format = VDEC_YUV_FORMAT_NV12_UBWC;
- capture_capability = V4L2_PIX_FMT_NV12_UBWC;
- } else {
- drv_ctx.output_format = VDEC_YUV_FORMAT_NV12_TP10_UBWC;
- capture_capability = V4L2_PIX_FMT_NV12_TP10_UBWC;
+ drv_ctx.output_format = VDEC_YUV_FORMAT_NV12_TP10_UBWC;
+ capture_capability = V4L2_PIX_FMT_NV12_TP10_UBWC;
- }
memset(&fmt, 0x0, sizeof(struct v4l2_format));
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
rc = ioctl(drv_ctx.video_driver_fd, VIDIOC_G_FMT, &fmt);
@@ -1148,7 +1142,7 @@
eRet = set_dpb(false, V4L2_MPEG_VIDC_VIDEO_DPB_COLOR_FMT_NONE);
}
} else if (dpb_bit_depth == MSM_VIDC_BIT_DEPTH_10) {
- if (dither_enable || drv_ctx.idr_only_decoding) {
+ if (dither_enable) {
//split DPB-OPB
//DPB -> TP10UBWC, OPB -> UBWC
eRet = set_dpb(true, V4L2_MPEG_VIDC_VIDEO_DPB_COLOR_FMT_TP10_UBWC);
@@ -10918,7 +10912,7 @@
mMapOutput2Convert.insert( {
{VDEC_YUV_FORMAT_NV12, NV12_128m},
{VDEC_YUV_FORMAT_NV12_UBWC, NV12_UBWC},
- {VDEC_YUV_FORMAT_NV12_TP10_UBWC, NV12_TP10},
+ {VDEC_YUV_FORMAT_NV12_TP10_UBWC, TP10_UBWC},
});
}