Merge "video: driver: misc video changes"
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
dc71b3eaf1
File diff suppressed because it is too large
Load Diff
@@ -141,7 +141,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
*/
|
*/
|
||||||
MSM_VIDC_FMT_NV12C,
|
MSM_VIDC_FMT_NV12C,
|
||||||
0, 0,
|
0, 0,
|
||||||
CAP_FLAG_ROOT,
|
0,
|
||||||
{0},
|
{0},
|
||||||
{META_ROI_INFO}},
|
{META_ROI_INFO}},
|
||||||
{PIX_FMTS, ENC, HEVC,
|
{PIX_FMTS, ENC, HEVC,
|
||||||
@@ -155,7 +155,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
*/
|
*/
|
||||||
MSM_VIDC_FMT_NV12C,
|
MSM_VIDC_FMT_NV12C,
|
||||||
0, 0,
|
0, 0,
|
||||||
CAP_FLAG_ROOT,
|
0,
|
||||||
{0},
|
{0},
|
||||||
{/* Do not change order of META_ROI_INFO, MIN_QUALITY, BLUR_TYPES
|
{/* Do not change order of META_ROI_INFO, MIN_QUALITY, BLUR_TYPES
|
||||||
* Since parent -> children relationship for these cap_ids is
|
* Since parent -> children relationship for these cap_ids is
|
||||||
@@ -172,7 +172,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
MSM_VIDC_FMT_P010 | MSM_VIDC_FMT_TP10C,
|
MSM_VIDC_FMT_P010 | MSM_VIDC_FMT_TP10C,
|
||||||
MSM_VIDC_FMT_NV12C,
|
MSM_VIDC_FMT_NV12C,
|
||||||
0, 0,
|
0, 0,
|
||||||
CAP_FLAG_ROOT,
|
0,
|
||||||
{0},
|
{0},
|
||||||
{PROFILE}},
|
{PROFILE}},
|
||||||
|
|
||||||
@@ -202,7 +202,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
0, 64, 1, 4,
|
0, 64, 1, 4,
|
||||||
V4L2_CID_MIN_BUFFERS_FOR_CAPTURE,
|
V4L2_CID_MIN_BUFFERS_FOR_CAPTURE,
|
||||||
HFI_PROP_BUFFER_FW_MIN_OUTPUT_COUNT,
|
HFI_PROP_BUFFER_FW_MIN_OUTPUT_COUNT,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
CAP_FLAG_OUTPUT_PORT},
|
||||||
|
|
||||||
/* (8192 * 4320) / 256 */
|
/* (8192 * 4320) / 256 */
|
||||||
{MBPF, ENC, CODECS_ALL, 64, 138240, 1, 138240},
|
{MBPF, ENC, CODECS_ALL, 64, 138240, 1, 138240},
|
||||||
@@ -231,7 +231,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
1, (DEFAULT_FPS << 16),
|
1, (DEFAULT_FPS << 16),
|
||||||
0,
|
0,
|
||||||
HFI_PROP_FRAME_RATE,
|
HFI_PROP_FRAME_RATE,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_q16},
|
NULL, msm_vidc_set_q16},
|
||||||
|
|
||||||
@@ -279,7 +279,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||||
V4L2_CID_HFLIP,
|
V4L2_CID_HFLIP,
|
||||||
HFI_PROP_FLIP,
|
HFI_PROP_FLIP,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT |
|
CAP_FLAG_OUTPUT_PORT |
|
||||||
CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
@@ -301,7 +301,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
0, 270, 90, 0,
|
0, 270, 90, 0,
|
||||||
V4L2_CID_ROTATE,
|
V4L2_CID_ROTATE,
|
||||||
HFI_PROP_ROTATION,
|
HFI_PROP_ROTATION,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_rotation},
|
NULL, msm_vidc_set_rotation},
|
||||||
@@ -324,7 +324,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE,
|
V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE,
|
||||||
V4L2_CID_MPEG_VIDEO_HEADER_MODE,
|
V4L2_CID_MPEG_VIDEO_HEADER_MODE,
|
||||||
HFI_PROP_SEQ_HEADER_MODE,
|
HFI_PROP_SEQ_HEADER_MODE,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_header_mode},
|
NULL, msm_vidc_set_header_mode},
|
||||||
|
|
||||||
@@ -346,7 +346,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||||
V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE,
|
V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE,
|
||||||
HFI_PROP_NAL_LENGTH_FIELD,
|
HFI_PROP_NAL_LENGTH_FIELD,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_nal_length},
|
NULL, msm_vidc_set_nal_length},
|
||||||
|
|
||||||
@@ -397,7 +397,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
||||||
V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
||||||
HFI_PROP_RATE_CONTROL,
|
HFI_PROP_RATE_CONTROL,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
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,
|
||||||
P_FRAME_QP, B_FRAME_QP, ENH_LAYER_COUNT, BIT_RATE,
|
P_FRAME_QP, B_FRAME_QP, ENH_LAYER_COUNT, BIT_RATE,
|
||||||
@@ -415,7 +415,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
||||||
V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
||||||
HFI_PROP_RATE_CONTROL,
|
HFI_PROP_RATE_CONTROL,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
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,
|
||||||
P_FRAME_QP, B_FRAME_QP, CONSTANT_QUALITY, ENH_LAYER_COUNT,
|
P_FRAME_QP, B_FRAME_QP, CONSTANT_QUALITY, ENH_LAYER_COUNT,
|
||||||
@@ -512,7 +512,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||||
V4L2_CID_MPEG_VIDC_VIDEO_VPE_CSC_CUSTOM_MATRIX,
|
V4L2_CID_MPEG_VIDC_VIDEO_VPE_CSC_CUSTOM_MATRIX,
|
||||||
HFI_PROP_CSC_MATRIX,
|
HFI_PROP_CSC_MATRIX,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_csc_custom_matrix},
|
NULL, msm_vidc_set_csc_custom_matrix},
|
||||||
|
|
||||||
@@ -565,7 +565,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
0, MAX_BASE_LAYER_PRIORITY_ID, 1, 0,
|
0, MAX_BASE_LAYER_PRIORITY_ID, 1, 0,
|
||||||
V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID,
|
V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID,
|
||||||
HFI_PROP_BASELAYER_PRIORITYID,
|
HFI_PROP_BASELAYER_PRIORITYID,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
CAP_FLAG_OUTPUT_PORT},
|
||||||
|
|
||||||
{IR_RANDOM, ENC, H264|HEVC,
|
{IR_RANDOM, ENC, H264|HEVC,
|
||||||
0, INT_MAX, 1, 0,
|
0, INT_MAX, 1, 0,
|
||||||
@@ -581,7 +581,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||||
V4L2_CID_MPEG_VIDEO_AU_DELIMITER,
|
V4L2_CID_MPEG_VIDEO_AU_DELIMITER,
|
||||||
HFI_PROP_AUD,
|
HFI_PROP_AUD,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_u32},
|
NULL, msm_vidc_set_u32},
|
||||||
|
|
||||||
@@ -661,7 +661,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
||||||
V4L2_CID_MPEG_VIDEO_H264_MIN_QP,
|
V4L2_CID_MPEG_VIDEO_H264_MIN_QP,
|
||||||
HFI_PROP_MIN_QP_PACKED,
|
HFI_PROP_MIN_QP_PACKED,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_min_qp},
|
NULL, msm_vidc_set_min_qp},
|
||||||
|
|
||||||
@@ -701,7 +701,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
MIN_QP_8BIT, MAX_QP, 1, MAX_QP,
|
MIN_QP_8BIT, MAX_QP, 1, MAX_QP,
|
||||||
V4L2_CID_MPEG_VIDEO_H264_MAX_QP,
|
V4L2_CID_MPEG_VIDEO_H264_MAX_QP,
|
||||||
HFI_PROP_MAX_QP_PACKED,
|
HFI_PROP_MAX_QP_PACKED,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_max_qp},
|
NULL, msm_vidc_set_max_qp},
|
||||||
|
|
||||||
@@ -1001,7 +1001,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
|
V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
|
||||||
V4L2_CID_MPEG_VIDEO_H264_PROFILE,
|
V4L2_CID_MPEG_VIDEO_H264_PROFILE,
|
||||||
HFI_PROP_PROFILE,
|
HFI_PROP_PROFILE,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{ENTROPY_MODE, TRANSFORM_8X8},
|
{ENTROPY_MODE, TRANSFORM_8X8},
|
||||||
NULL, msm_vidc_set_u32_enum},
|
NULL, msm_vidc_set_u32_enum},
|
||||||
@@ -1017,7 +1017,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
|
V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
|
||||||
V4L2_CID_MPEG_VIDEO_H264_PROFILE,
|
V4L2_CID_MPEG_VIDEO_H264_PROFILE,
|
||||||
HFI_PROP_PROFILE,
|
HFI_PROP_PROFILE,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{ENTROPY_MODE},
|
{ENTROPY_MODE},
|
||||||
NULL, msm_vidc_set_u32_enum},
|
NULL, msm_vidc_set_u32_enum},
|
||||||
@@ -1045,7 +1045,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
V4L2_MPEG_VIDEO_VP9_PROFILE_0,
|
V4L2_MPEG_VIDEO_VP9_PROFILE_0,
|
||||||
V4L2_CID_MPEG_VIDEO_VP9_PROFILE,
|
V4L2_CID_MPEG_VIDEO_VP9_PROFILE,
|
||||||
HFI_PROP_PROFILE,
|
HFI_PROP_PROFILE,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_u32_enum},
|
NULL, msm_vidc_set_u32_enum},
|
||||||
@@ -1068,7 +1068,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
V4L2_MPEG_VIDEO_VP9_LEVEL_6_0,
|
V4L2_MPEG_VIDEO_VP9_LEVEL_6_0,
|
||||||
V4L2_CID_MPEG_VIDEO_VP9_LEVEL,
|
V4L2_CID_MPEG_VIDEO_VP9_LEVEL,
|
||||||
HFI_PROP_LEVEL,
|
HFI_PROP_LEVEL,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_u32_enum},
|
NULL, msm_vidc_set_u32_enum},
|
||||||
@@ -1080,7 +1080,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
V4L2_MPEG_VIDEO_AV1_PROFILE_MAIN,
|
V4L2_MPEG_VIDEO_AV1_PROFILE_MAIN,
|
||||||
V4L2_CID_MPEG_VIDEO_AV1_PROFILE,
|
V4L2_CID_MPEG_VIDEO_AV1_PROFILE,
|
||||||
HFI_PROP_PROFILE,
|
HFI_PROP_PROFILE,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_u32_enum},
|
NULL, msm_vidc_set_u32_enum},
|
||||||
@@ -1109,7 +1109,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
V4L2_MPEG_VIDEO_AV1_LEVEL_6_1,
|
V4L2_MPEG_VIDEO_AV1_LEVEL_6_1,
|
||||||
V4L2_CID_MPEG_VIDEO_AV1_LEVEL,
|
V4L2_CID_MPEG_VIDEO_AV1_LEVEL,
|
||||||
HFI_PROP_LEVEL,
|
HFI_PROP_LEVEL,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_u32_enum},
|
NULL, msm_vidc_set_u32_enum},
|
||||||
@@ -1122,7 +1122,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
V4L2_MPEG_VIDEO_AV1_TIER_HIGH,
|
V4L2_MPEG_VIDEO_AV1_TIER_HIGH,
|
||||||
V4L2_CID_MPEG_VIDEO_AV1_TIER,
|
V4L2_CID_MPEG_VIDEO_AV1_TIER,
|
||||||
HFI_PROP_TIER,
|
HFI_PROP_TIER,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_u32_enum},
|
NULL, msm_vidc_set_u32_enum},
|
||||||
@@ -1152,7 +1152,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
V4L2_MPEG_VIDEO_H264_LEVEL_6_1,
|
V4L2_MPEG_VIDEO_H264_LEVEL_6_1,
|
||||||
V4L2_CID_MPEG_VIDEO_H264_LEVEL,
|
V4L2_CID_MPEG_VIDEO_H264_LEVEL,
|
||||||
HFI_PROP_LEVEL,
|
HFI_PROP_LEVEL,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_u32_enum},
|
NULL, msm_vidc_set_u32_enum},
|
||||||
@@ -1181,7 +1181,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
V4L2_MPEG_VIDEO_H264_LEVEL_5_0,
|
V4L2_MPEG_VIDEO_H264_LEVEL_5_0,
|
||||||
V4L2_CID_MPEG_VIDEO_H264_LEVEL,
|
V4L2_CID_MPEG_VIDEO_H264_LEVEL,
|
||||||
HFI_PROP_LEVEL,
|
HFI_PROP_LEVEL,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_level},
|
NULL, msm_vidc_set_level},
|
||||||
@@ -1204,7 +1204,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1,
|
V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1,
|
||||||
V4L2_CID_MPEG_VIDEO_HEVC_LEVEL,
|
V4L2_CID_MPEG_VIDEO_HEVC_LEVEL,
|
||||||
HFI_PROP_LEVEL,
|
HFI_PROP_LEVEL,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_u32_enum},
|
NULL, msm_vidc_set_u32_enum},
|
||||||
@@ -1226,7 +1226,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_5,
|
V4L2_MPEG_VIDEO_HEVC_LEVEL_5,
|
||||||
V4L2_CID_MPEG_VIDEO_HEVC_LEVEL,
|
V4L2_CID_MPEG_VIDEO_HEVC_LEVEL,
|
||||||
HFI_PROP_LEVEL,
|
HFI_PROP_LEVEL,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_level},
|
NULL, msm_vidc_set_level},
|
||||||
@@ -1243,7 +1243,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
V4L2_MPEG_VIDEO_HEVC_TIER_HIGH,
|
V4L2_MPEG_VIDEO_HEVC_TIER_HIGH,
|
||||||
V4L2_CID_MPEG_VIDEO_HEVC_TIER,
|
V4L2_CID_MPEG_VIDEO_HEVC_TIER,
|
||||||
HFI_PROP_TIER,
|
HFI_PROP_TIER,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_u32_enum},
|
NULL, msm_vidc_set_u32_enum},
|
||||||
@@ -1257,7 +1257,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED,
|
V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED,
|
||||||
V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE,
|
V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE,
|
||||||
HFI_PROP_DEBLOCKING_MODE,
|
HFI_PROP_DEBLOCKING_MODE,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_deblock_mode},
|
NULL, msm_vidc_set_deblock_mode},
|
||||||
|
|
||||||
@@ -1270,7 +1270,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED,
|
V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED,
|
||||||
V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE,
|
V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE,
|
||||||
HFI_PROP_DEBLOCKING_MODE,
|
HFI_PROP_DEBLOCKING_MODE,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_deblock_mode},
|
NULL, msm_vidc_set_deblock_mode},
|
||||||
|
|
||||||
@@ -1322,7 +1322,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
||||||
V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE,
|
V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE,
|
||||||
0,
|
0,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
CAP_FLAG_OUTPUT_PORT},
|
||||||
|
|
||||||
{TRANSFORM_8X8, ENC, H264,
|
{TRANSFORM_8X8, ENC, H264,
|
||||||
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
||||||
@@ -1338,7 +1338,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
1, MAX_CHROMA_QP_OFFSET,
|
1, MAX_CHROMA_QP_OFFSET,
|
||||||
V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET,
|
V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET,
|
||||||
HFI_PROP_CHROMA_QP_OFFSET,
|
HFI_PROP_CHROMA_QP_OFFSET,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
msm_vidc_adjust_chroma_qp_index_offset,
|
msm_vidc_adjust_chroma_qp_index_offset,
|
||||||
msm_vidc_set_chroma_qp_index_offset},
|
msm_vidc_set_chroma_qp_index_offset},
|
||||||
@@ -1348,26 +1348,26 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||||
V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE,
|
V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE,
|
||||||
HFI_PROP_DECODE_ORDER_OUTPUT,
|
HFI_PROP_DECODE_ORDER_OUTPUT,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_INPUT_PORT},
|
CAP_FLAG_INPUT_PORT},
|
||||||
|
|
||||||
{DISPLAY_DELAY, DEC, H264|HEVC|VP9|AV1,
|
{DISPLAY_DELAY, DEC, H264|HEVC|VP9|AV1,
|
||||||
0, 1, 1, 0,
|
0, 1, 1, 0,
|
||||||
V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY,
|
V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY,
|
||||||
HFI_PROP_DECODE_ORDER_OUTPUT,
|
HFI_PROP_DECODE_ORDER_OUTPUT,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_INPUT_PORT},
|
CAP_FLAG_INPUT_PORT},
|
||||||
|
|
||||||
/* conceal color */
|
/* conceal color */
|
||||||
{CONCEAL_COLOR_8BIT, DEC, CODECS_ALL, 0x0, 0xff3fcff, 1,
|
{CONCEAL_COLOR_8BIT, DEC, CODECS_ALL, 0x0, 0xff3fcff, 1,
|
||||||
DEFAULT_VIDEO_CONCEAL_COLOR_BLACK,
|
DEFAULT_VIDEO_CONCEAL_COLOR_BLACK,
|
||||||
V4L2_CID_MPEG_VIDEO_MUTE_YUV,
|
V4L2_CID_MPEG_VIDEO_MUTE_YUV,
|
||||||
HFI_PROP_CONCEAL_COLOR_8BIT,
|
HFI_PROP_CONCEAL_COLOR_8BIT,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
CAP_FLAG_OUTPUT_PORT},
|
||||||
|
|
||||||
{CONCEAL_COLOR_10BIT, DEC, CODECS_ALL, 0x0, 0x3fffffff, 1,
|
{CONCEAL_COLOR_10BIT, DEC, CODECS_ALL, 0x0, 0x3fffffff, 1,
|
||||||
DEFAULT_VIDEO_CONCEAL_COLOR_BLACK,
|
DEFAULT_VIDEO_CONCEAL_COLOR_BLACK,
|
||||||
V4L2_CID_MPEG_VIDEO_MUTE_YUV,
|
V4L2_CID_MPEG_VIDEO_MUTE_YUV,
|
||||||
HFI_PROP_CONCEAL_COLOR_10BIT,
|
HFI_PROP_CONCEAL_COLOR_10BIT,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
CAP_FLAG_OUTPUT_PORT},
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
{STAGE, DEC|ENC, CODECS_ALL,
|
{STAGE, DEC|ENC, CODECS_ALL,
|
||||||
@@ -1376,7 +1376,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
MSM_VIDC_STAGE_2,
|
MSM_VIDC_STAGE_2,
|
||||||
0,
|
0,
|
||||||
HFI_PROP_STAGE,
|
HFI_PROP_STAGE,
|
||||||
CAP_FLAG_ROOT,
|
0,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_stage},
|
NULL, msm_vidc_set_stage},
|
||||||
|
|
||||||
@@ -1396,7 +1396,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
MSM_VIDC_PIPE_4,
|
MSM_VIDC_PIPE_4,
|
||||||
0,
|
0,
|
||||||
HFI_PROP_PIPE,
|
HFI_PROP_PIPE,
|
||||||
CAP_FLAG_ROOT,
|
0,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_pipe},
|
NULL, msm_vidc_set_pipe},
|
||||||
{POC, DEC, H264, 0, 18, 1, 1},
|
{POC, DEC, H264, 0, 18, 1, 1},
|
||||||
@@ -1454,7 +1454,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
0, 2, 1, 1,
|
0, 2, 1, 1,
|
||||||
V4L2_CID_MPEG_VIDC_PRIORITY,
|
V4L2_CID_MPEG_VIDC_PRIORITY,
|
||||||
HFI_PROP_SESSION_PRIORITY,
|
HFI_PROP_SESSION_PRIORITY,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_DYNAMIC_ALLOWED,
|
CAP_FLAG_DYNAMIC_ALLOWED,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
msm_vidc_adjust_session_priority, msm_vidc_set_session_priority},
|
msm_vidc_adjust_session_priority, msm_vidc_set_session_priority},
|
||||||
|
|
||||||
@@ -1590,7 +1590,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||||
V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS,
|
V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS,
|
||||||
HFI_PROP_EVA_STAT_INFO,
|
HFI_PROP_EVA_STAT_INFO,
|
||||||
CAP_FLAG_ROOT,
|
0,
|
||||||
{0},
|
{0},
|
||||||
{ENH_LAYER_COUNT}},
|
{ENH_LAYER_COUNT}},
|
||||||
|
|
||||||
@@ -1666,7 +1666,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
V4L2_MPEG_VIDEO_BITRATE_MODE_CQ,
|
V4L2_MPEG_VIDEO_BITRATE_MODE_CQ,
|
||||||
V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
||||||
HFI_PROP_RATE_CONTROL,
|
HFI_PROP_RATE_CONTROL,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{TIME_DELTA_BASED_RC, CONSTANT_QUALITY},
|
{TIME_DELTA_BASED_RC, CONSTANT_QUALITY},
|
||||||
msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
||||||
@@ -1675,7 +1675,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||||
V4L2_CID_MPEG_VIDC_TIME_DELTA_BASED_RC,
|
V4L2_CID_MPEG_VIDC_TIME_DELTA_BASED_RC,
|
||||||
HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL,
|
HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{BITRATE_MODE}, {0},
|
{BITRATE_MODE}, {0},
|
||||||
msm_vidc_adjust_delta_based_rc, msm_vidc_set_u32},
|
msm_vidc_adjust_delta_based_rc, msm_vidc_set_u32},
|
||||||
{CONSTANT_QUALITY, ENC, HEIC,
|
{CONSTANT_QUALITY, ENC, HEIC,
|
||||||
@@ -1691,14 +1691,14 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
||||||
0,
|
0,
|
||||||
HFI_PROP_HEIC_GRID_ENABLE,
|
HFI_PROP_HEIC_GRID_ENABLE,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_u32},
|
NULL, msm_vidc_set_u32},
|
||||||
{GOP_SIZE, ENC, HEIC,
|
{GOP_SIZE, ENC, HEIC,
|
||||||
0, INT_MAX, 1, 0 /* all intra */,
|
0, INT_MAX, 1, 0 /* all intra */,
|
||||||
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_OUTPUT_PORT |
|
||||||
CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_u32},
|
NULL, msm_vidc_set_u32},
|
||||||
@@ -1707,7 +1707,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||||
V4L2_CID_MPEG_VIDEO_B_FRAMES,
|
V4L2_CID_MPEG_VIDEO_B_FRAMES,
|
||||||
HFI_PROP_MAX_B_FRAMES,
|
HFI_PROP_MAX_B_FRAMES,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_u32},
|
NULL, msm_vidc_set_u32},
|
||||||
{PIX_FMTS, ENC, HEIC,
|
{PIX_FMTS, ENC, HEIC,
|
||||||
@@ -1716,7 +1716,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_P010,
|
MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_P010,
|
||||||
MSM_VIDC_FMT_NV12,
|
MSM_VIDC_FMT_NV12,
|
||||||
0, 0,
|
0, 0,
|
||||||
CAP_FLAG_ROOT,
|
0,
|
||||||
{0},
|
{0},
|
||||||
{PROFILE}},
|
{PROFILE}},
|
||||||
{HEVC_TIER, ENC|DEC, HEIC,
|
{HEVC_TIER, ENC|DEC, HEIC,
|
||||||
@@ -1726,7 +1726,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
|
V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
|
||||||
V4L2_CID_MPEG_VIDEO_HEVC_TIER,
|
V4L2_CID_MPEG_VIDEO_HEVC_TIER,
|
||||||
HFI_PROP_TIER,
|
HFI_PROP_TIER,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_u32_enum},
|
NULL, msm_vidc_set_u32_enum},
|
||||||
@@ -1735,7 +1735,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = {
|
|||||||
1, (MINIMUM_FPS << 16),
|
1, (MINIMUM_FPS << 16),
|
||||||
0,
|
0,
|
||||||
HFI_PROP_FRAME_RATE,
|
HFI_PROP_FRAME_RATE,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_q16},
|
NULL, msm_vidc_set_q16},
|
||||||
{META_SUBFRAME_OUTPUT, ENC, HEIC,
|
{META_SUBFRAME_OUTPUT, ENC, HEIC,
|
||||||
|
@@ -138,7 +138,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
*/
|
*/
|
||||||
MSM_VIDC_FMT_NV12C,
|
MSM_VIDC_FMT_NV12C,
|
||||||
0, 0,
|
0, 0,
|
||||||
CAP_FLAG_ROOT,
|
0,
|
||||||
{0},
|
{0},
|
||||||
{META_ROI_INFO}},
|
{META_ROI_INFO}},
|
||||||
{PIX_FMTS, ENC, HEVC,
|
{PIX_FMTS, ENC, HEVC,
|
||||||
@@ -152,7 +152,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
*/
|
*/
|
||||||
MSM_VIDC_FMT_NV12C,
|
MSM_VIDC_FMT_NV12C,
|
||||||
0, 0,
|
0, 0,
|
||||||
CAP_FLAG_ROOT,
|
0,
|
||||||
{0},
|
{0},
|
||||||
{/* Do not change order of META_ROI_INFO, MIN_QUALITY, BLUR_TYPES
|
{/* Do not change order of META_ROI_INFO, MIN_QUALITY, BLUR_TYPES
|
||||||
* Since parent -> children relationship for these cap_ids is
|
* Since parent -> children relationship for these cap_ids is
|
||||||
@@ -169,7 +169,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
MSM_VIDC_FMT_P010 | MSM_VIDC_FMT_TP10C,
|
MSM_VIDC_FMT_P010 | MSM_VIDC_FMT_TP10C,
|
||||||
MSM_VIDC_FMT_NV12C,
|
MSM_VIDC_FMT_NV12C,
|
||||||
0, 0,
|
0, 0,
|
||||||
CAP_FLAG_ROOT,
|
0,
|
||||||
{0},
|
{0},
|
||||||
{PROFILE}},
|
{PROFILE}},
|
||||||
|
|
||||||
@@ -192,7 +192,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
0, 64, 1, 4,
|
0, 64, 1, 4,
|
||||||
V4L2_CID_MIN_BUFFERS_FOR_CAPTURE,
|
V4L2_CID_MIN_BUFFERS_FOR_CAPTURE,
|
||||||
HFI_PROP_BUFFER_FW_MIN_OUTPUT_COUNT,
|
HFI_PROP_BUFFER_FW_MIN_OUTPUT_COUNT,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
CAP_FLAG_OUTPUT_PORT},
|
||||||
|
|
||||||
/* (8192 * 4320) / 256 */
|
/* (8192 * 4320) / 256 */
|
||||||
{MBPF, ENC, CODECS_ALL, 64, 138240, 1, 138240},
|
{MBPF, ENC, CODECS_ALL, 64, 138240, 1, 138240},
|
||||||
@@ -221,7 +221,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
1, (DEFAULT_FPS << 16),
|
1, (DEFAULT_FPS << 16),
|
||||||
0,
|
0,
|
||||||
HFI_PROP_FRAME_RATE,
|
HFI_PROP_FRAME_RATE,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_q16},
|
NULL, msm_vidc_set_q16},
|
||||||
|
|
||||||
@@ -274,7 +274,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||||
V4L2_CID_HFLIP,
|
V4L2_CID_HFLIP,
|
||||||
HFI_PROP_FLIP,
|
HFI_PROP_FLIP,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT |
|
CAP_FLAG_OUTPUT_PORT |
|
||||||
CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
@@ -296,7 +296,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
0, 270, 90, 0,
|
0, 270, 90, 0,
|
||||||
V4L2_CID_ROTATE,
|
V4L2_CID_ROTATE,
|
||||||
HFI_PROP_ROTATION,
|
HFI_PROP_ROTATION,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_rotation},
|
NULL, msm_vidc_set_rotation},
|
||||||
@@ -319,7 +319,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE,
|
V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE,
|
||||||
V4L2_CID_MPEG_VIDEO_HEADER_MODE,
|
V4L2_CID_MPEG_VIDEO_HEADER_MODE,
|
||||||
HFI_PROP_SEQ_HEADER_MODE,
|
HFI_PROP_SEQ_HEADER_MODE,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_header_mode},
|
NULL, msm_vidc_set_header_mode},
|
||||||
|
|
||||||
@@ -341,7 +341,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||||
V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE,
|
V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE,
|
||||||
HFI_PROP_NAL_LENGTH_FIELD,
|
HFI_PROP_NAL_LENGTH_FIELD,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_nal_length},
|
NULL, msm_vidc_set_nal_length},
|
||||||
|
|
||||||
@@ -386,7 +386,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
||||||
V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
||||||
HFI_PROP_RATE_CONTROL,
|
HFI_PROP_RATE_CONTROL,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
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,
|
||||||
P_FRAME_QP, B_FRAME_QP, ENH_LAYER_COUNT, BIT_RATE,
|
P_FRAME_QP, B_FRAME_QP, ENH_LAYER_COUNT, BIT_RATE,
|
||||||
@@ -404,7 +404,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
||||||
V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
||||||
HFI_PROP_RATE_CONTROL,
|
HFI_PROP_RATE_CONTROL,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
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,
|
||||||
P_FRAME_QP, B_FRAME_QP, CONSTANT_QUALITY, ENH_LAYER_COUNT,
|
P_FRAME_QP, B_FRAME_QP, CONSTANT_QUALITY, ENH_LAYER_COUNT,
|
||||||
@@ -500,7 +500,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||||
V4L2_CID_MPEG_VIDC_VIDEO_VPE_CSC_CUSTOM_MATRIX,
|
V4L2_CID_MPEG_VIDC_VIDEO_VPE_CSC_CUSTOM_MATRIX,
|
||||||
HFI_PROP_CSC_MATRIX,
|
HFI_PROP_CSC_MATRIX,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_csc_custom_matrix},
|
NULL, msm_vidc_set_csc_custom_matrix},
|
||||||
|
|
||||||
@@ -553,7 +553,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
0, MAX_BASE_LAYER_PRIORITY_ID, 1, 0,
|
0, MAX_BASE_LAYER_PRIORITY_ID, 1, 0,
|
||||||
V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID,
|
V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID,
|
||||||
HFI_PROP_BASELAYER_PRIORITYID,
|
HFI_PROP_BASELAYER_PRIORITYID,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
CAP_FLAG_OUTPUT_PORT},
|
||||||
|
|
||||||
{IR_RANDOM, ENC, H264|HEVC,
|
{IR_RANDOM, ENC, H264|HEVC,
|
||||||
0, INT_MAX, 1, 0,
|
0, INT_MAX, 1, 0,
|
||||||
@@ -569,7 +569,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||||
V4L2_CID_MPEG_VIDEO_AU_DELIMITER,
|
V4L2_CID_MPEG_VIDEO_AU_DELIMITER,
|
||||||
HFI_PROP_AUD,
|
HFI_PROP_AUD,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_u32},
|
NULL, msm_vidc_set_u32},
|
||||||
|
|
||||||
@@ -649,7 +649,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
||||||
V4L2_CID_MPEG_VIDEO_H264_MIN_QP,
|
V4L2_CID_MPEG_VIDEO_H264_MIN_QP,
|
||||||
HFI_PROP_MIN_QP_PACKED,
|
HFI_PROP_MIN_QP_PACKED,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_min_qp},
|
NULL, msm_vidc_set_min_qp},
|
||||||
|
|
||||||
@@ -689,7 +689,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
MIN_QP_8BIT, MAX_QP, 1, MAX_QP,
|
MIN_QP_8BIT, MAX_QP, 1, MAX_QP,
|
||||||
V4L2_CID_MPEG_VIDEO_H264_MAX_QP,
|
V4L2_CID_MPEG_VIDEO_H264_MAX_QP,
|
||||||
HFI_PROP_MAX_QP_PACKED,
|
HFI_PROP_MAX_QP_PACKED,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_max_qp},
|
NULL, msm_vidc_set_max_qp},
|
||||||
|
|
||||||
@@ -984,7 +984,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
|
V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
|
||||||
V4L2_CID_MPEG_VIDEO_H264_PROFILE,
|
V4L2_CID_MPEG_VIDEO_H264_PROFILE,
|
||||||
HFI_PROP_PROFILE,
|
HFI_PROP_PROFILE,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{ENTROPY_MODE, TRANSFORM_8X8},
|
{ENTROPY_MODE, TRANSFORM_8X8},
|
||||||
NULL, msm_vidc_set_u32_enum},
|
NULL, msm_vidc_set_u32_enum},
|
||||||
@@ -1000,7 +1000,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
|
V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
|
||||||
V4L2_CID_MPEG_VIDEO_H264_PROFILE,
|
V4L2_CID_MPEG_VIDEO_H264_PROFILE,
|
||||||
HFI_PROP_PROFILE,
|
HFI_PROP_PROFILE,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{ENTROPY_MODE},
|
{ENTROPY_MODE},
|
||||||
NULL, msm_vidc_set_u32_enum},
|
NULL, msm_vidc_set_u32_enum},
|
||||||
@@ -1028,7 +1028,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
V4L2_MPEG_VIDEO_VP9_PROFILE_0,
|
V4L2_MPEG_VIDEO_VP9_PROFILE_0,
|
||||||
V4L2_CID_MPEG_VIDEO_VP9_PROFILE,
|
V4L2_CID_MPEG_VIDEO_VP9_PROFILE,
|
||||||
HFI_PROP_PROFILE,
|
HFI_PROP_PROFILE,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_u32_enum},
|
NULL, msm_vidc_set_u32_enum},
|
||||||
@@ -1051,7 +1051,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
V4L2_MPEG_VIDEO_VP9_LEVEL_6_0,
|
V4L2_MPEG_VIDEO_VP9_LEVEL_6_0,
|
||||||
V4L2_CID_MPEG_VIDEO_VP9_LEVEL,
|
V4L2_CID_MPEG_VIDEO_VP9_LEVEL,
|
||||||
HFI_PROP_LEVEL,
|
HFI_PROP_LEVEL,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_u32_enum},
|
NULL, msm_vidc_set_u32_enum},
|
||||||
@@ -1081,7 +1081,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
V4L2_MPEG_VIDEO_H264_LEVEL_6_1,
|
V4L2_MPEG_VIDEO_H264_LEVEL_6_1,
|
||||||
V4L2_CID_MPEG_VIDEO_H264_LEVEL,
|
V4L2_CID_MPEG_VIDEO_H264_LEVEL,
|
||||||
HFI_PROP_LEVEL,
|
HFI_PROP_LEVEL,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_u32_enum},
|
NULL, msm_vidc_set_u32_enum},
|
||||||
@@ -1110,7 +1110,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
V4L2_MPEG_VIDEO_H264_LEVEL_5_0,
|
V4L2_MPEG_VIDEO_H264_LEVEL_5_0,
|
||||||
V4L2_CID_MPEG_VIDEO_H264_LEVEL,
|
V4L2_CID_MPEG_VIDEO_H264_LEVEL,
|
||||||
HFI_PROP_LEVEL,
|
HFI_PROP_LEVEL,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_level},
|
NULL, msm_vidc_set_level},
|
||||||
@@ -1133,7 +1133,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1,
|
V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1,
|
||||||
V4L2_CID_MPEG_VIDEO_HEVC_LEVEL,
|
V4L2_CID_MPEG_VIDEO_HEVC_LEVEL,
|
||||||
HFI_PROP_LEVEL,
|
HFI_PROP_LEVEL,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_u32_enum},
|
NULL, msm_vidc_set_u32_enum},
|
||||||
@@ -1155,7 +1155,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_5,
|
V4L2_MPEG_VIDEO_HEVC_LEVEL_5,
|
||||||
V4L2_CID_MPEG_VIDEO_HEVC_LEVEL,
|
V4L2_CID_MPEG_VIDEO_HEVC_LEVEL,
|
||||||
HFI_PROP_LEVEL,
|
HFI_PROP_LEVEL,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_level},
|
NULL, msm_vidc_set_level},
|
||||||
@@ -1172,7 +1172,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
V4L2_MPEG_VIDEO_HEVC_TIER_HIGH,
|
V4L2_MPEG_VIDEO_HEVC_TIER_HIGH,
|
||||||
V4L2_CID_MPEG_VIDEO_HEVC_TIER,
|
V4L2_CID_MPEG_VIDEO_HEVC_TIER,
|
||||||
HFI_PROP_TIER,
|
HFI_PROP_TIER,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_u32_enum},
|
NULL, msm_vidc_set_u32_enum},
|
||||||
@@ -1186,7 +1186,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED,
|
V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED,
|
||||||
V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE,
|
V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE,
|
||||||
HFI_PROP_DEBLOCKING_MODE,
|
HFI_PROP_DEBLOCKING_MODE,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_deblock_mode},
|
NULL, msm_vidc_set_deblock_mode},
|
||||||
|
|
||||||
@@ -1199,7 +1199,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED,
|
V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED,
|
||||||
V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE,
|
V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE,
|
||||||
HFI_PROP_DEBLOCKING_MODE,
|
HFI_PROP_DEBLOCKING_MODE,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_deblock_mode},
|
NULL, msm_vidc_set_deblock_mode},
|
||||||
|
|
||||||
@@ -1251,7 +1251,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
||||||
V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE,
|
V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE,
|
||||||
0,
|
0,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
CAP_FLAG_OUTPUT_PORT},
|
||||||
|
|
||||||
{TRANSFORM_8X8, ENC, H264,
|
{TRANSFORM_8X8, ENC, H264,
|
||||||
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
||||||
@@ -1267,7 +1267,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
1, MAX_CHROMA_QP_OFFSET,
|
1, MAX_CHROMA_QP_OFFSET,
|
||||||
V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET,
|
V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET,
|
||||||
HFI_PROP_CHROMA_QP_OFFSET,
|
HFI_PROP_CHROMA_QP_OFFSET,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
msm_vidc_adjust_chroma_qp_index_offset,
|
msm_vidc_adjust_chroma_qp_index_offset,
|
||||||
msm_vidc_set_chroma_qp_index_offset},
|
msm_vidc_set_chroma_qp_index_offset},
|
||||||
@@ -1277,26 +1277,26 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||||
V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE,
|
V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE,
|
||||||
HFI_PROP_DECODE_ORDER_OUTPUT,
|
HFI_PROP_DECODE_ORDER_OUTPUT,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_INPUT_PORT},
|
CAP_FLAG_INPUT_PORT},
|
||||||
|
|
||||||
{DISPLAY_DELAY, DEC, H264|HEVC|VP9,
|
{DISPLAY_DELAY, DEC, H264|HEVC|VP9,
|
||||||
0, 1, 1, 0,
|
0, 1, 1, 0,
|
||||||
V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY,
|
V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY,
|
||||||
HFI_PROP_DECODE_ORDER_OUTPUT,
|
HFI_PROP_DECODE_ORDER_OUTPUT,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_INPUT_PORT},
|
CAP_FLAG_INPUT_PORT},
|
||||||
|
|
||||||
/* conceal color */
|
/* conceal color */
|
||||||
{CONCEAL_COLOR_8BIT, DEC, CODECS_ALL, 0x0, 0xff3fcff, 1,
|
{CONCEAL_COLOR_8BIT, DEC, CODECS_ALL, 0x0, 0xff3fcff, 1,
|
||||||
DEFAULT_VIDEO_CONCEAL_COLOR_BLACK,
|
DEFAULT_VIDEO_CONCEAL_COLOR_BLACK,
|
||||||
V4L2_CID_MPEG_VIDEO_MUTE_YUV,
|
V4L2_CID_MPEG_VIDEO_MUTE_YUV,
|
||||||
HFI_PROP_CONCEAL_COLOR_8BIT,
|
HFI_PROP_CONCEAL_COLOR_8BIT,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
CAP_FLAG_OUTPUT_PORT},
|
||||||
|
|
||||||
{CONCEAL_COLOR_10BIT, DEC, CODECS_ALL, 0x0, 0x3fffffff, 1,
|
{CONCEAL_COLOR_10BIT, DEC, CODECS_ALL, 0x0, 0x3fffffff, 1,
|
||||||
DEFAULT_VIDEO_CONCEAL_COLOR_BLACK,
|
DEFAULT_VIDEO_CONCEAL_COLOR_BLACK,
|
||||||
V4L2_CID_MPEG_VIDEO_MUTE_YUV,
|
V4L2_CID_MPEG_VIDEO_MUTE_YUV,
|
||||||
HFI_PROP_CONCEAL_COLOR_10BIT,
|
HFI_PROP_CONCEAL_COLOR_10BIT,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
CAP_FLAG_OUTPUT_PORT},
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
{STAGE, DEC|ENC, CODECS_ALL,
|
{STAGE, DEC|ENC, CODECS_ALL,
|
||||||
@@ -1305,7 +1305,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
MSM_VIDC_STAGE_2,
|
MSM_VIDC_STAGE_2,
|
||||||
0,
|
0,
|
||||||
HFI_PROP_STAGE,
|
HFI_PROP_STAGE,
|
||||||
CAP_FLAG_ROOT,
|
0,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_stage},
|
NULL, msm_vidc_set_stage},
|
||||||
|
|
||||||
@@ -1325,7 +1325,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
MSM_VIDC_PIPE_4,
|
MSM_VIDC_PIPE_4,
|
||||||
0,
|
0,
|
||||||
HFI_PROP_PIPE,
|
HFI_PROP_PIPE,
|
||||||
CAP_FLAG_ROOT,
|
0,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_pipe},
|
NULL, msm_vidc_set_pipe},
|
||||||
{POC, DEC, H264, 0, 18, 1, 1},
|
{POC, DEC, H264, 0, 18, 1, 1},
|
||||||
@@ -1383,7 +1383,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
0, 2, 1, 1,
|
0, 2, 1, 1,
|
||||||
V4L2_CID_MPEG_VIDC_PRIORITY,
|
V4L2_CID_MPEG_VIDC_PRIORITY,
|
||||||
HFI_PROP_SESSION_PRIORITY,
|
HFI_PROP_SESSION_PRIORITY,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_DYNAMIC_ALLOWED,
|
CAP_FLAG_DYNAMIC_ALLOWED,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
msm_vidc_adjust_session_priority, msm_vidc_set_session_priority},
|
msm_vidc_adjust_session_priority, msm_vidc_set_session_priority},
|
||||||
|
|
||||||
@@ -1482,7 +1482,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||||
V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS,
|
V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS,
|
||||||
HFI_PROP_EVA_STAT_INFO,
|
HFI_PROP_EVA_STAT_INFO,
|
||||||
CAP_FLAG_ROOT,
|
0,
|
||||||
{0},
|
{0},
|
||||||
{ENH_LAYER_COUNT}},
|
{ENH_LAYER_COUNT}},
|
||||||
|
|
||||||
@@ -1558,7 +1558,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
V4L2_MPEG_VIDEO_BITRATE_MODE_CQ,
|
V4L2_MPEG_VIDEO_BITRATE_MODE_CQ,
|
||||||
V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
||||||
HFI_PROP_RATE_CONTROL,
|
HFI_PROP_RATE_CONTROL,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{TIME_DELTA_BASED_RC, CONSTANT_QUALITY},
|
{TIME_DELTA_BASED_RC, CONSTANT_QUALITY},
|
||||||
msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
||||||
@@ -1567,7 +1567,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||||
V4L2_CID_MPEG_VIDC_TIME_DELTA_BASED_RC,
|
V4L2_CID_MPEG_VIDC_TIME_DELTA_BASED_RC,
|
||||||
HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL,
|
HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{BITRATE_MODE}, {0},
|
{BITRATE_MODE}, {0},
|
||||||
msm_vidc_adjust_delta_based_rc, msm_vidc_set_u32},
|
msm_vidc_adjust_delta_based_rc, msm_vidc_set_u32},
|
||||||
{CONSTANT_QUALITY, ENC, HEIC,
|
{CONSTANT_QUALITY, ENC, HEIC,
|
||||||
@@ -1583,14 +1583,14 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
||||||
0,
|
0,
|
||||||
HFI_PROP_HEIC_GRID_ENABLE,
|
HFI_PROP_HEIC_GRID_ENABLE,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_u32},
|
NULL, msm_vidc_set_u32},
|
||||||
{GOP_SIZE, ENC, HEIC,
|
{GOP_SIZE, ENC, HEIC,
|
||||||
0, INT_MAX, 1, 0 /* all intra */,
|
0, INT_MAX, 1, 0 /* all intra */,
|
||||||
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_OUTPUT_PORT |
|
||||||
CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_u32},
|
NULL, msm_vidc_set_u32},
|
||||||
@@ -1599,7 +1599,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||||
V4L2_CID_MPEG_VIDEO_B_FRAMES,
|
V4L2_CID_MPEG_VIDEO_B_FRAMES,
|
||||||
HFI_PROP_MAX_B_FRAMES,
|
HFI_PROP_MAX_B_FRAMES,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_u32},
|
NULL, msm_vidc_set_u32},
|
||||||
{PIX_FMTS, ENC, HEIC,
|
{PIX_FMTS, ENC, HEIC,
|
||||||
@@ -1608,7 +1608,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_P010,
|
MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_P010,
|
||||||
MSM_VIDC_FMT_NV12,
|
MSM_VIDC_FMT_NV12,
|
||||||
0, 0,
|
0, 0,
|
||||||
CAP_FLAG_ROOT,
|
0,
|
||||||
{0},
|
{0},
|
||||||
{PROFILE}},
|
{PROFILE}},
|
||||||
{HEVC_TIER, ENC|DEC, HEIC,
|
{HEVC_TIER, ENC|DEC, HEIC,
|
||||||
@@ -1618,7 +1618,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
|
V4L2_MPEG_VIDEO_HEVC_TIER_MAIN,
|
||||||
V4L2_CID_MPEG_VIDEO_HEVC_TIER,
|
V4L2_CID_MPEG_VIDEO_HEVC_TIER,
|
||||||
HFI_PROP_TIER,
|
HFI_PROP_TIER,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
||||||
{0},
|
{0},
|
||||||
{0},
|
{0},
|
||||||
NULL, msm_vidc_set_u32_enum},
|
NULL, msm_vidc_set_u32_enum},
|
||||||
@@ -1627,7 +1627,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|||||||
1, (MINIMUM_FPS << 16),
|
1, (MINIMUM_FPS << 16),
|
||||||
0,
|
0,
|
||||||
HFI_PROP_FRAME_RATE,
|
HFI_PROP_FRAME_RATE,
|
||||||
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
CAP_FLAG_OUTPUT_PORT,
|
||||||
{0}, {0},
|
{0}, {0},
|
||||||
NULL, msm_vidc_set_q16},
|
NULL, msm_vidc_set_q16},
|
||||||
{META_SUBFRAME_OUTPUT, ENC, HEIC,
|
{META_SUBFRAME_OUTPUT, ENC, HEIC,
|
||||||
|
@@ -252,7 +252,7 @@ static inline bool is_secure_region(enum msm_vidc_buffer_region region)
|
|||||||
region == MSM_VIDC_NON_SECURE_PIXEL);
|
region == MSM_VIDC_NON_SECURE_PIXEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *cap_name(enum msm_vidc_inst_capability_type cap);
|
const char *cap_name(enum msm_vidc_inst_capability_type cap_id);
|
||||||
const char *v4l2_pixelfmt_name(u32 pixelfmt);
|
const char *v4l2_pixelfmt_name(u32 pixelfmt);
|
||||||
const char *v4l2_type_name(u32 port);
|
const char *v4l2_type_name(u32 port);
|
||||||
void print_vidc_buffer(u32 tag, const char *tag_str, const char *str, struct msm_vidc_inst *inst,
|
void print_vidc_buffer(u32 tag, const char *tag_str, const char *str, struct msm_vidc_inst *inst,
|
||||||
|
@@ -110,8 +110,6 @@ struct msm_vidc_inst {
|
|||||||
struct v4l2_m2m_ctx *m2m_ctx;
|
struct v4l2_m2m_ctx *m2m_ctx;
|
||||||
struct v4l2_ctrl **ctrls;
|
struct v4l2_ctrl **ctrls;
|
||||||
u32 num_ctrls;
|
u32 num_ctrls;
|
||||||
struct msm_vidc_inst_cap_entry children;
|
|
||||||
struct msm_vidc_inst_cap_entry firmware;
|
|
||||||
enum hfi_rate_control hfi_rc_type;
|
enum hfi_rate_control hfi_rc_type;
|
||||||
enum hfi_layer_encoding_type hfi_layer_type;
|
enum hfi_layer_encoding_type hfi_layer_type;
|
||||||
bool request;
|
bool request;
|
||||||
@@ -143,7 +141,9 @@ struct msm_vidc_inst {
|
|||||||
struct list_head response_works; /* list of struct response_work */
|
struct list_head response_works; /* list of struct response_work */
|
||||||
struct list_head enc_input_crs;
|
struct list_head enc_input_crs;
|
||||||
struct list_head dmabuf_tracker; /* list of struct msm_memory_dmabuf */
|
struct list_head dmabuf_tracker; /* list of struct msm_memory_dmabuf */
|
||||||
struct list_head caps_list; /* list of struct msm_vidc_inst_cap_entry */
|
struct list_head caps_list;
|
||||||
|
struct list_head children_list;
|
||||||
|
struct list_head firmware_list;
|
||||||
bool once_per_session_set;
|
bool once_per_session_set;
|
||||||
bool ipsc_properties_set;
|
bool ipsc_properties_set;
|
||||||
bool opsc_properties_set;
|
bool opsc_properties_set;
|
||||||
|
@@ -352,9 +352,9 @@ enum msm_vidc_inst_capability_type {
|
|||||||
MIN_BUFFERS_INPUT,
|
MIN_BUFFERS_INPUT,
|
||||||
MIN_BUFFERS_OUTPUT,
|
MIN_BUFFERS_OUTPUT,
|
||||||
MBPF,
|
MBPF,
|
||||||
LOSSLESS_MBPF,
|
|
||||||
BATCH_MBPF,
|
BATCH_MBPF,
|
||||||
BATCH_FPS,
|
BATCH_FPS,
|
||||||
|
LOSSLESS_MBPF,
|
||||||
SECURE_MBPF,
|
SECURE_MBPF,
|
||||||
MBPS,
|
MBPS,
|
||||||
POWER_SAVE_MBPS,
|
POWER_SAVE_MBPS,
|
||||||
@@ -368,86 +368,59 @@ enum msm_vidc_inst_capability_type {
|
|||||||
MB_CYCLES_FW_VPP,
|
MB_CYCLES_FW_VPP,
|
||||||
SECURE_MODE,
|
SECURE_MODE,
|
||||||
TS_REORDER,
|
TS_REORDER,
|
||||||
|
SLICE_INTERFACE,
|
||||||
HFLIP,
|
HFLIP,
|
||||||
VFLIP,
|
VFLIP,
|
||||||
ROTATION,
|
ROTATION,
|
||||||
SUPER_FRAME,
|
SUPER_FRAME,
|
||||||
SLICE_INTERFACE,
|
|
||||||
HEADER_MODE,
|
HEADER_MODE,
|
||||||
PREPEND_SPSPPS_TO_IDR,
|
PREPEND_SPSPPS_TO_IDR,
|
||||||
META_SEQ_HDR_NAL,
|
META_SEQ_HDR_NAL,
|
||||||
WITHOUT_STARTCODE,
|
WITHOUT_STARTCODE,
|
||||||
NAL_LENGTH_FIELD,
|
NAL_LENGTH_FIELD,
|
||||||
REQUEST_I_FRAME,
|
REQUEST_I_FRAME,
|
||||||
BIT_RATE,
|
|
||||||
BITRATE_MODE,
|
BITRATE_MODE,
|
||||||
LOSSLESS,
|
LOSSLESS,
|
||||||
FRAME_SKIP_MODE,
|
FRAME_SKIP_MODE,
|
||||||
FRAME_RC_ENABLE,
|
FRAME_RC_ENABLE,
|
||||||
CONSTANT_QUALITY,
|
|
||||||
GOP_SIZE,
|
|
||||||
GOP_CLOSURE,
|
GOP_CLOSURE,
|
||||||
B_FRAME,
|
|
||||||
BLUR_TYPES,
|
|
||||||
BLUR_RESOLUTION,
|
|
||||||
CSC,
|
CSC,
|
||||||
CSC_CUSTOM_MATRIX,
|
CSC_CUSTOM_MATRIX,
|
||||||
GRID,
|
|
||||||
LOWLATENCY_MODE,
|
|
||||||
LTR_COUNT,
|
|
||||||
USE_LTR,
|
USE_LTR,
|
||||||
MARK_LTR,
|
MARK_LTR,
|
||||||
BASELAYER_PRIORITY,
|
BASELAYER_PRIORITY,
|
||||||
IR_RANDOM,
|
|
||||||
AU_DELIMITER,
|
AU_DELIMITER,
|
||||||
TIME_DELTA_BASED_RC,
|
GRID,
|
||||||
CONTENT_ADAPTIVE_CODING,
|
|
||||||
BITRATE_BOOST,
|
|
||||||
MIN_QUALITY,
|
|
||||||
VBV_DELAY,
|
|
||||||
PEAK_BITRATE,
|
|
||||||
MIN_FRAME_QP,
|
|
||||||
I_FRAME_MIN_QP,
|
I_FRAME_MIN_QP,
|
||||||
P_FRAME_MIN_QP,
|
P_FRAME_MIN_QP,
|
||||||
B_FRAME_MIN_QP,
|
B_FRAME_MIN_QP,
|
||||||
MAX_FRAME_QP,
|
|
||||||
I_FRAME_MAX_QP,
|
I_FRAME_MAX_QP,
|
||||||
P_FRAME_MAX_QP,
|
P_FRAME_MAX_QP,
|
||||||
B_FRAME_MAX_QP,
|
B_FRAME_MAX_QP,
|
||||||
I_FRAME_QP,
|
|
||||||
P_FRAME_QP,
|
|
||||||
B_FRAME_QP,
|
|
||||||
LAYER_TYPE,
|
LAYER_TYPE,
|
||||||
LAYER_ENABLE,
|
LAYER_ENABLE,
|
||||||
ENH_LAYER_COUNT,
|
|
||||||
L0_BR,
|
L0_BR,
|
||||||
L1_BR,
|
L1_BR,
|
||||||
L2_BR,
|
L2_BR,
|
||||||
L3_BR,
|
L3_BR,
|
||||||
L4_BR,
|
L4_BR,
|
||||||
L5_BR,
|
L5_BR,
|
||||||
ENTROPY_MODE,
|
|
||||||
PROFILE,
|
|
||||||
LEVEL,
|
LEVEL,
|
||||||
HEVC_TIER,
|
HEVC_TIER,
|
||||||
AV1_TIER,
|
AV1_TIER,
|
||||||
LF_MODE,
|
|
||||||
LF_ALPHA,
|
|
||||||
LF_BETA,
|
|
||||||
SLICE_MODE,
|
|
||||||
SLICE_MAX_BYTES,
|
|
||||||
SLICE_MAX_MB,
|
|
||||||
MB_RC,
|
|
||||||
TRANSFORM_8X8,
|
|
||||||
CHROMA_QP_INDEX_OFFSET,
|
|
||||||
DISPLAY_DELAY_ENABLE,
|
DISPLAY_DELAY_ENABLE,
|
||||||
DISPLAY_DELAY,
|
DISPLAY_DELAY,
|
||||||
CONCEAL_COLOR_8BIT,
|
CONCEAL_COLOR_8BIT,
|
||||||
CONCEAL_COLOR_10BIT,
|
CONCEAL_COLOR_10BIT,
|
||||||
STAGE,
|
LF_MODE,
|
||||||
|
LF_ALPHA,
|
||||||
|
LF_BETA,
|
||||||
|
SLICE_MAX_BYTES,
|
||||||
|
SLICE_MAX_MB,
|
||||||
|
MB_RC,
|
||||||
|
CHROMA_QP_INDEX_OFFSET,
|
||||||
PIPE,
|
PIPE,
|
||||||
POC,
|
POC,
|
||||||
QUALITY_MODE,
|
|
||||||
CODED_FRAMES,
|
CODED_FRAMES,
|
||||||
BIT_DEPTH,
|
BIT_DEPTH,
|
||||||
CODEC_CONFIG,
|
CODEC_CONFIG,
|
||||||
@@ -456,20 +429,20 @@ enum msm_vidc_inst_capability_type {
|
|||||||
DEFAULT_HEADER,
|
DEFAULT_HEADER,
|
||||||
RAP_FRAME,
|
RAP_FRAME,
|
||||||
SEQ_CHANGE_AT_SYNC_FRAME,
|
SEQ_CHANGE_AT_SYNC_FRAME,
|
||||||
|
QUALITY_MODE,
|
||||||
PRIORITY,
|
PRIORITY,
|
||||||
ENC_IP_CR,
|
|
||||||
DPB_LIST,
|
DPB_LIST,
|
||||||
FILM_GRAIN,
|
FILM_GRAIN,
|
||||||
SUPER_BLOCK,
|
SUPER_BLOCK,
|
||||||
DRAP,
|
DRAP,
|
||||||
ALL_INTRA,
|
|
||||||
INPUT_METADATA_FD,
|
INPUT_METADATA_FD,
|
||||||
META_BITSTREAM_RESOLUTION,
|
META_BITSTREAM_RESOLUTION,
|
||||||
META_CROP_OFFSETS,
|
META_CROP_OFFSETS,
|
||||||
META_LTR_MARK_USE,
|
|
||||||
META_DPB_MISR,
|
META_DPB_MISR,
|
||||||
META_OPB_MISR,
|
META_OPB_MISR,
|
||||||
META_INTERLACE,
|
META_INTERLACE,
|
||||||
|
ENC_IP_CR,
|
||||||
|
META_LTR_MARK_USE,
|
||||||
META_TIMESTAMP,
|
META_TIMESTAMP,
|
||||||
META_CONCEALED_MB_CNT,
|
META_CONCEALED_MB_CNT,
|
||||||
META_HIST_INFO,
|
META_HIST_INFO,
|
||||||
@@ -482,25 +455,51 @@ enum msm_vidc_inst_capability_type {
|
|||||||
META_OUTPUT_BUF_TAG,
|
META_OUTPUT_BUF_TAG,
|
||||||
META_SUBFRAME_OUTPUT,
|
META_SUBFRAME_OUTPUT,
|
||||||
META_ENC_QP_METADATA,
|
META_ENC_QP_METADATA,
|
||||||
META_ROI_INFO,
|
|
||||||
META_DEC_QP_METADATA,
|
META_DEC_QP_METADATA,
|
||||||
COMPLEXITY,
|
COMPLEXITY,
|
||||||
META_MAX_NUM_REORDER_FRAMES,
|
META_MAX_NUM_REORDER_FRAMES,
|
||||||
|
PROFILE,
|
||||||
|
MIN_FRAME_QP,
|
||||||
|
MAX_FRAME_QP,
|
||||||
|
I_FRAME_QP,
|
||||||
|
P_FRAME_QP,
|
||||||
|
B_FRAME_QP,
|
||||||
|
META_ROI_INFO,
|
||||||
|
TIME_DELTA_BASED_RC,
|
||||||
|
CONSTANT_QUALITY,
|
||||||
|
ENH_LAYER_COUNT,
|
||||||
|
BIT_RATE,
|
||||||
|
VBV_DELAY,
|
||||||
|
PEAK_BITRATE,
|
||||||
|
LOWLATENCY_MODE,
|
||||||
|
ENTROPY_MODE,
|
||||||
|
TRANSFORM_8X8,
|
||||||
|
GOP_SIZE,
|
||||||
|
B_FRAME,
|
||||||
|
BLUR_RESOLUTION,
|
||||||
|
STAGE,
|
||||||
|
ALL_INTRA,
|
||||||
|
MIN_QUALITY,
|
||||||
|
LTR_COUNT,
|
||||||
|
IR_RANDOM,
|
||||||
|
BITRATE_BOOST,
|
||||||
|
SLICE_MODE,
|
||||||
|
CONTENT_ADAPTIVE_CODING,
|
||||||
|
BLUR_TYPES,
|
||||||
INST_CAP_MAX,
|
INST_CAP_MAX,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum msm_vidc_inst_capability_flags {
|
enum msm_vidc_inst_capability_flags {
|
||||||
CAP_FLAG_NONE = 0,
|
CAP_FLAG_NONE = 0,
|
||||||
CAP_FLAG_ROOT = BIT(0),
|
CAP_FLAG_DYNAMIC_ALLOWED = BIT(0),
|
||||||
CAP_FLAG_DYNAMIC_ALLOWED = BIT(1),
|
CAP_FLAG_MENU = BIT(1),
|
||||||
CAP_FLAG_MENU = BIT(2),
|
CAP_FLAG_INPUT_PORT = BIT(2),
|
||||||
CAP_FLAG_INPUT_PORT = BIT(3),
|
CAP_FLAG_OUTPUT_PORT = BIT(3),
|
||||||
CAP_FLAG_OUTPUT_PORT = BIT(4),
|
CAP_FLAG_CLIENT_SET = BIT(4),
|
||||||
CAP_FLAG_CLIENT_SET = BIT(5),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct msm_vidc_inst_cap {
|
struct msm_vidc_inst_cap {
|
||||||
enum msm_vidc_inst_capability_type cap;
|
enum msm_vidc_inst_capability_type cap_id;
|
||||||
s32 min;
|
s32 min;
|
||||||
s32 max;
|
s32 max;
|
||||||
u32 step_or_mask;
|
u32 step_or_mask;
|
||||||
|
@@ -56,8 +56,8 @@ void msm_vidc_memory_put_dmabuf_completely(struct msm_vidc_inst *inst,
|
|||||||
struct msm_memory_dmabuf *buf);
|
struct msm_memory_dmabuf *buf);
|
||||||
int msm_memory_pools_init(struct msm_vidc_inst *inst);
|
int msm_memory_pools_init(struct msm_vidc_inst *inst);
|
||||||
void msm_memory_pools_deinit(struct msm_vidc_inst *inst);
|
void msm_memory_pools_deinit(struct msm_vidc_inst *inst);
|
||||||
void *msm_memory_alloc(struct msm_vidc_inst *inst,
|
void *msm_memory_pool_alloc(struct msm_vidc_inst *inst,
|
||||||
enum msm_memory_pool_type type);
|
enum msm_memory_pool_type type);
|
||||||
void msm_memory_free(struct msm_vidc_inst *inst, void *vidc_buf);
|
void msm_memory_pool_free(struct msm_vidc_inst *inst, void *vidc_buf);
|
||||||
|
|
||||||
#endif // _MSM_VIDC_MEMORY_H_
|
#endif // _MSM_VIDC_MEMORY_H_
|
@@ -17,7 +17,7 @@ struct msm_platform_core_capability {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct msm_platform_inst_capability {
|
struct msm_platform_inst_capability {
|
||||||
enum msm_vidc_inst_capability_type cap;
|
enum msm_vidc_inst_capability_type cap_id;
|
||||||
enum msm_vidc_domain_type domain;
|
enum msm_vidc_domain_type domain;
|
||||||
enum msm_vidc_codec_type codec;
|
enum msm_vidc_codec_type codec;
|
||||||
s32 min;
|
s32 min;
|
||||||
|
@@ -2163,7 +2163,7 @@ int msm_vdec_handle_release_buffer(struct msm_vidc_inst *inst,
|
|||||||
inst->debug_count.ebd, inst->debug_count.ftb, inst->debug_count.fbd);
|
inst->debug_count.ebd, inst->debug_count.ftb, inst->debug_count.fbd);
|
||||||
/* delete the buffer from release list */
|
/* delete the buffer from release list */
|
||||||
list_del(&buf->list);
|
list_del(&buf->list);
|
||||||
msm_memory_free(inst, buf);
|
msm_memory_pool_free(inst, buf);
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
@@ -942,8 +942,8 @@ void *msm_vidc_open(void *vidc_core, u32 session_type)
|
|||||||
INIT_LIST_HEAD(&inst->mappings.dpb.list);
|
INIT_LIST_HEAD(&inst->mappings.dpb.list);
|
||||||
INIT_LIST_HEAD(&inst->mappings.persist.list);
|
INIT_LIST_HEAD(&inst->mappings.persist.list);
|
||||||
INIT_LIST_HEAD(&inst->mappings.vpss.list);
|
INIT_LIST_HEAD(&inst->mappings.vpss.list);
|
||||||
INIT_LIST_HEAD(&inst->children.list);
|
INIT_LIST_HEAD(&inst->children_list);
|
||||||
INIT_LIST_HEAD(&inst->firmware.list);
|
INIT_LIST_HEAD(&inst->firmware_list);
|
||||||
INIT_LIST_HEAD(&inst->enc_input_crs);
|
INIT_LIST_HEAD(&inst->enc_input_crs);
|
||||||
INIT_LIST_HEAD(&inst->dmabuf_tracker);
|
INIT_LIST_HEAD(&inst->dmabuf_tracker);
|
||||||
for (i = 0; i < MAX_SIGNAL; i++)
|
for (i = 0; i < MAX_SIGNAL; i++)
|
||||||
|
@@ -265,7 +265,7 @@ static enum msm_vidc_inst_capability_type msm_vidc_get_cap_id(
|
|||||||
capability = inst->capabilities;
|
capability = inst->capabilities;
|
||||||
do {
|
do {
|
||||||
if (capability->cap[i].v4l2_id == id) {
|
if (capability->cap[i].v4l2_id == id) {
|
||||||
cap_id = capability->cap[i].cap;
|
cap_id = capability->cap[i].cap_id;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
@@ -282,7 +282,7 @@ static int msm_vidc_add_capid_to_list(struct msm_vidc_inst *inst,
|
|||||||
|
|
||||||
/* skip adding if cap_id already present in list */
|
/* skip adding if cap_id already present in list */
|
||||||
if (type & FW_LIST) {
|
if (type & FW_LIST) {
|
||||||
list_for_each_entry(curr_node, &inst->firmware.list, list) {
|
list_for_each_entry(curr_node, &inst->firmware_list, list) {
|
||||||
if (curr_node->cap_id == cap_id) {
|
if (curr_node->cap_id == cap_id) {
|
||||||
i_vpr_l(inst,
|
i_vpr_l(inst,
|
||||||
"%s: cap[%d] %s already present in FW_LIST\n",
|
"%s: cap[%d] %s already present in FW_LIST\n",
|
||||||
@@ -299,9 +299,9 @@ static int msm_vidc_add_capid_to_list(struct msm_vidc_inst *inst,
|
|||||||
}
|
}
|
||||||
entry->cap_id = cap_id;
|
entry->cap_id = cap_id;
|
||||||
if (type & CHILD_LIST)
|
if (type & CHILD_LIST)
|
||||||
list_add_tail(&entry->list, &inst->children.list);
|
list_add_tail(&entry->list, &inst->children_list);
|
||||||
if (type & FW_LIST)
|
if (type & FW_LIST)
|
||||||
list_add_tail(&entry->list, &inst->firmware.list);
|
list_add_tail(&entry->list, &inst->firmware_list);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -325,15 +325,15 @@ static int msm_vidc_add_children(struct msm_vidc_inst *inst,
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool is_parent_available(struct msm_vidc_inst* inst,
|
static bool is_parent_available(struct msm_vidc_inst *inst,
|
||||||
u32 cap, u32 check_parent, const char* func)
|
u32 cap_id, u32 check_parent, const char *func)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
u32 cap_parent;
|
u32 cap_parent;
|
||||||
|
|
||||||
while (i < MAX_CAP_PARENTS &&
|
while (i < MAX_CAP_PARENTS &&
|
||||||
inst->capabilities->cap[cap].parents[i]) {
|
inst->capabilities->cap[cap_id].parents[i]) {
|
||||||
cap_parent = inst->capabilities->cap[cap].parents[i];
|
cap_parent = inst->capabilities->cap[cap_id].parents[i];
|
||||||
if (cap_parent == check_parent) {
|
if (cap_parent == check_parent) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -342,11 +342,11 @@ static bool is_parent_available(struct msm_vidc_inst* inst,
|
|||||||
|
|
||||||
i_vpr_e(inst,
|
i_vpr_e(inst,
|
||||||
"%s: missing parent %s for %s\n",
|
"%s: missing parent %s for %s\n",
|
||||||
func, cap_name(check_parent), cap_name(cap));
|
func, cap_name(check_parent), cap_name(cap_id));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int msm_vidc_update_cap_value(struct msm_vidc_inst *inst, u32 cap,
|
int msm_vidc_update_cap_value(struct msm_vidc_inst *inst, u32 cap_id,
|
||||||
s32 adjusted_val, const char *func)
|
s32 adjusted_val, const char *func)
|
||||||
{
|
{
|
||||||
if (!inst || !inst->capabilities) {
|
if (!inst || !inst->capabilities) {
|
||||||
@@ -354,23 +354,23 @@ int msm_vidc_update_cap_value(struct msm_vidc_inst *inst, u32 cap,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (inst->capabilities->cap[cap].value != adjusted_val)
|
if (inst->capabilities->cap[cap_id].value != adjusted_val)
|
||||||
i_vpr_h(inst,
|
i_vpr_h(inst,
|
||||||
"%s: updated database: name: %s, value: %#x -> %#x\n",
|
"%s: updated database: name: %s, value: %#x -> %#x\n",
|
||||||
func, cap_name(cap),
|
func, cap_name(cap_id),
|
||||||
inst->capabilities->cap[cap].value, adjusted_val);
|
inst->capabilities->cap[cap_id].value, adjusted_val);
|
||||||
|
|
||||||
inst->capabilities->cap[cap].value = adjusted_val;
|
inst->capabilities->cap[cap_id].value = adjusted_val;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int msm_vidc_get_parent_value(struct msm_vidc_inst* inst,
|
int msm_vidc_get_parent_value(struct msm_vidc_inst* inst,
|
||||||
u32 cap, u32 parent, s32 *value, const char *func)
|
u32 cap_id, u32 parent, s32 *value, const char *func)
|
||||||
{
|
{
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
|
||||||
if (is_parent_available(inst, cap, parent, func)) {
|
if (is_parent_available(inst, cap_id, parent, func)) {
|
||||||
switch (parent) {
|
switch (parent) {
|
||||||
case BITRATE_MODE:
|
case BITRATE_MODE:
|
||||||
*value = inst->hfi_rc_type;
|
*value = inst->hfi_rc_type;
|
||||||
@@ -438,7 +438,7 @@ static int msm_vidc_adjust_property(struct msm_vidc_inst *inst,
|
|||||||
* skip for uninitialized cap properties.
|
* skip for uninitialized cap properties.
|
||||||
* Eg: Skip Tramform 8x8 cap that is uninitialized for HEVC codec
|
* Eg: Skip Tramform 8x8 cap that is uninitialized for HEVC codec
|
||||||
*/
|
*/
|
||||||
if (!capability->cap[cap_id].cap)
|
if (!capability->cap[cap_id].cap_id)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (capability->cap[cap_id].adjust) {
|
if (capability->cap[cap_id].adjust) {
|
||||||
@@ -490,8 +490,8 @@ static int msm_vidc_adjust_dynamic_property(struct msm_vidc_inst *inst,
|
|||||||
if (!ctrl && !capability->cap[cap_id].adjust) {
|
if (!ctrl && !capability->cap[cap_id].adjust) {
|
||||||
i_vpr_e(inst,
|
i_vpr_e(inst,
|
||||||
"%s: child cap[%d] %s must have ajdust function\n",
|
"%s: child cap[%d] %s must have ajdust function\n",
|
||||||
__func__, capability->cap[cap_id].cap,
|
__func__, capability->cap[cap_id].cap_id,
|
||||||
cap_name(capability->cap[cap_id].cap));
|
cap_name(capability->cap[cap_id].cap_id));
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
prev_value = capability->cap[cap_id].value;
|
prev_value = capability->cap[cap_id].value;
|
||||||
@@ -645,7 +645,7 @@ int msm_vidc_ctrl_init(struct msm_vidc_inst *inst)
|
|||||||
ctrl_cfg.step =
|
ctrl_cfg.step =
|
||||||
capability->cap[idx].step_or_mask;
|
capability->cap[idx].step_or_mask;
|
||||||
}
|
}
|
||||||
ctrl_cfg.name = cap_name(capability->cap[idx].cap);
|
ctrl_cfg.name = cap_name(capability->cap[idx].cap_id);
|
||||||
if (!ctrl_cfg.name) {
|
if (!ctrl_cfg.name) {
|
||||||
i_vpr_e(inst, "%s: %#x ctrl name is null\n",
|
i_vpr_e(inst, "%s: %#x ctrl name is null\n",
|
||||||
__func__, ctrl_cfg.id);
|
__func__, ctrl_cfg.id);
|
||||||
@@ -936,7 +936,7 @@ int msm_v4l2_op_s_ctrl(struct v4l2_ctrl *ctrl)
|
|||||||
|
|
||||||
/* adjust all children if any */
|
/* adjust all children if any */
|
||||||
list_for_each_entry_safe(curr_node, tmp_node,
|
list_for_each_entry_safe(curr_node, tmp_node,
|
||||||
&inst->children.list, list) {
|
&inst->children_list, list) {
|
||||||
rc = msm_vidc_adjust_dynamic_property(
|
rc = msm_vidc_adjust_dynamic_property(
|
||||||
inst, curr_node->cap_id, NULL);
|
inst, curr_node->cap_id, NULL);
|
||||||
if (rc)
|
if (rc)
|
||||||
@@ -2494,7 +2494,7 @@ static inline bool is_root(struct msm_vidc_inst_cap *cap)
|
|||||||
|
|
||||||
static inline bool is_valid_cap(struct msm_vidc_inst_cap *cap)
|
static inline bool is_valid_cap(struct msm_vidc_inst_cap *cap)
|
||||||
{
|
{
|
||||||
return cap->cap != INST_CAP_NONE;
|
return cap->cap_id != INST_CAP_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool is_all_parents_visited(
|
static inline bool is_all_parents_visited(
|
||||||
@@ -2519,7 +2519,7 @@ static int add_node(
|
|||||||
{
|
{
|
||||||
struct msm_vidc_inst_cap_entry *entry;
|
struct msm_vidc_inst_cap_entry *entry;
|
||||||
|
|
||||||
if (lookup[rcap->cap])
|
if (lookup[rcap->cap_id])
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
entry = kzalloc(sizeof(struct msm_vidc_inst_cap_entry), GFP_KERNEL);
|
entry = kzalloc(sizeof(struct msm_vidc_inst_cap_entry), GFP_KERNEL);
|
||||||
@@ -2529,8 +2529,8 @@ static int add_node(
|
|||||||
}
|
}
|
||||||
|
|
||||||
INIT_LIST_HEAD(&entry->list);
|
INIT_LIST_HEAD(&entry->list);
|
||||||
entry->cap_id = rcap->cap;
|
entry->cap_id = rcap->cap_id;
|
||||||
lookup[rcap->cap] = true;
|
lookup[rcap->cap_id] = true;
|
||||||
|
|
||||||
list_add_tail(&entry->list, list);
|
list_add_tail(&entry->list, list);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -2571,9 +2571,9 @@ int msm_vidc_prepare_dependency_list(struct msm_vidc_inst *inst)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* sanitize cap value */
|
/* sanitize cap value */
|
||||||
if (i != rcap->cap) {
|
if (i != rcap->cap_id) {
|
||||||
i_vpr_e(inst, "%s: cap id mismatch. expected %s, actual %s\n",
|
i_vpr_e(inst, "%s: cap id mismatch. expected %s, actual %s\n",
|
||||||
__func__, cap_name(i), cap_name(rcap->cap));
|
__func__, cap_name(i), cap_name(rcap->cap_id));
|
||||||
rc = -EINVAL;
|
rc = -EINVAL;
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
@@ -2604,7 +2604,7 @@ int msm_vidc_prepare_dependency_list(struct msm_vidc_inst *inst)
|
|||||||
* if child node is already part of root or optional list
|
* if child node is already part of root or optional list
|
||||||
* then no need to add it again.
|
* then no need to add it again.
|
||||||
*/
|
*/
|
||||||
if (root_visited[cap->cap] || opt_visited[cap->cap])
|
if (root_visited[cap->cap_id] || opt_visited[cap->cap_id])
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -2722,7 +2722,7 @@ int msm_vidc_adjust_v4l2_properties(struct msm_vidc_inst *inst)
|
|||||||
* added to inst->children list at this point
|
* added to inst->children list at this point
|
||||||
*/
|
*/
|
||||||
list_for_each_entry_safe(curr_node, tmp_node,
|
list_for_each_entry_safe(curr_node, tmp_node,
|
||||||
&inst->children.list, list) {
|
&inst->children_list, list) {
|
||||||
/*
|
/*
|
||||||
* call adjust for each child. Each child adjust
|
* call adjust for each child. Each child adjust
|
||||||
* will also update child list at the tail with
|
* will also update child list at the tail with
|
||||||
@@ -3858,7 +3858,7 @@ int msm_vidc_set_v4l2_properties(struct msm_vidc_inst *inst)
|
|||||||
capability = inst->capabilities;
|
capability = inst->capabilities;
|
||||||
|
|
||||||
list_for_each_entry_safe(curr_node, tmp_node,
|
list_for_each_entry_safe(curr_node, tmp_node,
|
||||||
&inst->firmware.list, list) {
|
&inst->firmware_list, list) {
|
||||||
|
|
||||||
/* cap_id's like PIX_FMT etc may not have set functions */
|
/* cap_id's like PIX_FMT etc may not have set functions */
|
||||||
if (!capability->cap[curr_node->cap_id].set)
|
if (!capability->cap[curr_node->cap_id].set)
|
||||||
|
@@ -51,7 +51,7 @@ extern struct msm_vidc_core *g_core;
|
|||||||
#define STABILITY_PAYLOAD_SHIFT 32
|
#define STABILITY_PAYLOAD_SHIFT 32
|
||||||
|
|
||||||
struct msm_vidc_cap_name {
|
struct msm_vidc_cap_name {
|
||||||
enum msm_vidc_inst_capability_type cap;
|
enum msm_vidc_inst_capability_type cap_id;
|
||||||
char *name;
|
char *name;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -67,9 +67,9 @@ static const struct msm_vidc_cap_name cap_name_arr[] = {
|
|||||||
{MIN_BUFFERS_INPUT, "MIN_BUFFERS_INPUT" },
|
{MIN_BUFFERS_INPUT, "MIN_BUFFERS_INPUT" },
|
||||||
{MIN_BUFFERS_OUTPUT, "MIN_BUFFERS_OUTPUT" },
|
{MIN_BUFFERS_OUTPUT, "MIN_BUFFERS_OUTPUT" },
|
||||||
{MBPF, "MBPF" },
|
{MBPF, "MBPF" },
|
||||||
{LOSSLESS_MBPF, "LOSSLESS_MBPF" },
|
|
||||||
{BATCH_MBPF, "BATCH_MBPF" },
|
{BATCH_MBPF, "BATCH_MBPF" },
|
||||||
{BATCH_FPS, "BATCH_FPS" },
|
{BATCH_FPS, "BATCH_FPS" },
|
||||||
|
{LOSSLESS_MBPF, "LOSSLESS_MBPF" },
|
||||||
{SECURE_MBPF, "SECURE_MBPF" },
|
{SECURE_MBPF, "SECURE_MBPF" },
|
||||||
{MBPS, "MBPS" },
|
{MBPS, "MBPS" },
|
||||||
{POWER_SAVE_MBPS, "POWER_SAVE_MBPS" },
|
{POWER_SAVE_MBPS, "POWER_SAVE_MBPS" },
|
||||||
@@ -83,86 +83,59 @@ static const struct msm_vidc_cap_name cap_name_arr[] = {
|
|||||||
{MB_CYCLES_FW_VPP, "MB_CYCLES_FW_VPP" },
|
{MB_CYCLES_FW_VPP, "MB_CYCLES_FW_VPP" },
|
||||||
{SECURE_MODE, "SECURE_MODE" },
|
{SECURE_MODE, "SECURE_MODE" },
|
||||||
{TS_REORDER, "TS_REORDER" },
|
{TS_REORDER, "TS_REORDER" },
|
||||||
|
{SLICE_INTERFACE, "SLICE_INTERFACE" },
|
||||||
{HFLIP, "HFLIP" },
|
{HFLIP, "HFLIP" },
|
||||||
{VFLIP, "VFLIP" },
|
{VFLIP, "VFLIP" },
|
||||||
{ROTATION, "ROTATION" },
|
{ROTATION, "ROTATION" },
|
||||||
{SUPER_FRAME, "SUPER_FRAME" },
|
{SUPER_FRAME, "SUPER_FRAME" },
|
||||||
{SLICE_INTERFACE, "SLICE_INTERFACE" },
|
|
||||||
{HEADER_MODE, "HEADER_MODE" },
|
{HEADER_MODE, "HEADER_MODE" },
|
||||||
{PREPEND_SPSPPS_TO_IDR, "PREPEND_SPSPPS_TO_IDR" },
|
{PREPEND_SPSPPS_TO_IDR, "PREPEND_SPSPPS_TO_IDR" },
|
||||||
{META_SEQ_HDR_NAL, "META_SEQ_HDR_NAL" },
|
{META_SEQ_HDR_NAL, "META_SEQ_HDR_NAL" },
|
||||||
{WITHOUT_STARTCODE, "WITHOUT_STARTCODE" },
|
{WITHOUT_STARTCODE, "WITHOUT_STARTCODE" },
|
||||||
{NAL_LENGTH_FIELD, "NAL_LENGTH_FIELD" },
|
{NAL_LENGTH_FIELD, "NAL_LENGTH_FIELD" },
|
||||||
{REQUEST_I_FRAME, "REQUEST_I_FRAME" },
|
{REQUEST_I_FRAME, "REQUEST_I_FRAME" },
|
||||||
{BIT_RATE, "BIT_RATE" },
|
|
||||||
{BITRATE_MODE, "BITRATE_MODE" },
|
{BITRATE_MODE, "BITRATE_MODE" },
|
||||||
{LOSSLESS, "LOSSLESS" },
|
{LOSSLESS, "LOSSLESS" },
|
||||||
{FRAME_SKIP_MODE, "FRAME_SKIP_MODE" },
|
{FRAME_SKIP_MODE, "FRAME_SKIP_MODE" },
|
||||||
{FRAME_RC_ENABLE, "FRAME_RC_ENABLE" },
|
{FRAME_RC_ENABLE, "FRAME_RC_ENABLE" },
|
||||||
{CONSTANT_QUALITY, "CONSTANT_QUALITY" },
|
|
||||||
{GOP_SIZE, "GOP_SIZE" },
|
|
||||||
{GOP_CLOSURE, "GOP_CLOSURE" },
|
{GOP_CLOSURE, "GOP_CLOSURE" },
|
||||||
{B_FRAME, "B_FRAME" },
|
|
||||||
{BLUR_TYPES, "BLUR_TYPES" },
|
|
||||||
{BLUR_RESOLUTION, "BLUR_RESOLUTION" },
|
|
||||||
{CSC, "CSC" },
|
{CSC, "CSC" },
|
||||||
{CSC_CUSTOM_MATRIX, "CSC_CUSTOM_MATRIX" },
|
{CSC_CUSTOM_MATRIX, "CSC_CUSTOM_MATRIX" },
|
||||||
{GRID, "GRID" },
|
|
||||||
{LOWLATENCY_MODE, "LOWLATENCY_MODE" },
|
|
||||||
{LTR_COUNT, "LTR_COUNT" },
|
|
||||||
{USE_LTR, "USE_LTR" },
|
{USE_LTR, "USE_LTR" },
|
||||||
{MARK_LTR, "MARK_LTR" },
|
{MARK_LTR, "MARK_LTR" },
|
||||||
{BASELAYER_PRIORITY, "BASELAYER_PRIORITY" },
|
{BASELAYER_PRIORITY, "BASELAYER_PRIORITY" },
|
||||||
{IR_RANDOM, "IR_RANDOM" },
|
|
||||||
{AU_DELIMITER, "AU_DELIMITER" },
|
{AU_DELIMITER, "AU_DELIMITER" },
|
||||||
{TIME_DELTA_BASED_RC, "TIME_DELTA_BASED_RC" },
|
{GRID, "GRID" },
|
||||||
{CONTENT_ADAPTIVE_CODING, "CONTENT_ADAPTIVE_CODING" },
|
|
||||||
{BITRATE_BOOST, "BITRATE_BOOST" },
|
|
||||||
{MIN_QUALITY, "MIN_QUALITY" },
|
|
||||||
{VBV_DELAY, "VBV_DELAY" },
|
|
||||||
{PEAK_BITRATE, "PEAK_BITRATE" },
|
|
||||||
{MIN_FRAME_QP, "MIN_FRAME_QP" },
|
|
||||||
{I_FRAME_MIN_QP, "I_FRAME_MIN_QP" },
|
{I_FRAME_MIN_QP, "I_FRAME_MIN_QP" },
|
||||||
{P_FRAME_MIN_QP, "P_FRAME_MIN_QP" },
|
{P_FRAME_MIN_QP, "P_FRAME_MIN_QP" },
|
||||||
{B_FRAME_MIN_QP, "B_FRAME_MIN_QP" },
|
{B_FRAME_MIN_QP, "B_FRAME_MIN_QP" },
|
||||||
{MAX_FRAME_QP, "MAX_FRAME_QP" },
|
|
||||||
{I_FRAME_MAX_QP, "I_FRAME_MAX_QP" },
|
{I_FRAME_MAX_QP, "I_FRAME_MAX_QP" },
|
||||||
{P_FRAME_MAX_QP, "P_FRAME_MAX_QP" },
|
{P_FRAME_MAX_QP, "P_FRAME_MAX_QP" },
|
||||||
{B_FRAME_MAX_QP, "B_FRAME_MAX_QP" },
|
{B_FRAME_MAX_QP, "B_FRAME_MAX_QP" },
|
||||||
{I_FRAME_QP, "I_FRAME_QP" },
|
|
||||||
{P_FRAME_QP, "P_FRAME_QP" },
|
|
||||||
{B_FRAME_QP, "B_FRAME_QP" },
|
|
||||||
{LAYER_TYPE, "LAYER_TYPE" },
|
{LAYER_TYPE, "LAYER_TYPE" },
|
||||||
{LAYER_ENABLE, "LAYER_ENABLE" },
|
{LAYER_ENABLE, "LAYER_ENABLE" },
|
||||||
{ENH_LAYER_COUNT, "ENH_LAYER_COUNT" },
|
|
||||||
{L0_BR, "L0_BR" },
|
{L0_BR, "L0_BR" },
|
||||||
{L1_BR, "L1_BR" },
|
{L1_BR, "L1_BR" },
|
||||||
{L2_BR, "L2_BR" },
|
{L2_BR, "L2_BR" },
|
||||||
{L3_BR, "L3_BR" },
|
{L3_BR, "L3_BR" },
|
||||||
{L4_BR, "L4_BR" },
|
{L4_BR, "L4_BR" },
|
||||||
{L5_BR, "L5_BR" },
|
{L5_BR, "L5_BR" },
|
||||||
{ENTROPY_MODE, "ENTROPY_MODE" },
|
|
||||||
{PROFILE, "PROFILE" },
|
|
||||||
{LEVEL, "LEVEL" },
|
{LEVEL, "LEVEL" },
|
||||||
{HEVC_TIER, "HEVC_TIER" },
|
{HEVC_TIER, "HEVC_TIER" },
|
||||||
{AV1_TIER, "AV1_TIER" },
|
{AV1_TIER, "AV1_TIER" },
|
||||||
{LF_MODE, "LF_MODE" },
|
|
||||||
{LF_ALPHA, "LF_ALPHA" },
|
|
||||||
{LF_BETA, "LF_BETA" },
|
|
||||||
{SLICE_MODE, "SLICE_MODE" },
|
|
||||||
{SLICE_MAX_BYTES, "SLICE_MAX_BYTES" },
|
|
||||||
{SLICE_MAX_MB, "SLICE_MAX_MB" },
|
|
||||||
{MB_RC, "MB_RC" },
|
|
||||||
{TRANSFORM_8X8, "TRANSFORM_8X8" },
|
|
||||||
{CHROMA_QP_INDEX_OFFSET, "CHROMA_QP_INDEX_OFFSET" },
|
|
||||||
{DISPLAY_DELAY_ENABLE, "DISPLAY_DELAY_ENABLE" },
|
{DISPLAY_DELAY_ENABLE, "DISPLAY_DELAY_ENABLE" },
|
||||||
{DISPLAY_DELAY, "DISPLAY_DELAY" },
|
{DISPLAY_DELAY, "DISPLAY_DELAY" },
|
||||||
{CONCEAL_COLOR_8BIT, "CONCEAL_COLOR_8BIT" },
|
{CONCEAL_COLOR_8BIT, "CONCEAL_COLOR_8BIT" },
|
||||||
{CONCEAL_COLOR_10BIT, "CONCEAL_COLOR_10BIT" },
|
{CONCEAL_COLOR_10BIT, "CONCEAL_COLOR_10BIT" },
|
||||||
{STAGE, "STAGE" },
|
{LF_MODE, "LF_MODE" },
|
||||||
|
{LF_ALPHA, "LF_ALPHA" },
|
||||||
|
{LF_BETA, "LF_BETA" },
|
||||||
|
{SLICE_MAX_BYTES, "SLICE_MAX_BYTES" },
|
||||||
|
{SLICE_MAX_MB, "SLICE_MAX_MB" },
|
||||||
|
{MB_RC, "MB_RC" },
|
||||||
|
{CHROMA_QP_INDEX_OFFSET, "CHROMA_QP_INDEX_OFFSET" },
|
||||||
{PIPE, "PIPE" },
|
{PIPE, "PIPE" },
|
||||||
{POC, "POC" },
|
{POC, "POC" },
|
||||||
{QUALITY_MODE, "QUALITY_MODE" },
|
|
||||||
{CODED_FRAMES, "CODED_FRAMES" },
|
{CODED_FRAMES, "CODED_FRAMES" },
|
||||||
{BIT_DEPTH, "BIT_DEPTH" },
|
{BIT_DEPTH, "BIT_DEPTH" },
|
||||||
{CODEC_CONFIG, "CODEC_CONFIG" },
|
{CODEC_CONFIG, "CODEC_CONFIG" },
|
||||||
@@ -171,20 +144,20 @@ static const struct msm_vidc_cap_name cap_name_arr[] = {
|
|||||||
{DEFAULT_HEADER, "DEFAULT_HEADER" },
|
{DEFAULT_HEADER, "DEFAULT_HEADER" },
|
||||||
{RAP_FRAME, "RAP_FRAME" },
|
{RAP_FRAME, "RAP_FRAME" },
|
||||||
{SEQ_CHANGE_AT_SYNC_FRAME, "SEQ_CHANGE_AT_SYNC_FRAME" },
|
{SEQ_CHANGE_AT_SYNC_FRAME, "SEQ_CHANGE_AT_SYNC_FRAME" },
|
||||||
|
{QUALITY_MODE, "QUALITY_MODE" },
|
||||||
{PRIORITY, "PRIORITY" },
|
{PRIORITY, "PRIORITY" },
|
||||||
{ENC_IP_CR, "ENC_IP_CR" },
|
|
||||||
{DPB_LIST, "DPB_LIST" },
|
{DPB_LIST, "DPB_LIST" },
|
||||||
{FILM_GRAIN, "FILM_GRAIN" },
|
{FILM_GRAIN, "FILM_GRAIN" },
|
||||||
{SUPER_BLOCK, "SUPER_BLOCK" },
|
{SUPER_BLOCK, "SUPER_BLOCK" },
|
||||||
{DRAP, "DRAP" },
|
{DRAP, "DRAP" },
|
||||||
{ALL_INTRA, "ALL_INTRA" },
|
|
||||||
{INPUT_METADATA_FD, "INPUT_METADATA_FD" },
|
{INPUT_METADATA_FD, "INPUT_METADATA_FD" },
|
||||||
{META_BITSTREAM_RESOLUTION, "META_BITSTREAM_RESOLUTION" },
|
{META_BITSTREAM_RESOLUTION, "META_BITSTREAM_RESOLUTION" },
|
||||||
{META_CROP_OFFSETS, "META_CROP_OFFSETS" },
|
{META_CROP_OFFSETS, "META_CROP_OFFSETS" },
|
||||||
{META_LTR_MARK_USE, "META_LTR_MARK_USE" },
|
|
||||||
{META_DPB_MISR, "META_DPB_MISR" },
|
{META_DPB_MISR, "META_DPB_MISR" },
|
||||||
{META_OPB_MISR, "META_OPB_MISR" },
|
{META_OPB_MISR, "META_OPB_MISR" },
|
||||||
{META_INTERLACE, "META_INTERLACE" },
|
{META_INTERLACE, "META_INTERLACE" },
|
||||||
|
{ENC_IP_CR, "ENC_IP_CR" },
|
||||||
|
{META_LTR_MARK_USE, "META_LTR_MARK_USE" },
|
||||||
{META_TIMESTAMP, "META_TIMESTAMP" },
|
{META_TIMESTAMP, "META_TIMESTAMP" },
|
||||||
{META_CONCEALED_MB_CNT, "META_CONCEALED_MB_CNT" },
|
{META_CONCEALED_MB_CNT, "META_CONCEALED_MB_CNT" },
|
||||||
{META_HIST_INFO, "META_HIST_INFO" },
|
{META_HIST_INFO, "META_HIST_INFO" },
|
||||||
@@ -197,24 +170,51 @@ static const struct msm_vidc_cap_name cap_name_arr[] = {
|
|||||||
{META_OUTPUT_BUF_TAG, "META_OUTPUT_BUF_TAG" },
|
{META_OUTPUT_BUF_TAG, "META_OUTPUT_BUF_TAG" },
|
||||||
{META_SUBFRAME_OUTPUT, "META_SUBFRAME_OUTPUT" },
|
{META_SUBFRAME_OUTPUT, "META_SUBFRAME_OUTPUT" },
|
||||||
{META_ENC_QP_METADATA, "META_ENC_QP_METADATA" },
|
{META_ENC_QP_METADATA, "META_ENC_QP_METADATA" },
|
||||||
{META_ROI_INFO, "META_ROI_INFO" },
|
|
||||||
{META_DEC_QP_METADATA, "META_DEC_QP_METADATA" },
|
{META_DEC_QP_METADATA, "META_DEC_QP_METADATA" },
|
||||||
{COMPLEXITY, "COMPLEXITY" },
|
{COMPLEXITY, "COMPLEXITY" },
|
||||||
{META_MAX_NUM_REORDER_FRAMES, "META_MAX_NUM_REORDER_FRAMES"},
|
{META_MAX_NUM_REORDER_FRAMES, "META_MAX_NUM_REORDER_FRAMES"},
|
||||||
|
{PROFILE, "PROFILE" },
|
||||||
|
{MIN_FRAME_QP, "MIN_FRAME_QP" },
|
||||||
|
{MAX_FRAME_QP, "MAX_FRAME_QP" },
|
||||||
|
{I_FRAME_QP, "I_FRAME_QP" },
|
||||||
|
{P_FRAME_QP, "P_FRAME_QP" },
|
||||||
|
{B_FRAME_QP, "B_FRAME_QP" },
|
||||||
|
{META_ROI_INFO, "META_ROI_INFO" },
|
||||||
|
{TIME_DELTA_BASED_RC, "TIME_DELTA_BASED_RC" },
|
||||||
|
{CONSTANT_QUALITY, "CONSTANT_QUALITY" },
|
||||||
|
{ENH_LAYER_COUNT, "ENH_LAYER_COUNT" },
|
||||||
|
{BIT_RATE, "BIT_RATE" },
|
||||||
|
{VBV_DELAY, "VBV_DELAY" },
|
||||||
|
{PEAK_BITRATE, "PEAK_BITRATE" },
|
||||||
|
{LOWLATENCY_MODE, "LOWLATENCY_MODE" },
|
||||||
|
{ENTROPY_MODE, "ENTROPY_MODE" },
|
||||||
|
{TRANSFORM_8X8, "TRANSFORM_8X8" },
|
||||||
|
{GOP_SIZE, "GOP_SIZE" },
|
||||||
|
{B_FRAME, "B_FRAME" },
|
||||||
|
{BLUR_RESOLUTION, "BLUR_RESOLUTION" },
|
||||||
|
{STAGE, "STAGE" },
|
||||||
|
{ALL_INTRA, "ALL_INTRA" },
|
||||||
|
{MIN_QUALITY, "MIN_QUALITY" },
|
||||||
|
{LTR_COUNT, "LTR_COUNT" },
|
||||||
|
{IR_RANDOM, "IR_RANDOM" },
|
||||||
|
{BITRATE_BOOST, "BITRATE_BOOST" },
|
||||||
|
{SLICE_MODE, "SLICE_MODE" },
|
||||||
|
{CONTENT_ADAPTIVE_CODING, "CONTENT_ADAPTIVE_CODING" },
|
||||||
|
{BLUR_TYPES, "BLUR_TYPES" },
|
||||||
{INST_CAP_MAX, "INST_CAP_MAX" },
|
{INST_CAP_MAX, "INST_CAP_MAX" },
|
||||||
};
|
};
|
||||||
|
|
||||||
const char *cap_name(enum msm_vidc_inst_capability_type cap)
|
const char *cap_name(enum msm_vidc_inst_capability_type cap_id)
|
||||||
{
|
{
|
||||||
const char *name = "UNKNOWN CAP";
|
const char *name = "UNKNOWN CAP";
|
||||||
|
|
||||||
if (cap > ARRAY_SIZE(cap_name_arr))
|
if (cap_id > ARRAY_SIZE(cap_name_arr))
|
||||||
goto exit;
|
goto exit;
|
||||||
|
|
||||||
if (cap_name_arr[cap].cap != cap)
|
if (cap_name_arr[cap_id].cap_id != cap_id)
|
||||||
goto exit;
|
goto exit;
|
||||||
|
|
||||||
name = cap_name_arr[cap].name;
|
name = cap_name_arr[cap_id].name;
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
return name;
|
return name;
|
||||||
@@ -2168,7 +2168,7 @@ int msm_vidc_process_readonly_buffers(struct msm_vidc_inst *inst,
|
|||||||
buf->attr |= MSM_VIDC_ATTR_READ_ONLY;
|
buf->attr |= MSM_VIDC_ATTR_READ_ONLY;
|
||||||
print_vidc_buffer(VIDC_LOW, "low ", "ro buf removed", inst, ro_buf);
|
print_vidc_buffer(VIDC_LOW, "low ", "ro buf removed", inst, ro_buf);
|
||||||
list_del(&ro_buf->list);
|
list_del(&ro_buf->list);
|
||||||
msm_memory_free(inst, ro_buf);
|
msm_memory_pool_free(inst, ro_buf);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2195,7 +2195,7 @@ int msm_vidc_memory_unmap_completely(struct msm_vidc_inst *inst,
|
|||||||
if (!map->refcount) {
|
if (!map->refcount) {
|
||||||
msm_vidc_memory_put_dmabuf(inst, map->dmabuf);
|
msm_vidc_memory_put_dmabuf(inst, map->dmabuf);
|
||||||
list_del(&map->list);
|
list_del(&map->list);
|
||||||
msm_memory_free(inst, map);
|
msm_memory_pool_free(inst, map);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2361,7 +2361,7 @@ int msm_vidc_flush_ts(struct msm_vidc_inst *inst)
|
|||||||
i_vpr_l(inst, "%s: flushing ts: val %llu, rank %llu\n",
|
i_vpr_l(inst, "%s: flushing ts: val %llu, rank %llu\n",
|
||||||
__func__, ts->sort.val, ts->rank);
|
__func__, ts->sort.val, ts->rank);
|
||||||
list_del(&ts->sort.list);
|
list_del(&ts->sort.list);
|
||||||
msm_memory_free(inst, ts);
|
msm_memory_pool_free(inst, ts);
|
||||||
}
|
}
|
||||||
inst->timestamps.count = 0;
|
inst->timestamps.count = 0;
|
||||||
inst->timestamps.rank = 0;
|
inst->timestamps.rank = 0;
|
||||||
@@ -2380,7 +2380,7 @@ int msm_vidc_update_timestamp(struct msm_vidc_inst *inst, u64 timestamp)
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ts = msm_memory_alloc(inst, MSM_MEM_POOL_TIMESTAMP);
|
ts = msm_memory_pool_alloc(inst, MSM_MEM_POOL_TIMESTAMP);
|
||||||
if (!ts) {
|
if (!ts) {
|
||||||
i_vpr_e(inst, "%s: ts alloc failed\n", __func__);
|
i_vpr_e(inst, "%s: ts alloc failed\n", __func__);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
@@ -2408,7 +2408,7 @@ int msm_vidc_update_timestamp(struct msm_vidc_inst *inst, u64 timestamp)
|
|||||||
}
|
}
|
||||||
inst->timestamps.count--;
|
inst->timestamps.count--;
|
||||||
list_del(&ts->sort.list);
|
list_del(&ts->sort.list);
|
||||||
msm_memory_free(inst, ts);
|
msm_memory_pool_free(inst, ts);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -2425,7 +2425,7 @@ int msm_vidc_ts_reorder_insert_timestamp(struct msm_vidc_inst *inst, u64 timesta
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* allocate ts from pool */
|
/* allocate ts from pool */
|
||||||
ts = msm_memory_alloc(inst, MSM_MEM_POOL_TIMESTAMP);
|
ts = msm_memory_pool_alloc(inst, MSM_MEM_POOL_TIMESTAMP);
|
||||||
if (!ts) {
|
if (!ts) {
|
||||||
i_vpr_e(inst, "%s: ts alloc failed\n", __func__);
|
i_vpr_e(inst, "%s: ts alloc failed\n", __func__);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
@@ -2456,7 +2456,7 @@ int msm_vidc_ts_reorder_remove_timestamp(struct msm_vidc_inst *inst, u64 timesta
|
|||||||
if (ts->sort.val == timestamp) {
|
if (ts->sort.val == timestamp) {
|
||||||
list_del_init(&ts->sort.list);
|
list_del_init(&ts->sort.list);
|
||||||
inst->ts_reorder.count--;
|
inst->ts_reorder.count--;
|
||||||
msm_memory_free(inst, ts);
|
msm_memory_pool_free(inst, ts);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2488,7 +2488,7 @@ int msm_vidc_ts_reorder_get_first_timestamp(struct msm_vidc_inst *inst, u64 *tim
|
|||||||
*timestamp = ts->sort.val;
|
*timestamp = ts->sort.val;
|
||||||
|
|
||||||
inst->ts_reorder.count--;
|
inst->ts_reorder.count--;
|
||||||
msm_memory_free(inst, ts);
|
msm_memory_pool_free(inst, ts);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -2506,7 +2506,7 @@ int msm_vidc_ts_reorder_flush(struct msm_vidc_inst *inst)
|
|||||||
list_for_each_entry_safe(ts, temp, &inst->ts_reorder.list, sort.list) {
|
list_for_each_entry_safe(ts, temp, &inst->ts_reorder.list, sort.list) {
|
||||||
i_vpr_l(inst, "%s: flushing ts: val %lld\n", __func__, ts->sort.val);
|
i_vpr_l(inst, "%s: flushing ts: val %lld\n", __func__, ts->sort.val);
|
||||||
list_del(&ts->sort.list);
|
list_del(&ts->sort.list);
|
||||||
msm_memory_free(inst, ts);
|
msm_memory_pool_free(inst, ts);
|
||||||
}
|
}
|
||||||
inst->ts_reorder.count = 0;
|
inst->ts_reorder.count = 0;
|
||||||
|
|
||||||
@@ -2553,7 +2553,7 @@ int msm_vidc_put_delayed_unmap(struct msm_vidc_inst *inst, struct msm_vidc_map *
|
|||||||
if (!map->refcount) {
|
if (!map->refcount) {
|
||||||
msm_vidc_memory_put_dmabuf(inst, map->dmabuf);
|
msm_vidc_memory_put_dmabuf(inst, map->dmabuf);
|
||||||
list_del(&map->list);
|
list_del(&map->list);
|
||||||
msm_memory_free(inst, map);
|
msm_memory_pool_free(inst, map);
|
||||||
}
|
}
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
@@ -2621,7 +2621,7 @@ int msm_vidc_unmap_driver_buf(struct msm_vidc_inst *inst,
|
|||||||
if (!map->refcount) {
|
if (!map->refcount) {
|
||||||
msm_vidc_memory_put_dmabuf(inst, map->dmabuf);
|
msm_vidc_memory_put_dmabuf(inst, map->dmabuf);
|
||||||
list_del(&map->list);
|
list_del(&map->list);
|
||||||
msm_memory_free(inst, map);
|
msm_memory_pool_free(inst, map);
|
||||||
}
|
}
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
@@ -2656,7 +2656,7 @@ int msm_vidc_map_driver_buf(struct msm_vidc_inst *inst,
|
|||||||
}
|
}
|
||||||
if (!found) {
|
if (!found) {
|
||||||
/* new buffer case */
|
/* new buffer case */
|
||||||
map = msm_memory_alloc(inst, MSM_MEM_POOL_MAP);
|
map = msm_memory_pool_alloc(inst, MSM_MEM_POOL_MAP);
|
||||||
if (!map) {
|
if (!map) {
|
||||||
i_vpr_e(inst, "%s: alloc failed\n", __func__);
|
i_vpr_e(inst, "%s: alloc failed\n", __func__);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
@@ -2672,7 +2672,7 @@ int msm_vidc_map_driver_buf(struct msm_vidc_inst *inst,
|
|||||||
rc = msm_vidc_get_delayed_unmap(inst, map);
|
rc = msm_vidc_get_delayed_unmap(inst, map);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
msm_vidc_memory_put_dmabuf(inst, map->dmabuf);
|
msm_vidc_memory_put_dmabuf(inst, map->dmabuf);
|
||||||
msm_memory_free(inst, map);
|
msm_memory_pool_free(inst, map);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2703,7 +2703,7 @@ int msm_vidc_put_driver_buf(struct msm_vidc_inst *inst,
|
|||||||
|
|
||||||
/* delete the buffer from buffers->list */
|
/* delete the buffer from buffers->list */
|
||||||
list_del(&buf->list);
|
list_del(&buf->list);
|
||||||
msm_memory_free(inst, buf);
|
msm_memory_pool_free(inst, buf);
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
@@ -2729,7 +2729,7 @@ struct msm_vidc_buffer *msm_vidc_get_driver_buf(struct msm_vidc_inst *inst,
|
|||||||
if (!buffers)
|
if (!buffers)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
buf = msm_memory_alloc(inst, MSM_MEM_POOL_BUFFER);
|
buf = msm_memory_pool_alloc(inst, MSM_MEM_POOL_BUFFER);
|
||||||
if (!buf) {
|
if (!buf) {
|
||||||
i_vpr_e(inst, "%s: alloc failed\n", __func__);
|
i_vpr_e(inst, "%s: alloc failed\n", __func__);
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -2757,7 +2757,7 @@ struct msm_vidc_buffer *msm_vidc_get_driver_buf(struct msm_vidc_inst *inst,
|
|||||||
error:
|
error:
|
||||||
msm_vidc_memory_put_dmabuf(inst, buf->dmabuf);
|
msm_vidc_memory_put_dmabuf(inst, buf->dmabuf);
|
||||||
list_del(&buf->list);
|
list_del(&buf->list);
|
||||||
msm_memory_free(inst, buf);
|
msm_memory_pool_free(inst, buf);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3027,22 +3027,22 @@ void msm_vidc_free_capabililty_list(struct msm_vidc_inst *inst,
|
|||||||
struct msm_vidc_inst_cap_entry *temp = NULL, *next = NULL;
|
struct msm_vidc_inst_cap_entry *temp = NULL, *next = NULL;
|
||||||
|
|
||||||
if (list_type & CHILD_LIST) {
|
if (list_type & CHILD_LIST) {
|
||||||
list_for_each_entry_safe(temp, next, &inst->children.list, list) {
|
list_for_each_entry_safe(temp, next, &inst->children_list, list) {
|
||||||
list_del(&temp->list);
|
list_del(&temp->list);
|
||||||
kfree(temp);
|
kfree(temp);
|
||||||
}
|
}
|
||||||
INIT_LIST_HEAD(&inst->children.list);
|
INIT_LIST_HEAD(&inst->children_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
temp = NULL;
|
temp = NULL;
|
||||||
next = NULL;
|
next = NULL;
|
||||||
|
|
||||||
if (list_type & FW_LIST) {
|
if (list_type & FW_LIST) {
|
||||||
list_for_each_entry_safe(temp, next, &inst->firmware.list, list) {
|
list_for_each_entry_safe(temp, next, &inst->firmware_list, list) {
|
||||||
list_del(&temp->list);
|
list_del(&temp->list);
|
||||||
kfree(temp);
|
kfree(temp);
|
||||||
}
|
}
|
||||||
INIT_LIST_HEAD(&inst->firmware.list);
|
INIT_LIST_HEAD(&inst->firmware_list);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3337,7 +3337,7 @@ int msm_vidc_destroy_internal_buffer(struct msm_vidc_inst *inst,
|
|||||||
if (map->dmabuf == buffer->dmabuf) {
|
if (map->dmabuf == buffer->dmabuf) {
|
||||||
msm_vidc_memory_unmap(inst->core, map);
|
msm_vidc_memory_unmap(inst->core, map);
|
||||||
list_del(&map->list);
|
list_del(&map->list);
|
||||||
msm_memory_free(inst, map);
|
msm_memory_pool_free(inst, map);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3346,7 +3346,7 @@ int msm_vidc_destroy_internal_buffer(struct msm_vidc_inst *inst,
|
|||||||
if (alloc->dmabuf == buffer->dmabuf) {
|
if (alloc->dmabuf == buffer->dmabuf) {
|
||||||
msm_vidc_memory_free(inst->core, alloc);
|
msm_vidc_memory_free(inst->core, alloc);
|
||||||
list_del(&alloc->list);
|
list_del(&alloc->list);
|
||||||
msm_memory_free(inst, alloc);
|
msm_memory_pool_free(inst, alloc);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3354,7 +3354,7 @@ int msm_vidc_destroy_internal_buffer(struct msm_vidc_inst *inst,
|
|||||||
list_for_each_entry_safe(buf, dummy, &buffers->list, list) {
|
list_for_each_entry_safe(buf, dummy, &buffers->list, list) {
|
||||||
if (buf->dmabuf == buffer->dmabuf) {
|
if (buf->dmabuf == buffer->dmabuf) {
|
||||||
list_del(&buf->list);
|
list_del(&buf->list);
|
||||||
msm_memory_free(inst, buf);
|
msm_memory_pool_free(inst, buf);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3434,7 +3434,7 @@ int msm_vidc_create_internal_buffer(struct msm_vidc_inst *inst,
|
|||||||
if (!buffers->size)
|
if (!buffers->size)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
buffer = msm_memory_alloc(inst, MSM_MEM_POOL_BUFFER);
|
buffer = msm_memory_pool_alloc(inst, MSM_MEM_POOL_BUFFER);
|
||||||
if (!buffer) {
|
if (!buffer) {
|
||||||
i_vpr_e(inst, "%s: buf alloc failed\n", __func__);
|
i_vpr_e(inst, "%s: buf alloc failed\n", __func__);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
@@ -3445,7 +3445,7 @@ int msm_vidc_create_internal_buffer(struct msm_vidc_inst *inst,
|
|||||||
buffer->buffer_size = buffers->size;
|
buffer->buffer_size = buffers->size;
|
||||||
list_add_tail(&buffer->list, &buffers->list);
|
list_add_tail(&buffer->list, &buffers->list);
|
||||||
|
|
||||||
alloc = msm_memory_alloc(inst, MSM_MEM_POOL_ALLOC);
|
alloc = msm_memory_pool_alloc(inst, MSM_MEM_POOL_ALLOC);
|
||||||
if (!alloc) {
|
if (!alloc) {
|
||||||
i_vpr_e(inst, "%s: alloc failed\n", __func__);
|
i_vpr_e(inst, "%s: alloc failed\n", __func__);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
@@ -3461,7 +3461,7 @@ int msm_vidc_create_internal_buffer(struct msm_vidc_inst *inst,
|
|||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
list_add_tail(&alloc->list, &allocations->list);
|
list_add_tail(&alloc->list, &allocations->list);
|
||||||
|
|
||||||
map = msm_memory_alloc(inst, MSM_MEM_POOL_MAP);
|
map = msm_memory_pool_alloc(inst, MSM_MEM_POOL_MAP);
|
||||||
if (!map) {
|
if (!map) {
|
||||||
i_vpr_e(inst, "%s: map alloc failed\n", __func__);
|
i_vpr_e(inst, "%s: map alloc failed\n", __func__);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
@@ -4354,24 +4354,24 @@ static void update_inst_capability(struct msm_platform_inst_capability *in,
|
|||||||
__func__, in, capability);
|
__func__, in, capability);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (in->cap < INST_CAP_MAX) {
|
if (in->cap_id < INST_CAP_MAX) {
|
||||||
capability->cap[in->cap].cap = in->cap;
|
capability->cap[in->cap_id].cap_id = in->cap_id;
|
||||||
capability->cap[in->cap].min = in->min;
|
capability->cap[in->cap_id].min = in->min;
|
||||||
capability->cap[in->cap].max = in->max;
|
capability->cap[in->cap_id].max = in->max;
|
||||||
capability->cap[in->cap].step_or_mask = in->step_or_mask;
|
capability->cap[in->cap_id].step_or_mask = in->step_or_mask;
|
||||||
capability->cap[in->cap].value = in->value;
|
capability->cap[in->cap_id].value = in->value;
|
||||||
capability->cap[in->cap].flags = in->flags;
|
capability->cap[in->cap_id].flags = in->flags;
|
||||||
capability->cap[in->cap].v4l2_id = in->v4l2_id;
|
capability->cap[in->cap_id].v4l2_id = in->v4l2_id;
|
||||||
capability->cap[in->cap].hfi_id = in->hfi_id;
|
capability->cap[in->cap_id].hfi_id = in->hfi_id;
|
||||||
memcpy(capability->cap[in->cap].parents, in->parents,
|
memcpy(capability->cap[in->cap_id].parents, in->parents,
|
||||||
sizeof(capability->cap[in->cap].parents));
|
sizeof(capability->cap[in->cap_id].parents));
|
||||||
memcpy(capability->cap[in->cap].children, in->children,
|
memcpy(capability->cap[in->cap_id].children, in->children,
|
||||||
sizeof(capability->cap[in->cap].children));
|
sizeof(capability->cap[in->cap_id].children));
|
||||||
capability->cap[in->cap].adjust = in->adjust;
|
capability->cap[in->cap_id].adjust = in->adjust;
|
||||||
capability->cap[in->cap].set = in->set;
|
capability->cap[in->cap_id].set = in->set;
|
||||||
} else {
|
} else {
|
||||||
d_vpr_e("%s: invalid cap %d\n",
|
d_vpr_e("%s: invalid cap id %d\n",
|
||||||
__func__, in->cap);
|
__func__, in->cap_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5196,13 +5196,13 @@ void msm_vidc_destroy_buffers(struct msm_vidc_inst *inst)
|
|||||||
list_for_each_entry_safe(buf, dummy, &inst->buffers.read_only.list, list) {
|
list_for_each_entry_safe(buf, dummy, &inst->buffers.read_only.list, list) {
|
||||||
print_vidc_buffer(VIDC_ERR, "err ", "destroying ro buffer", inst, buf);
|
print_vidc_buffer(VIDC_ERR, "err ", "destroying ro buffer", inst, buf);
|
||||||
list_del(&buf->list);
|
list_del(&buf->list);
|
||||||
msm_memory_free(inst, buf);
|
msm_memory_pool_free(inst, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
list_for_each_entry_safe(buf, dummy, &inst->buffers.release.list, list) {
|
list_for_each_entry_safe(buf, dummy, &inst->buffers.release.list, list) {
|
||||||
print_vidc_buffer(VIDC_ERR, "err ", "destroying release buffer", inst, buf);
|
print_vidc_buffer(VIDC_ERR, "err ", "destroying release buffer", inst, buf);
|
||||||
list_del(&buf->list);
|
list_del(&buf->list);
|
||||||
msm_memory_free(inst, buf);
|
msm_memory_pool_free(inst, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(ext_buf_types); i++) {
|
for (i = 0; i < ARRAY_SIZE(ext_buf_types); i++) {
|
||||||
@@ -5224,14 +5224,14 @@ void msm_vidc_destroy_buffers(struct msm_vidc_inst *inst)
|
|||||||
i_vpr_e(inst, "%s: removing ts: val %lld, rank %lld\n",
|
i_vpr_e(inst, "%s: removing ts: val %lld, rank %lld\n",
|
||||||
__func__, ts->sort.val, ts->rank);
|
__func__, ts->sort.val, ts->rank);
|
||||||
list_del(&ts->sort.list);
|
list_del(&ts->sort.list);
|
||||||
msm_memory_free(inst, ts);
|
msm_memory_pool_free(inst, ts);
|
||||||
}
|
}
|
||||||
|
|
||||||
list_for_each_entry_safe(ts, dummy_ts, &inst->ts_reorder.list, sort.list) {
|
list_for_each_entry_safe(ts, dummy_ts, &inst->ts_reorder.list, sort.list) {
|
||||||
i_vpr_e(inst, "%s: removing reorder ts: val %lld\n",
|
i_vpr_e(inst, "%s: removing reorder ts: val %lld\n",
|
||||||
__func__, ts->sort.val);
|
__func__, ts->sort.val);
|
||||||
list_del(&ts->sort.list);
|
list_del(&ts->sort.list);
|
||||||
msm_memory_free(inst, ts);
|
msm_memory_pool_free(inst, ts);
|
||||||
}
|
}
|
||||||
|
|
||||||
list_for_each_entry_safe(dbuf, dummy_dbuf, &inst->dmabuf_tracker, list) {
|
list_for_each_entry_safe(dbuf, dummy_dbuf, &inst->dmabuf_tracker, list) {
|
||||||
|
@@ -95,7 +95,7 @@ struct dma_buf *msm_vidc_memory_get_dmabuf(struct msm_vidc_inst *inst, int fd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* get tracker instance from pool */
|
/* get tracker instance from pool */
|
||||||
buf = msm_memory_alloc(inst, MSM_MEM_POOL_DMABUF);
|
buf = msm_memory_pool_alloc(inst, MSM_MEM_POOL_DMABUF);
|
||||||
if (!buf) {
|
if (!buf) {
|
||||||
i_vpr_e(inst, "%s: dmabuf alloc failed\n", __func__);
|
i_vpr_e(inst, "%s: dmabuf alloc failed\n", __func__);
|
||||||
dma_buf_put(dmabuf);
|
dma_buf_put(dmabuf);
|
||||||
@@ -146,7 +146,7 @@ void msm_vidc_memory_put_dmabuf(struct msm_vidc_inst *inst, struct dma_buf *dmab
|
|||||||
dma_buf_put(buf->dmabuf);
|
dma_buf_put(buf->dmabuf);
|
||||||
|
|
||||||
/* put tracker instance back to pool */
|
/* put tracker instance back to pool */
|
||||||
msm_memory_free(inst, buf);
|
msm_memory_pool_free(inst, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
void msm_vidc_memory_put_dmabuf_completely(struct msm_vidc_inst *inst,
|
void msm_vidc_memory_put_dmabuf_completely(struct msm_vidc_inst *inst,
|
||||||
@@ -167,7 +167,7 @@ void msm_vidc_memory_put_dmabuf_completely(struct msm_vidc_inst *inst,
|
|||||||
dma_buf_put(buf->dmabuf);
|
dma_buf_put(buf->dmabuf);
|
||||||
|
|
||||||
/* put tracker instance back to pool */
|
/* put tracker instance back to pool */
|
||||||
msm_memory_free(inst, buf);
|
msm_memory_pool_free(inst, buf);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -445,7 +445,7 @@ int msm_vidc_memory_free(struct msm_vidc_core *core, struct msm_vidc_alloc *mem)
|
|||||||
return rc;
|
return rc;
|
||||||
};
|
};
|
||||||
|
|
||||||
void *msm_memory_alloc(struct msm_vidc_inst *inst, enum msm_memory_pool_type type)
|
void *msm_memory_pool_alloc(struct msm_vidc_inst *inst, enum msm_memory_pool_type type)
|
||||||
{
|
{
|
||||||
struct msm_memory_alloc_header *hdr;
|
struct msm_memory_alloc_header *hdr;
|
||||||
struct msm_memory_pool *pool;
|
struct msm_memory_pool *pool;
|
||||||
@@ -488,7 +488,7 @@ void *msm_memory_alloc(struct msm_vidc_inst *inst, enum msm_memory_pool_type typ
|
|||||||
return hdr->buf;
|
return hdr->buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
void msm_memory_free(struct msm_vidc_inst *inst, void *vidc_buf)
|
void msm_memory_pool_free(struct msm_vidc_inst *inst, void *vidc_buf)
|
||||||
{
|
{
|
||||||
struct msm_memory_alloc_header *hdr;
|
struct msm_memory_alloc_header *hdr;
|
||||||
struct msm_memory_pool *pool;
|
struct msm_memory_pool *pool;
|
||||||
|
@@ -649,7 +649,7 @@ static int handle_read_only_buffer(struct msm_vidc_inst *inst,
|
|||||||
* if present, do nothing
|
* if present, do nothing
|
||||||
*/
|
*/
|
||||||
if (!found) {
|
if (!found) {
|
||||||
ro_buf = msm_memory_alloc(inst, MSM_MEM_POOL_BUFFER);
|
ro_buf = msm_memory_pool_alloc(inst, MSM_MEM_POOL_BUFFER);
|
||||||
if (!ro_buf) {
|
if (!ro_buf) {
|
||||||
i_vpr_e(inst, "%s: buffer alloc failed\n", __func__);
|
i_vpr_e(inst, "%s: buffer alloc failed\n", __func__);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
@@ -700,7 +700,7 @@ static int handle_non_read_only_buffer(struct msm_vidc_inst *inst,
|
|||||||
if (found) {
|
if (found) {
|
||||||
print_vidc_buffer(VIDC_LOW, "low ", "ro buf deleted", inst, ro_buf);
|
print_vidc_buffer(VIDC_LOW, "low ", "ro buf deleted", inst, ro_buf);
|
||||||
list_del(&ro_buf->list);
|
list_del(&ro_buf->list);
|
||||||
msm_memory_free(inst, ro_buf);
|
msm_memory_pool_free(inst, ro_buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Reference in New Issue
Block a user