Merge "video: driver: Add HFI and internal buffer changes for AV1 DRAP"
这个提交包含在:
@@ -540,6 +540,8 @@ enum hfi_nal_length_field_type {
|
||||
|
||||
#define HFI_PROP_OPB_ENABLE 0x03000184
|
||||
|
||||
#define HFI_PROP_AV1_DRAP_CONFIG 0x03000189
|
||||
|
||||
#define HFI_PROP_END 0x03FFFFFF
|
||||
|
||||
#define HFI_SESSION_ERROR_BEGIN 0x04000000
|
||||
@@ -556,6 +558,8 @@ enum hfi_nal_length_field_type {
|
||||
|
||||
#define HFI_ERROR_BUFFER_NOT_SET 0x04000006
|
||||
|
||||
#define HFI_ERROR_DRAP_CONFIG_EXCEED 0x04000007
|
||||
|
||||
#define HFI_SESSION_ERROR_END 0x04FFFFFF
|
||||
|
||||
#define HFI_SYSTEM_ERROR_BEGIN 0x05000000
|
||||
|
@@ -458,6 +458,7 @@ enum msm_vidc_inst_capability_type {
|
||||
DPB_LIST,
|
||||
FILM_GRAIN,
|
||||
SUPER_BLOCK,
|
||||
DRAP,
|
||||
ALL_INTRA,
|
||||
INPUT_METADATA_FD,
|
||||
META_BITSTREAM_RESOLUTION,
|
||||
|
@@ -886,6 +886,32 @@ static int msm_vdec_set_av1_operating_point(struct msm_vidc_inst *inst,
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int msm_vdec_set_av1_drap_config(struct msm_vidc_inst *inst,
|
||||
enum msm_vidc_port_type port)
|
||||
{
|
||||
int rc = 0;
|
||||
u32 drap_config;
|
||||
|
||||
if (inst->codec != MSM_VIDC_AV1)
|
||||
return 0;
|
||||
|
||||
drap_config = inst->capabilities->cap[DRAP].value;
|
||||
i_vpr_h(inst, "%s: drap_config: %u\n", __func__, drap_config);
|
||||
rc = venus_hfi_session_property(inst,
|
||||
HFI_PROP_AV1_DRAP_CONFIG,
|
||||
HFI_HOST_FLAGS_NONE,
|
||||
get_hfi_port(inst, port),
|
||||
HFI_PAYLOAD_U32,
|
||||
&drap_config,
|
||||
sizeof(u32));
|
||||
if (rc) {
|
||||
i_vpr_e(inst, "%s: set property failed\n", __func__);
|
||||
return rc;
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int msm_vdec_set_input_properties(struct msm_vidc_inst *inst)
|
||||
{
|
||||
int rc = 0;
|
||||
@@ -935,6 +961,10 @@ static int msm_vdec_set_input_properties(struct msm_vidc_inst *inst)
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
rc = msm_vdec_set_av1_drap_config(inst, INPUT_PORT);
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
@@ -187,7 +187,8 @@ u32 msm_vidc_internal_buffer_count(struct msm_vidc_inst *inst,
|
||||
buffer_type == MSM_VIDC_BUF_NON_COMV) {
|
||||
if (inst->codec == MSM_VIDC_H264 ||
|
||||
inst->codec == MSM_VIDC_HEVC ||
|
||||
inst->codec == MSM_VIDC_HEIC)
|
||||
inst->codec == MSM_VIDC_HEIC ||
|
||||
inst->codec == MSM_VIDC_AV1)
|
||||
count = 1;
|
||||
else
|
||||
count = 0;
|
||||
|
@@ -175,6 +175,7 @@ static const struct msm_vidc_cap_name cap_name_arr[] = {
|
||||
{DPB_LIST, "DPB_LIST" },
|
||||
{FILM_GRAIN, "FILM_GRAIN" },
|
||||
{SUPER_BLOCK, "SUPER_BLOCK" },
|
||||
{DRAP, "DRAP" },
|
||||
{ALL_INTRA, "ALL_INTRA" },
|
||||
{INPUT_METADATA_FD, "INPUT_METADATA_FD" },
|
||||
{META_BITSTREAM_RESOLUTION, "META_BITSTREAM_RESOLUTION" },
|
||||
|
在新工单中引用
屏蔽一个用户