video: driver: refine image session handling

Amended below logics for image session.

- set constant quality
- set tier: V4L2_MPEG_VIDEO_HEVC_TIER_MAIN
- frame_rate: 1
- enable subframe metadata
- stage:
	- image encode: 2 stage
	- image decode: 1 stage
- pipe: 4(work_route)
- power mode: max_quality.

Change-Id: I67acd5284910e7cbe26446b5dfc526d002b98981
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
This commit is contained in:
Govindaraj Rajagopal
2021-03-18 23:39:23 +05:30
父節點 e9e2d38148
當前提交 d238d03c1b
共有 9 個文件被更改,包括 187 次插入87 次删除

查看文件

@@ -305,7 +305,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
/* Enc: Keeping CABAC and CAVLC as same bitrate.
* Dec: there's no use of Bitrate cap
*/
{BIT_RATE, ENC, CODECS_ALL,
{BIT_RATE, ENC, H264|HEVC,
1, 220000000, 1, 20000000,
V4L2_CID_MPEG_VIDEO_BITRATE,
HFI_PROP_TOTAL_BITRATE,
@@ -363,7 +363,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
1, V4L2_MPEG_MSM_VIDC_ENABLE,
V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE},
{CONSTANT_QUALITY, ENC, HEVC|HEIC,
{CONSTANT_QUALITY, ENC, HEVC,
1, MAX_CONSTANT_QUALITY, 1, 90,
V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY,
HFI_PROP_CONSTANT_QUALITY,
@@ -884,7 +884,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
* go/videogki
*/
{HEVC_TIER, ENC|DEC, HEVC|HEIC,
{HEVC_TIER, ENC|DEC, HEVC,
V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
V4L2_MPEG_VIDEO_HEVC_TIER_HIGH,
BIT(V4L2_MPEG_VIDEO_HEVC_TIER_MAIN) |
@@ -1230,6 +1230,13 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
{BITRATE_MODE}, {0},
msm_vidc_adjust_delta_based_rc, msm_vidc_set_u32},
{CONSTANT_QUALITY, ENC, HEIC,
1, MAX_CONSTANT_QUALITY, 1, 100,
V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY,
HFI_PROP_CONSTANT_QUALITY,
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
{BITRATE_MODE}, {0},
NULL, msm_vidc_set_constant_quality},
{GRID, ENC, HEIC,
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
1, V4L2_MPEG_MSM_VIDC_ENABLE,
@@ -1255,8 +1262,9 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
NULL, msm_vidc_set_u32},
{PROFILE, ENC|DEC, HEIC,
V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE,
V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE,
BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE),
V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10,
BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE) |
BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10),
V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE,
V4L2_CID_MPEG_VIDEO_HEVC_PROFILE,
HFI_PROP_PROFILE,
@@ -1264,6 +1272,30 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
{PIX_FMTS},
{0},
msm_vidc_adjust_profile, msm_vidc_set_u32_enum},
{HEVC_TIER, ENC|DEC, HEIC,
V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
BIT(V4L2_MPEG_VIDEO_HEVC_TIER_MAIN),
V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
V4L2_CID_MPEG_VIDEO_HEVC_TIER,
HFI_PROP_TIER,
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
{0},
{0},
NULL, msm_vidc_set_u32_enum},
{FRAME_RATE, ENC, HEIC,
(MINIMUM_FPS << 16), (MAXIMUM_FPS << 16),
1, (MINIMUM_FPS << 16),
0,
HFI_PROP_FRAME_RATE,
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
{0}, {0},
NULL, msm_vidc_set_q16},
{META_SUBFRAME_OUTPUT, ENC, HEIC,
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
1, V4L2_MPEG_MSM_VIDC_DISABLE,
V4L2_CID_MPEG_VIDC_METADATA_SUBFRAME_OUTPUT,
HFI_PROP_SUBFRAME_OUTPUT},
};
/*