Merge "mm-video-v4l2: Set V4L2_FLAG_CVPMETADATA_SKIP flag"
diff --git a/mm-core/src/registry_table_android.c b/mm-core/src/registry_table_android.c
index 5e6488a..1ad8796 100644
--- a/mm-core/src/registry_table_android.c
+++ b/mm-core/src/registry_table_android.c
@@ -57,11 +57,9 @@
OMX_REGISTRY_ENTRY("OMX.qcom.video.encoder.mpeg4sw", "libOmxSwVencMpeg4.so", "video_encoder.mpeg4"),
OMX_REGISTRY_ENTRY("OMX.qcom.video.encoder.h263sw", "libOmxSwVencMpeg4.so", "video_encoder.h263"),
OMX_REGISTRY_ENTRY("OMX.qcom.video.encoder.avc", "libOmxVenc.so", "video_encoder.avc"),
- OMX_REGISTRY_ENTRY("OMX.qcom.video.encoder.avc.secure", "libOmxVenc.so", "video_encoder.avc"),
OMX_REGISTRY_ENTRY("OMX.qcom.video.encoder.vp8", "libOmxVenc.so", "video_encoder.vp8"),
OMX_REGISTRY_ENTRY("OMX.qcom.video.encoder.hevc", "libOmxVenc.so", "video_encoder.hevc"),
OMX_REGISTRY_ENTRY("OMX.qcom.video.encoder.hevc.cq", "libOmxVenc.so", "video_encoder.hevc"),
- OMX_REGISTRY_ENTRY("OMX.qcom.video.encoder.hevc.secure", "libOmxVenc.so", "video_encoder.hevc"),
OMX_REGISTRY_ENTRY("OMX.qcom.video.encoder.heic", "libOmxVenc.so", "image_encoder.heic"),
OMX_REGISTRY_ENTRY("OMX.qti.vdec.vpp", "libOmxVpp.so", "iv_processor.yuv"),
#endif // VIDC_STUB_HAL
diff --git a/mm-video-v4l2/vidc/vdec/inc/omx_vdec.h b/mm-video-v4l2/vidc/vdec/inc/omx_vdec.h
index 42d1ec6..b808d75 100644
--- a/mm-video-v4l2/vidc/vdec/inc/omx_vdec.h
+++ b/mm-video-v4l2/vidc/vdec/inc/omx_vdec.h
@@ -181,7 +181,8 @@
#define MAX_NUM_INPUT_OUTPUT_BUFFERS VIDEO_MAX_FRAME
#endif
-#define MIN_NUM_INPUT_OUTPUT_EXTRADATA_BUFFERS 32 // 32 (max cap when VPP enabled)
+// Aligning to MAX NUM INPUT & OUTPUT
+#define MIN_NUM_INPUT_OUTPUT_EXTRADATA_BUFFERS MAX_NUM_INPUT_OUTPUT_BUFFERS
/* STATUS CODES */
/* Base value for status codes */
diff --git a/mm-video-v4l2/vidc/venc/inc/omx_video_common.h b/mm-video-v4l2/vidc/venc/inc/omx_video_common.h
index 80f473b..8660248 100644
--- a/mm-video-v4l2/vidc/venc/inc/omx_video_common.h
+++ b/mm-video-v4l2/vidc/venc/inc/omx_video_common.h
@@ -52,6 +52,11 @@
#define OMX_VIDEO_DEC_NUM_INPUT_BUFFERS 2
#define OMX_VIDEO_DEC_NUM_OUTPUT_BUFFERS 2
+/* Based on 1080p resolution */
+#define DEFAULT_TILE_ROWS 3
+#define DEFAULT_TILE_COLS 4
+#define DEFAULT_TILE_DIMENSION 512
+
#ifdef FEATURE_QTV_WVGA_ENABLE
#define OMX_VIDEO_DEC_INPUT_BUFFER_SIZE (256*1024)
#else
diff --git a/mm-video-v4l2/vidc/venc/inc/omx_video_encoder.h b/mm-video-v4l2/vidc/venc/inc/omx_video_encoder.h
index 7567720..707c466 100644
--- a/mm-video-v4l2/vidc/venc/inc/omx_video_encoder.h
+++ b/mm-video-v4l2/vidc/venc/inc/omx_video_encoder.h
@@ -38,9 +38,6 @@
OMX_API void * get_omx_component_factory_fn(void);
}
-#define DEFAULT_TILE_DIMENSION 512
-#define DEFAULT_TILE_COUNT 40
-
class omx_venc: public omx_video
{
public:
diff --git a/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp b/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp
index 7ea0ad0..a45edbc 100644
--- a/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp
+++ b/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp
@@ -1676,6 +1676,17 @@
OMX_VIDEO_PARAM_ANDROID_IMAGEGRIDTYPE* pParam =
(OMX_VIDEO_PARAM_ANDROID_IMAGEGRIDTYPE*)paramData;
DEBUG_PRINT_LOW("get_parameter: OMX_IndexParamVideoAndroidImageGrid");
+ m_sParamAndroidImageGrid.bEnabled = OMX_TRUE;
+ m_sParamAndroidImageGrid.nTileWidth = DEFAULT_TILE_DIMENSION;
+ m_sParamAndroidImageGrid.nTileHeight = DEFAULT_TILE_DIMENSION;
+ m_sParamAndroidImageGrid.nGridRows =
+ m_sInPortDef.format.video.nFrameHeight > 0 ?
+ ((m_sInPortDef.format.video.nFrameHeight - 1) / DEFAULT_TILE_DIMENSION + 1) :
+ DEFAULT_TILE_ROWS;
+ m_sParamAndroidImageGrid.nGridCols =
+ m_sInPortDef.format.video.nFrameWidth > 0 ?
+ ((m_sInPortDef.format.video.nFrameWidth - 1) / DEFAULT_TILE_DIMENSION + 1) :
+ DEFAULT_TILE_COLS;
memcpy(pParam, &m_sParamAndroidImageGrid, sizeof(m_sParamAndroidImageGrid));
break;
}
diff --git a/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp b/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp
index 0717d5d..138530f 100644
--- a/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp
+++ b/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp
@@ -231,11 +231,6 @@
OMX_MAX_STRINGNAME_SIZE)) {
strlcpy((char *)m_cRole, "video_encoder.avc",OMX_MAX_STRINGNAME_SIZE);
codec_type = OMX_VIDEO_CodingAVC;
- } else if(!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.avc.secure",\
- OMX_MAX_STRINGNAME_SIZE)) {
- strlcpy((char *)m_cRole, "video_encoder.avc",OMX_MAX_STRINGNAME_SIZE);
- codec_type = OMX_VIDEO_CodingAVC;
- secure_session = true;
} else if (!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.vp8", \
OMX_MAX_STRINGNAME_SIZE)) {
strlcpy((char *)m_cRole, "video_encoder.vp8",OMX_MAX_STRINGNAME_SIZE);
@@ -250,11 +245,6 @@
OMX_MAX_STRINGNAME_SIZE)) {
strlcpy((char *)m_cRole, "video_encoder.hevc", OMX_MAX_STRINGNAME_SIZE);
codec_type = OMX_VIDEO_CodingImageHEIC;
- } else if (!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.hevc.secure", \
- OMX_MAX_STRINGNAME_SIZE)) {
- strlcpy((char *)m_cRole, "video_encoder.hevc", OMX_MAX_STRINGNAME_SIZE);
- codec_type = OMX_VIDEO_CodingHEVC;
- secure_session = true;
} else {
DEBUG_PRINT_ERROR("ERROR: Unknown Component");
eRet = OMX_ErrorInvalidComponentName;
@@ -543,8 +533,8 @@
m_sParamAndroidImageGrid.bEnabled = OMX_FALSE;
m_sParamAndroidImageGrid.nTileWidth = DEFAULT_TILE_DIMENSION;
m_sParamAndroidImageGrid.nTileHeight = DEFAULT_TILE_DIMENSION;
- m_sParamAndroidImageGrid.nGridRows = DEFAULT_TILE_COUNT;
- m_sParamAndroidImageGrid.nGridCols = DEFAULT_TILE_COUNT;
+ m_sParamAndroidImageGrid.nGridRows = DEFAULT_TILE_ROWS;
+ m_sParamAndroidImageGrid.nGridCols = DEFAULT_TILE_COLS;
OMX_INIT_STRUCT(&m_sParamLTRCount, QOMX_VIDEO_PARAM_LTRCOUNT_TYPE);
m_sParamLTRCount.nPortIndex = (OMX_U32) PORT_INDEX_OUT;
@@ -942,15 +932,7 @@
}
case OMX_IndexParamVideoAndroidImageGrid:
{
- VALIDATE_OMX_PARAM_DATA(paramData, OMX_VIDEO_PARAM_ANDROID_IMAGEGRIDTYPE);
- DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoAndroidImageGrid");
- OMX_VIDEO_PARAM_ANDROID_IMAGEGRIDTYPE* pParam =
- (OMX_VIDEO_PARAM_ANDROID_IMAGEGRIDTYPE*)paramData;
- if (!handle->venc_set_param(paramData, (OMX_INDEXTYPE)OMX_IndexParamVideoAndroidImageGrid)) {
- DEBUG_PRINT_ERROR("ERROR: Request for setting image grid enable failed");
- return OMX_ErrorUnsupportedSetting;
- }
- memcpy(&m_sParamAndroidImageGrid, pParam, sizeof(m_sParamAndroidImageGrid));
+ DEBUG_PRINT_LOW("set_parameter: OMX_IndexParamVideoAndroidImageGrid. Ignore!");
break;
}
case OMX_IndexParamVideoProfileLevelCurrent:
@@ -972,12 +954,6 @@
m_sParamAVC.eLevel = (OMX_VIDEO_AVCLEVELTYPE)m_sParamProfileLevel.eLevel;
DEBUG_PRINT_LOW("AVC profile = %d, level = %d", m_sParamAVC.eProfile,
m_sParamAVC.eLevel);
- } else if (!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.avc.secure",\
- OMX_MAX_STRINGNAME_SIZE)) {
- m_sParamAVC.eProfile = (OMX_VIDEO_AVCPROFILETYPE)m_sParamProfileLevel.eProfile;
- m_sParamAVC.eLevel = (OMX_VIDEO_AVCLEVELTYPE)m_sParamProfileLevel.eLevel;
- DEBUG_PRINT_LOW("\n AVC profile = %d, level = %d", m_sParamAVC.eProfile,
- m_sParamAVC.eLevel);
}
else if (!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.vp8",\
OMX_MAX_STRINGNAME_SIZE)) {
@@ -1023,13 +999,6 @@
DEBUG_PRINT_ERROR("ERROR: Setparameter: unknown Index %s", comp_role->cRole);
eRet =OMX_ErrorUnsupportedSetting;
}
- } else if (!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.avc.secure",OMX_MAX_STRINGNAME_SIZE)) {
- if (!strncmp((char*)comp_role->cRole,"video_encoder.avc",OMX_MAX_STRINGNAME_SIZE)) {
- strlcpy((char*)m_cRole,"video_encoder.avc",OMX_MAX_STRINGNAME_SIZE);
- } else {
- DEBUG_PRINT_ERROR("ERROR: Setparameter: unknown Index %s\n", comp_role->cRole);
- eRet =OMX_ErrorUnsupportedSetting;
- }
} else if (!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.vp8",OMX_MAX_STRINGNAME_SIZE)) {
if (!strncmp((const char*)comp_role->cRole,"video_encoder.vp8",OMX_MAX_STRINGNAME_SIZE)) {
strlcpy((char*)m_cRole,"video_encoder.vp8",OMX_MAX_STRINGNAME_SIZE);
@@ -1045,13 +1014,6 @@
DEBUG_PRINT_ERROR("ERROR: Setparameter: unknown Index %s", comp_role->cRole);
eRet = OMX_ErrorUnsupportedSetting;
}
- } else if (!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.hevc.secure",OMX_MAX_STRINGNAME_SIZE)) {
- if (!strncmp((const char*)comp_role->cRole,"video_encoder.hevc",OMX_MAX_STRINGNAME_SIZE)) {
- strlcpy((char*)m_cRole,"video_encoder.hevc",OMX_MAX_STRINGNAME_SIZE);
- } else {
- DEBUG_PRINT_ERROR("ERROR: Setparameter: unknown Index %s", comp_role->cRole);
- eRet = OMX_ErrorUnsupportedSetting;
- }
} else if (!strncmp((char*)m_nkind, "OMX.qcom.video.encoder.heic",OMX_MAX_STRINGNAME_SIZE)) {
if (!strncmp((const char*)comp_role->cRole,"image_encoder.heic",OMX_MAX_STRINGNAME_SIZE)) {
strlcpy((char*)m_cRole,"video_encoder.hevc",OMX_MAX_STRINGNAME_SIZE);
@@ -1605,12 +1567,6 @@
m_sParamAVC.eLevel = (OMX_VIDEO_AVCLEVELTYPE)eLevel;
DEBUG_PRINT_LOW("AVC profile = %d, level = %d", m_sParamAVC.eProfile,
m_sParamAVC.eLevel);
- } else if (!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.avc.secure",\
- OMX_MAX_STRINGNAME_SIZE)) {
- m_sParamAVC.eProfile = (OMX_VIDEO_AVCPROFILETYPE)eProfile;
- m_sParamAVC.eLevel = (OMX_VIDEO_AVCLEVELTYPE)eLevel;
- DEBUG_PRINT_LOW("\n AVC profile = %d, level = %d", m_sParamAVC.eProfile,
- m_sParamAVC.eLevel);
}
else if (!strncmp((char *)m_nkind, "OMX.qcom.video.encoder.vp8",\
OMX_MAX_STRINGNAME_SIZE)) {
diff --git a/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2_params.cpp b/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2_params.cpp
index e6710da..8824c4c 100755
--- a/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2_params.cpp
+++ b/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2_params.cpp
@@ -787,17 +787,7 @@
}
case (OMX_INDEXTYPE)OMX_IndexParamVideoAndroidImageGrid:
{
- DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamVideoAndroidImageGrid");
-
- if (m_codec != OMX_VIDEO_CodingImageHEIC) {
- DEBUG_PRINT_ERROR("OMX_IndexParamVideoAndroidImageGrid is only set for HEIC (HW tiling)");
- return true;
- }
-
- if (!venc_set_grid_enable()) {
- DEBUG_PRINT_ERROR("ERROR: Failed to set grid-enable");
- return false;
- }
+ DEBUG_PRINT_LOW("venc_set_param: OMX_IndexParamVideoAndroidImageGrid. Ignore!");
break;
}
case OMX_IndexParamVideoIntraRefresh: