|
@@ -60,6 +60,7 @@ static struct msm_platform_core_capability core_data_waipio[] = {
|
|
{MAX_MBPS_HQ, 489600}, /* ((1920x1088)/256)@60fps */
|
|
{MAX_MBPS_HQ, 489600}, /* ((1920x1088)/256)@60fps */
|
|
{MAX_MBPF_B_FRAME, 32640}, /* 3840x2176/256 */
|
|
{MAX_MBPF_B_FRAME, 32640}, /* 3840x2176/256 */
|
|
{MAX_MBPS_B_FRAME, 1958400}, /* 3840x2176/256 MBs@60fps */
|
|
{MAX_MBPS_B_FRAME, 1958400}, /* 3840x2176/256 MBs@60fps */
|
|
|
|
+ {MAX_ENH_LAYER_COUNT, 5},
|
|
{NUM_VPP_PIPE, 4},
|
|
{NUM_VPP_PIPE, 4},
|
|
{SW_PC, 1},
|
|
{SW_PC, 1},
|
|
{SW_PC_DELAY, 20000}, /* 20000 ms (>HW_RESPONSE_TIMEOUT)*/
|
|
{SW_PC_DELAY, 20000}, /* 20000 ms (>HW_RESPONSE_TIMEOUT)*/
|
|
@@ -193,12 +194,6 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|
{SCALE_X, DEC, H264|HEVC|VP9, 65536, 65536, 1, 65536},
|
|
{SCALE_X, DEC, H264|HEVC|VP9, 65536, 65536, 1, 65536},
|
|
{SCALE_Y, ENC, H264|HEVC, 8192, 65536, 1, 8192},
|
|
{SCALE_Y, ENC, H264|HEVC, 8192, 65536, 1, 8192},
|
|
{SCALE_Y, DEC, H264|HEVC|VP9, 65536, 65536, 1, 65536},
|
|
{SCALE_Y, DEC, H264|HEVC|VP9, 65536, 65536, 1, 65536},
|
|
- {B_FRAME, ENC, H264|HEVC,
|
|
|
|
- V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
|
- V4L2_CID_MPEG_VIDEO_B_FRAMES,
|
|
|
|
- HFI_PROP_MAX_B_FRAMES,
|
|
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
|
|
|
|
{MB_CYCLES_VSP, ENC, CODECS_ALL, 25, 25, 1, 25},
|
|
{MB_CYCLES_VSP, ENC, CODECS_ALL, 25, 25, 1, 25},
|
|
{MB_CYCLES_VSP, DEC, CODECS_ALL, 25, 25, 1, 25},
|
|
{MB_CYCLES_VSP, DEC, CODECS_ALL, 25, 25, 1, 25},
|
|
@@ -328,7 +323,8 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|
HFI_PROP_RATE_CONTROL,
|
|
HFI_PROP_RATE_CONTROL,
|
|
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
{0},
|
|
{0},
|
|
- {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP},
|
|
|
|
|
|
+ {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP,
|
|
|
|
+ ENH_LAYER_COUNT},
|
|
msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
|
msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
|
|
|
|
|
{BITRATE_MODE, ENC, HEVC,
|
|
{BITRATE_MODE, ENC, HEVC,
|
|
@@ -343,7 +339,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
{0},
|
|
{0},
|
|
{LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC,
|
|
{LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC,
|
|
- I_FRAME_QP, CONSTANT_QUALITY},
|
|
|
|
|
|
+ I_FRAME_QP, CONSTANT_QUALITY, ENH_LAYER_COUNT},
|
|
msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
|
msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
|
|
|
|
|
{LOSSLESS, ENC, HEVC|HEIC,
|
|
{LOSSLESS, ENC, HEVC|HEIC,
|
|
@@ -375,14 +371,14 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|
{BITRATE_MODE}, {0},
|
|
{BITRATE_MODE}, {0},
|
|
NULL, msm_vidc_set_constant_quality},
|
|
NULL, msm_vidc_set_constant_quality},
|
|
|
|
|
|
- // TODO: GOP dependencies
|
|
|
|
{GOP_SIZE, ENC, CODECS_ALL,
|
|
{GOP_SIZE, ENC, CODECS_ALL,
|
|
0, INT_MAX, 1, 2 * DEFAULT_FPS - 1,
|
|
0, INT_MAX, 1, 2 * DEFAULT_FPS - 1,
|
|
V4L2_CID_MPEG_VIDEO_GOP_SIZE,
|
|
V4L2_CID_MPEG_VIDEO_GOP_SIZE,
|
|
HFI_PROP_MAX_GOP_FRAMES,
|
|
HFI_PROP_MAX_GOP_FRAMES,
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
|
- {0}, {0},
|
|
|
|
- NULL, msm_vidc_set_u32},
|
|
|
|
|
|
+ CAP_FLAG_OUTPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
|
+ {ENH_LAYER_COUNT},
|
|
|
|
+ {0},
|
|
|
|
+ msm_vidc_adjust_gop_size, msm_vidc_set_gop_size},
|
|
|
|
|
|
{GOP_CLOSURE, ENC, H264|HEVC,
|
|
{GOP_CLOSURE, ENC, H264|HEVC,
|
|
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
@@ -390,6 +386,15 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|
V4L2_CID_MPEG_VIDEO_GOP_CLOSURE,
|
|
V4L2_CID_MPEG_VIDEO_GOP_CLOSURE,
|
|
0},
|
|
0},
|
|
|
|
|
|
|
|
+ {B_FRAME, ENC, H264|HEVC,
|
|
|
|
+ 0, 7, 1, 0,
|
|
|
|
+ V4L2_CID_MPEG_VIDEO_B_FRAMES,
|
|
|
|
+ HFI_PROP_MAX_B_FRAMES,
|
|
|
|
+ CAP_FLAG_OUTPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
|
+ {ENH_LAYER_COUNT},
|
|
|
|
+ {0},
|
|
|
|
+ msm_vidc_adjust_b_frame, msm_vidc_set_u32},
|
|
|
|
+
|
|
{BLUR_TYPES, ENC, CODECS_ALL,
|
|
{BLUR_TYPES, ENC, CODECS_ALL,
|
|
VIDC_BLUR_NONE, VIDC_BLUR_ADAPTIVE, 1, VIDC_BLUR_NONE,
|
|
VIDC_BLUR_NONE, VIDC_BLUR_ADAPTIVE, 1, VIDC_BLUR_NONE,
|
|
V4L2_CID_MPEG_VIDC_VIDEO_BLUR_TYPES,
|
|
V4L2_CID_MPEG_VIDC_VIDEO_BLUR_TYPES,
|
|
@@ -662,8 +667,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|
HFI_PROP_QP_PACKED,
|
|
HFI_PROP_QP_PACKED,
|
|
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
|
|
- // TODO: Enable while reveiwing support for layer encoding
|
|
|
|
- {HIER_CODING_TYPE, ENC, HEVC,
|
|
|
|
|
|
+ {LAYER_TYPE, ENC, HEVC,
|
|
V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B,
|
|
V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B,
|
|
V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P,
|
|
V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P,
|
|
BIT(V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B) |
|
|
BIT(V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B) |
|
|
@@ -671,12 +675,9 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|
V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P,
|
|
V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P,
|
|
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE,
|
|
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE,
|
|
HFI_PROP_LAYER_ENCODING_TYPE,
|
|
HFI_PROP_LAYER_ENCODING_TYPE,
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
|
- {0}, {0},
|
|
|
|
- NULL, NULL},
|
|
|
|
|
|
+ CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU},
|
|
|
|
|
|
- /* TODO(AS) - ctrl init failing. Need to fix
|
|
|
|
- {HIER_CODING_TYPE, ENC, H264,
|
|
|
|
|
|
+ {LAYER_TYPE, ENC, H264,
|
|
V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B,
|
|
V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B,
|
|
V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P,
|
|
V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P,
|
|
BIT(V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B) |
|
|
BIT(V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B) |
|
|
@@ -684,29 +685,32 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|
V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P,
|
|
V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P,
|
|
V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE,
|
|
V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE,
|
|
HFI_PROP_LAYER_ENCODING_TYPE,
|
|
HFI_PROP_LAYER_ENCODING_TYPE,
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU},
|
|
|
|
- */
|
|
|
|
|
|
+ CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU},
|
|
|
|
|
|
- //TODO (AS)
|
|
|
|
- {HIER_CODING, ENC, H264,
|
|
|
|
|
|
+ {LAYER_ENABLE, ENC, H264,
|
|
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING,
|
|
V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING,
|
|
HFI_PROP_LAYER_ENCODING_TYPE,
|
|
HFI_PROP_LAYER_ENCODING_TYPE,
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
|
|
+ CAP_FLAG_OUTPUT_PORT},
|
|
|
|
|
|
- // TODO: add relationship with GOP_SIZE in caps
|
|
|
|
- {HIER_CODING_LAYER, ENC, HEVC,
|
|
|
|
|
|
+ {ENH_LAYER_COUNT, ENC, HEVC,
|
|
0, 5, 1, 0,
|
|
0, 5, 1, 0,
|
|
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER,
|
|
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER,
|
|
HFI_PROP_LAYER_COUNT,
|
|
HFI_PROP_LAYER_COUNT,
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
|
|
+ CAP_FLAG_OUTPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
|
+ {BITRATE_MODE},
|
|
|
|
+ {GOP_SIZE, B_FRAME},
|
|
|
|
+ msm_vidc_adjust_layer_count, msm_vidc_set_layer_count_and_type},
|
|
|
|
|
|
- {HIER_CODING_LAYER, ENC, H264,
|
|
|
|
- 0, 6, 1, 0,
|
|
|
|
|
|
+ {ENH_LAYER_COUNT, ENC, H264,
|
|
|
|
+ 0, 5, 1, 0,
|
|
V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER,
|
|
V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER,
|
|
HFI_PROP_LAYER_COUNT,
|
|
HFI_PROP_LAYER_COUNT,
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
|
|
+ CAP_FLAG_OUTPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
|
|
|
+ {BITRATE_MODE},
|
|
|
|
+ {GOP_SIZE, B_FRAME},
|
|
|
|
+ msm_vidc_adjust_layer_count, msm_vidc_set_layer_count_and_type},
|
|
|
|
|
|
{L0_BR, ENC, HEVC,
|
|
{L0_BR, ENC, HEVC,
|
|
1, 220000000, 1, 20000000,
|
|
1, 220000000, 1, 20000000,
|