mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 16:46:15 -04:00
Merge "msm: vidc: Cleanup VP8 on lahaina"
This commit is contained in:
commit
98bdda2be1
8 changed files with 12 additions and 220 deletions
|
|
@ -1,6 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2012-2019, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2012-2020, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
#include "hfi_packetization.h"
|
||||
#include "msm_vidc_debug.h"
|
||||
|
|
@ -42,9 +42,6 @@ u32 vidc_get_hfi_codec(enum hal_video_codec hal_codec, u32 sid)
|
|||
case HAL_VIDEO_CODEC_MPEG2:
|
||||
hfi_codec = HFI_VIDEO_CODEC_MPEG2;
|
||||
break;
|
||||
case HAL_VIDEO_CODEC_VP8:
|
||||
hfi_codec = HFI_VIDEO_CODEC_VP8;
|
||||
break;
|
||||
case HAL_VIDEO_CODEC_HEVC:
|
||||
hfi_codec = HFI_VIDEO_CODEC_HEVC;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -65,15 +65,6 @@ static const char *const mpeg_video_h264_level[] = {
|
|||
NULL,
|
||||
};
|
||||
|
||||
static const char *const vp8_profile_level[] = {
|
||||
"Unused",
|
||||
"0.0",
|
||||
"1.0",
|
||||
"2.0",
|
||||
"3.0",
|
||||
NULL
|
||||
};
|
||||
|
||||
static const char *const vp9_level[] = {
|
||||
"Unused",
|
||||
"1.0",
|
||||
|
|
@ -274,22 +265,6 @@ static struct msm_vidc_ctrl msm_vdec_ctrls[] = {
|
|||
.menu_skip_mask = ~(1 << V4L2_MPEG_VIDEO_VP8_PROFILE_0),
|
||||
.qmenu = NULL,
|
||||
},
|
||||
{
|
||||
.id = V4L2_CID_MPEG_VIDC_VIDEO_VP8_PROFILE_LEVEL,
|
||||
.name = "VP8 Profile Level",
|
||||
.type = V4L2_CTRL_TYPE_MENU,
|
||||
.minimum = V4L2_MPEG_VIDC_VIDEO_VP8_UNUSED,
|
||||
.maximum = V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_3,
|
||||
.default_value = V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_3,
|
||||
.menu_skip_mask = ~(
|
||||
(1 << V4L2_MPEG_VIDC_VIDEO_VP8_UNUSED) |
|
||||
(1 << V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_0) |
|
||||
(1 << V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_1) |
|
||||
(1 << V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_2) |
|
||||
(1 << V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_3)
|
||||
),
|
||||
.qmenu = vp8_profile_level,
|
||||
},
|
||||
{
|
||||
.id = V4L2_CID_MPEG_VIDEO_VP9_PROFILE,
|
||||
.name = "VP9 Profile",
|
||||
|
|
@ -494,11 +469,6 @@ struct msm_vidc_format_desc vdec_input_formats[] = {
|
|||
.description = "HEVC compressed format",
|
||||
.fourcc = V4L2_PIX_FMT_HEVC,
|
||||
},
|
||||
{
|
||||
.name = "VP8",
|
||||
.description = "VP8 compressed format",
|
||||
.fourcc = V4L2_PIX_FMT_VP8,
|
||||
},
|
||||
{
|
||||
.name = "VP9",
|
||||
.description = "VP9 compressed format",
|
||||
|
|
@ -892,7 +862,6 @@ int msm_vdec_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl)
|
|||
switch (ctrl->id) {
|
||||
case V4L2_CID_MPEG_VIDEO_H264_PROFILE:
|
||||
case V4L2_CID_MPEG_VIDEO_HEVC_PROFILE:
|
||||
case V4L2_CID_MPEG_VIDEO_VP8_PROFILE:
|
||||
case V4L2_CID_MPEG_VIDEO_VP9_PROFILE:
|
||||
case V4L2_CID_MPEG_VIDC_VIDEO_MPEG2_PROFILE:
|
||||
inst->profile = msm_comm_v4l2_to_hfi(ctrl->id, ctrl->val,
|
||||
|
|
@ -900,7 +869,6 @@ int msm_vdec_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl)
|
|||
break;
|
||||
case V4L2_CID_MPEG_VIDEO_H264_LEVEL:
|
||||
case V4L2_CID_MPEG_VIDEO_HEVC_LEVEL:
|
||||
case V4L2_CID_MPEG_VIDC_VIDEO_VP8_PROFILE_LEVEL:
|
||||
case V4L2_CID_MPEG_VIDC_VIDEO_VP9_LEVEL:
|
||||
case V4L2_CID_MPEG_VIDC_VIDEO_MPEG2_LEVEL:
|
||||
inst->level = msm_comm_v4l2_to_hfi(ctrl->id, ctrl->val,
|
||||
|
|
@ -1389,7 +1357,6 @@ int msm_vdec_set_extradata(struct msm_vidc_inst *inst)
|
|||
case V4L2_PIX_FMT_HEVC:
|
||||
display_info = HFI_PROPERTY_PARAM_VUI_DISPLAY_INFO_EXTRADATA;
|
||||
break;
|
||||
case V4L2_PIX_FMT_VP8:
|
||||
case V4L2_PIX_FMT_VP9:
|
||||
display_info =
|
||||
HFI_PROPERTY_PARAM_VDEC_VPX_COLORSPACE_EXTRADATA;
|
||||
|
|
|
|||
|
|
@ -101,15 +101,6 @@ static const char *const mpeg_video_h264_level[] = {
|
|||
NULL,
|
||||
};
|
||||
|
||||
static const char *const vp8_profile_level[] = {
|
||||
"Unused",
|
||||
"0.0",
|
||||
"1.0",
|
||||
"2.0",
|
||||
"3.0",
|
||||
NULL
|
||||
};
|
||||
|
||||
static const char *const mpeg_video_stream_format[] = {
|
||||
"NAL Format Start Codes",
|
||||
"NAL Format One NAL Per Buffer",
|
||||
|
|
@ -354,32 +345,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
|
|||
),
|
||||
.qmenu = mpeg_video_h264_level,
|
||||
},
|
||||
{
|
||||
.id = V4L2_CID_MPEG_VIDEO_VP8_PROFILE,
|
||||
.name = "VP8 Profile",
|
||||
.type = V4L2_CTRL_TYPE_MENU,
|
||||
.minimum = V4L2_MPEG_VIDEO_VP8_PROFILE_0,
|
||||
.maximum = V4L2_MPEG_VIDEO_VP8_PROFILE_0,
|
||||
.default_value = V4L2_MPEG_VIDEO_VP8_PROFILE_0,
|
||||
.menu_skip_mask = ~(1 << V4L2_MPEG_VIDEO_VP8_PROFILE_0),
|
||||
.qmenu = NULL,
|
||||
},
|
||||
{
|
||||
.id = V4L2_CID_MPEG_VIDC_VIDEO_VP8_PROFILE_LEVEL,
|
||||
.name = "VP8 Profile Level",
|
||||
.type = V4L2_CTRL_TYPE_MENU,
|
||||
.minimum = V4L2_MPEG_VIDC_VIDEO_VP8_UNUSED,
|
||||
.maximum = V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_3,
|
||||
.default_value = V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_3,
|
||||
.menu_skip_mask = ~(
|
||||
(1 << V4L2_MPEG_VIDC_VIDEO_VP8_UNUSED) |
|
||||
(1 << V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_0) |
|
||||
(1 << V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_1) |
|
||||
(1 << V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_2) |
|
||||
(1 << V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_3)
|
||||
),
|
||||
.qmenu = vp8_profile_level,
|
||||
},
|
||||
{
|
||||
.id = V4L2_CID_MPEG_VIDEO_HEVC_PROFILE,
|
||||
.name = "HEVC Profile",
|
||||
|
|
@ -760,16 +725,6 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = {
|
|||
.step = 1,
|
||||
.qmenu = NULL,
|
||||
},
|
||||
{
|
||||
.id = V4L2_CID_MPEG_VIDC_VIDEO_VPX_ERROR_RESILIENCE,
|
||||
.name = "VP8 Error Resilience mode",
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.minimum = V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||
.maximum = V4L2_MPEG_MSM_VIDC_ENABLE,
|
||||
.default_value = V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||
.step = 1,
|
||||
.qmenu = NULL,
|
||||
},
|
||||
{
|
||||
.id = V4L2_CID_MPEG_VIDC_VIDEO_BASELAYER_ID,
|
||||
.name = "Set Base Layer Priority ID for Hier-P",
|
||||
|
|
@ -1064,11 +1019,6 @@ static struct msm_vidc_format_desc venc_output_formats[] = {
|
|||
.description = "H264 compressed format",
|
||||
.fourcc = V4L2_PIX_FMT_H264,
|
||||
},
|
||||
{
|
||||
.name = "VP8",
|
||||
.description = "VP8 compressed format",
|
||||
.fourcc = V4L2_PIX_FMT_VP8,
|
||||
},
|
||||
{
|
||||
.name = "HEVC",
|
||||
.description = "HEVC compressed format",
|
||||
|
|
@ -1467,8 +1417,6 @@ int msm_venc_set_default_profile(struct msm_vidc_inst *inst)
|
|||
|
||||
if (get_v4l2_codec(inst) == V4L2_PIX_FMT_HEVC)
|
||||
inst->profile = HFI_HEVC_PROFILE_MAIN;
|
||||
else if (get_v4l2_codec(inst) == V4L2_PIX_FMT_VP8)
|
||||
inst->profile = HFI_VP8_PROFILE_MAIN;
|
||||
else if (get_v4l2_codec(inst) == V4L2_PIX_FMT_H264)
|
||||
inst->profile = HFI_H264_PROFILE_HIGH;
|
||||
else
|
||||
|
|
@ -1808,12 +1756,10 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl)
|
|||
break;
|
||||
case V4L2_CID_MPEG_VIDEO_H264_PROFILE:
|
||||
case V4L2_CID_MPEG_VIDEO_HEVC_PROFILE:
|
||||
case V4L2_CID_MPEG_VIDEO_VP8_PROFILE:
|
||||
inst->profile = msm_comm_v4l2_to_hfi(ctrl->id, ctrl->val, sid);
|
||||
break;
|
||||
case V4L2_CID_MPEG_VIDEO_H264_LEVEL:
|
||||
case V4L2_CID_MPEG_VIDEO_HEVC_LEVEL:
|
||||
case V4L2_CID_MPEG_VIDC_VIDEO_VP8_PROFILE_LEVEL:
|
||||
inst->level = msm_comm_v4l2_to_hfi(ctrl->id, ctrl->val, sid);
|
||||
break;
|
||||
case V4L2_CID_MPEG_VIDEO_HEVC_TIER:
|
||||
|
|
@ -2543,10 +2489,6 @@ int msm_venc_set_vbv_delay(struct msm_vidc_inst *inst)
|
|||
inst->rc_type != V4L2_MPEG_VIDEO_BITRATE_MODE_CBR_VFR)
|
||||
return 0;
|
||||
|
||||
/* vbv delay is not required for VP8 encoder */
|
||||
if (codec == V4L2_PIX_FMT_VP8)
|
||||
return 0;
|
||||
|
||||
/* Default behavior */
|
||||
is_legacy_cbr = false;
|
||||
buf_size = CBR_PLUS_BUF_SIZE;
|
||||
|
|
@ -2823,10 +2765,6 @@ int msm_venc_set_frame_qp(struct msm_vidc_inst *inst)
|
|||
b_qp->val = i_qp->val;
|
||||
}
|
||||
|
||||
/* B frame QP is not supported for VP8. */
|
||||
if (get_v4l2_codec(inst) == V4L2_PIX_FMT_VP8)
|
||||
qp.enable &= ~QP_ENABLE_B;
|
||||
|
||||
qp.qp_packed = i_qp->val | p_qp->val << 8 | b_qp->val << 16;
|
||||
|
||||
s_vpr_h(inst->sid, "%s: layers %#x frames %#x qp_packed %#x\n",
|
||||
|
|
@ -3552,35 +3490,6 @@ int msm_venc_set_hp_layer(struct msm_vidc_inst *inst)
|
|||
return rc;
|
||||
}
|
||||
|
||||
int msm_venc_set_vpx_error_resilience(struct msm_vidc_inst *inst)
|
||||
{
|
||||
int rc = 0;
|
||||
struct hfi_device *hdev;
|
||||
struct v4l2_ctrl *ctrl;
|
||||
struct hfi_enable enable;
|
||||
|
||||
if (!inst || !inst->core) {
|
||||
d_vpr_e("%s: invalid params %pK\n", __func__, inst);
|
||||
return -EINVAL;
|
||||
}
|
||||
hdev = inst->core->device;
|
||||
|
||||
if (get_v4l2_codec(inst) != V4L2_PIX_FMT_VP8)
|
||||
return 0;
|
||||
|
||||
ctrl = get_ctrl(inst, V4L2_CID_MPEG_VIDC_VIDEO_VPX_ERROR_RESILIENCE);
|
||||
enable.enable = !!ctrl->val;
|
||||
|
||||
s_vpr_h(inst->sid, "%s: %d\n", __func__, enable.enable);
|
||||
rc = call_hfi_op(hdev, session_set_property, inst->session,
|
||||
HFI_PROPERTY_PARAM_VENC_VPX_ERROR_RESILIENCE_MODE, &enable,
|
||||
sizeof(enable));
|
||||
if (rc)
|
||||
s_vpr_e(inst->sid, "%s: set property failed\n", __func__);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
int msm_venc_set_video_signal_info(struct msm_vidc_inst *inst)
|
||||
{
|
||||
int rc = 0;
|
||||
|
|
@ -4098,10 +4007,6 @@ int msm_venc_set_dyn_qp(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl)
|
|||
qp.enable = QP_ENABLE_I | QP_ENABLE_P | QP_ENABLE_B;
|
||||
qp.layer_id = MSM_VIDC_ALL_LAYER_ID;
|
||||
|
||||
/* B frame QP is not supported for VP8. */
|
||||
if (get_v4l2_codec(inst) == V4L2_PIX_FMT_VP8)
|
||||
qp.enable &= ~QP_ENABLE_B;
|
||||
|
||||
s_vpr_h(inst->sid, "%s: %#x\n", __func__,
|
||||
ctrl->val);
|
||||
rc = call_hfi_op(hdev, session_set_property, inst->session,
|
||||
|
|
@ -4532,9 +4437,6 @@ int msm_venc_set_properties(struct msm_vidc_inst *inst)
|
|||
if (rc)
|
||||
goto exit;
|
||||
rc = msm_venc_set_hdr_info(inst);
|
||||
if (rc)
|
||||
goto exit;
|
||||
rc = msm_venc_set_vpx_error_resilience(inst);
|
||||
if (rc)
|
||||
goto exit;
|
||||
rc = msm_venc_set_nal_stream_format(inst);
|
||||
|
|
|
|||
|
|
@ -694,7 +694,7 @@ static unsigned long msm_vidc_calc_freq_iris2(struct msm_vidc_inst *inst,
|
|||
|
||||
codec = get_v4l2_codec(inst);
|
||||
base_cycles = inst->clk_data.entry->vsp_cycles;
|
||||
if (codec == V4L2_PIX_FMT_VP8 || codec == V4L2_PIX_FMT_VP9) {
|
||||
if (codec == V4L2_PIX_FMT_VP9) {
|
||||
vsp_cycles = div_u64(vsp_cycles * 170, 100);
|
||||
} else if (inst->entropy_mode == HFI_H264_ENTROPY_CABAC) {
|
||||
vsp_cycles = div_u64(vsp_cycles * 135, 100);
|
||||
|
|
@ -725,7 +725,7 @@ static unsigned long msm_vidc_calc_freq_iris2(struct msm_vidc_inst *inst,
|
|||
base_cycles = inst->clk_data.entry->vsp_cycles;
|
||||
vsp_cycles = fps * filled_len * 8;
|
||||
|
||||
if (codec == V4L2_PIX_FMT_VP8 || codec == V4L2_PIX_FMT_VP9) {
|
||||
if (codec == V4L2_PIX_FMT_VP9) {
|
||||
vsp_cycles = div_u64(vsp_cycles * 170, 100);
|
||||
} else if (inst->entropy_mode == HFI_H264_ENTROPY_CABAC) {
|
||||
vsp_cycles = div_u64(vsp_cycles * 135, 100);
|
||||
|
|
@ -1091,7 +1091,7 @@ int msm_vidc_decide_work_route_iris2(struct msm_vidc_inst *inst)
|
|||
width = f->fmt.pix_mp.width;
|
||||
|
||||
if (slice_mode == V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES ||
|
||||
codec == V4L2_PIX_FMT_VP8 || is_legacy_cbr) {
|
||||
is_legacy_cbr) {
|
||||
pdata.video_work_route = 1;
|
||||
}
|
||||
} else {
|
||||
|
|
@ -1269,8 +1269,7 @@ int msm_vidc_decide_work_mode_iris2(struct msm_vidc_inst *inst)
|
|||
width = inp_f->fmt.pix_mp.width;
|
||||
res_ok = !res_is_greater_than(width, height, 4096, 2160);
|
||||
if (res_ok &&
|
||||
(out_f->fmt.pix_mp.pixelformat == V4L2_PIX_FMT_VP8 ||
|
||||
inst->clk_data.low_latency_mode)) {
|
||||
(inst->clk_data.low_latency_mode)) {
|
||||
pdata.video_work_mode = HFI_WORKMODE_1;
|
||||
/* For WORK_MODE_1, set Low Latency mode by default */
|
||||
latency.enable = true;
|
||||
|
|
|
|||
|
|
@ -155,21 +155,6 @@ int msm_comm_hfi_to_v4l2(int id, int value, u32 sid)
|
|||
default:
|
||||
goto unknown_value;
|
||||
}
|
||||
case V4L2_CID_MPEG_VIDC_VIDEO_VP8_PROFILE_LEVEL:
|
||||
switch (value) {
|
||||
case HFI_VP8_LEVEL_VERSION_0:
|
||||
return V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_0;
|
||||
case HFI_VP8_LEVEL_VERSION_1:
|
||||
return V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_1;
|
||||
case HFI_VP8_LEVEL_VERSION_2:
|
||||
return V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_2;
|
||||
case HFI_VP8_LEVEL_VERSION_3:
|
||||
return V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_3;
|
||||
case HFI_LEVEL_UNKNOWN:
|
||||
return V4L2_MPEG_VIDC_VIDEO_VP8_UNUSED;
|
||||
default:
|
||||
goto unknown_value;
|
||||
}
|
||||
case V4L2_CID_MPEG_VIDEO_VP9_PROFILE:
|
||||
switch (value) {
|
||||
case HFI_VP9_PROFILE_P0:
|
||||
|
|
@ -400,28 +385,6 @@ int msm_comm_v4l2_to_hfi(int id, int value, u32 sid)
|
|||
default:
|
||||
return HFI_H264_ENTROPY_CABAC;
|
||||
}
|
||||
case V4L2_CID_MPEG_VIDEO_VP8_PROFILE:
|
||||
switch (value) {
|
||||
case V4L2_MPEG_VIDEO_VP8_PROFILE_0:
|
||||
return HFI_VP8_PROFILE_MAIN;
|
||||
default:
|
||||
return HFI_VP8_PROFILE_MAIN;
|
||||
}
|
||||
case V4L2_CID_MPEG_VIDC_VIDEO_VP8_PROFILE_LEVEL:
|
||||
switch (value) {
|
||||
case V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_0:
|
||||
return HFI_VP8_LEVEL_VERSION_0;
|
||||
case V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_1:
|
||||
return HFI_VP8_LEVEL_VERSION_1;
|
||||
case V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_2:
|
||||
return HFI_VP8_LEVEL_VERSION_2;
|
||||
case V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_3:
|
||||
return HFI_VP8_LEVEL_VERSION_3;
|
||||
case V4L2_MPEG_VIDC_VIDEO_VP8_UNUSED:
|
||||
return HFI_LEVEL_UNKNOWN;
|
||||
default:
|
||||
return HFI_LEVEL_UNKNOWN;
|
||||
}
|
||||
case V4L2_CID_MPEG_VIDEO_VP9_PROFILE:
|
||||
switch (value) {
|
||||
case V4L2_MPEG_VIDEO_VP9_PROFILE_0:
|
||||
|
|
@ -503,7 +466,6 @@ int msm_comm_get_v4l2_profile(int fourcc, int profile, u32 sid)
|
|||
return msm_comm_hfi_to_v4l2(
|
||||
V4L2_CID_MPEG_VIDEO_HEVC_PROFILE,
|
||||
profile, sid);
|
||||
case V4L2_PIX_FMT_VP8:
|
||||
case V4L2_PIX_FMT_VP9:
|
||||
case V4L2_PIX_FMT_MPEG2:
|
||||
return 0;
|
||||
|
|
@ -525,10 +487,6 @@ int msm_comm_get_v4l2_level(int fourcc, int level, u32 sid)
|
|||
return msm_comm_hfi_to_v4l2(
|
||||
V4L2_CID_MPEG_VIDEO_HEVC_LEVEL,
|
||||
level, sid);
|
||||
case V4L2_PIX_FMT_VP8:
|
||||
return msm_comm_hfi_to_v4l2(
|
||||
V4L2_CID_MPEG_VIDC_VIDEO_VP8_PROFILE_LEVEL,
|
||||
level, sid);
|
||||
case V4L2_PIX_FMT_VP9:
|
||||
case V4L2_PIX_FMT_MPEG2:
|
||||
return 0;
|
||||
|
|
@ -868,9 +826,6 @@ enum hal_video_codec get_hal_codec(int fourcc, u32 sid)
|
|||
case V4L2_PIX_FMT_MPEG2:
|
||||
codec = HAL_VIDEO_CODEC_MPEG2;
|
||||
break;
|
||||
case V4L2_PIX_FMT_VP8:
|
||||
codec = HAL_VIDEO_CODEC_VP8;
|
||||
break;
|
||||
case V4L2_PIX_FMT_VP9:
|
||||
codec = HAL_VIDEO_CODEC_VP9;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -57,11 +57,9 @@ static struct msm_vidc_codec_data default_codec_data[] = {
|
|||
static struct msm_vidc_codec_data lahaina_codec_data[] = {
|
||||
CODEC_ENTRY(V4L2_PIX_FMT_H264, MSM_VIDC_ENCODER, 25, 675, 320),
|
||||
CODEC_ENTRY(V4L2_PIX_FMT_HEVC, MSM_VIDC_ENCODER, 25, 675, 320),
|
||||
CODEC_ENTRY(V4L2_PIX_FMT_VP8, MSM_VIDC_ENCODER, 60, 675, 320),
|
||||
CODEC_ENTRY(V4L2_PIX_FMT_MPEG2, MSM_VIDC_DECODER, 25, 200, 200),
|
||||
CODEC_ENTRY(V4L2_PIX_FMT_H264, MSM_VIDC_DECODER, 25, 200, 200),
|
||||
CODEC_ENTRY(V4L2_PIX_FMT_HEVC, MSM_VIDC_DECODER, 25, 200, 200),
|
||||
CODEC_ENTRY(V4L2_PIX_FMT_VP8, MSM_VIDC_DECODER, 60, 200, 200),
|
||||
CODEC_ENTRY(V4L2_PIX_FMT_VP9, MSM_VIDC_DECODER, 60, 200, 200),
|
||||
};
|
||||
|
||||
|
|
@ -77,13 +75,11 @@ static struct msm_vidc_codec_data bengal_codec_data[] = {
|
|||
#define DEC HAL_VIDEO_DOMAIN_DECODER
|
||||
#define H264 HAL_VIDEO_CODEC_H264
|
||||
#define HEVC HAL_VIDEO_CODEC_HEVC
|
||||
#define VP8 HAL_VIDEO_CODEC_VP8
|
||||
#define VP9 HAL_VIDEO_CODEC_VP9
|
||||
#define MPEG2 HAL_VIDEO_CODEC_MPEG2
|
||||
#define DOMAINS_ALL (HAL_VIDEO_DOMAIN_ENCODER | HAL_VIDEO_DOMAIN_DECODER)
|
||||
#define CODECS_ALL (HAL_VIDEO_CODEC_H264 | HAL_VIDEO_CODEC_HEVC | \
|
||||
HAL_VIDEO_CODEC_VP8 | HAL_VIDEO_CODEC_VP9 | \
|
||||
HAL_VIDEO_CODEC_MPEG2)
|
||||
HAL_VIDEO_CODEC_VP9 | HAL_VIDEO_CODEC_MPEG2)
|
||||
|
||||
static struct msm_vidc_codec bengal_codecs[] = {
|
||||
/* {domain, codec} */
|
||||
|
|
@ -93,8 +89,8 @@ static struct msm_vidc_codec bengal_codecs[] = {
|
|||
|
||||
static struct msm_vidc_codec default_codecs[] = {
|
||||
/* {domain, codec} */
|
||||
{DEC, H264}, {DEC, HEVC}, {DEC, VP8}, {DEC, VP9}, {DEC, MPEG2},
|
||||
{ENC, H264}, {ENC, HEVC}, {ENC, VP8},
|
||||
{DEC, H264}, {DEC, HEVC}, {DEC, VP9}, {DEC, MPEG2},
|
||||
{ENC, H264}, {ENC, HEVC},
|
||||
};
|
||||
|
||||
static struct msm_vidc_codec_capability bengal_capabilities_v0[] = {
|
||||
|
|
@ -242,27 +238,14 @@ static struct msm_vidc_codec_capability lahaina_capabilities[] = {
|
|||
{CAP_I_FRAME_QP, ENC, H264|HEVC, 0, 51, 1, 10},
|
||||
{CAP_P_FRAME_QP, ENC, H264|HEVC, 0, 51, 1, 20},
|
||||
{CAP_B_FRAME_QP, ENC, H264|HEVC, 0, 51, 1, 20},
|
||||
{CAP_I_FRAME_QP, ENC, VP8|VP9, 0, 127, 1, 20},
|
||||
{CAP_P_FRAME_QP, ENC, VP8|VP9, 0, 127, 1, 40},
|
||||
{CAP_B_FRAME_QP, ENC, VP8|VP9, 0, 127, 1, 40},
|
||||
{CAP_I_FRAME_QP, ENC, VP9, 0, 127, 1, 20},
|
||||
{CAP_P_FRAME_QP, ENC, VP9, 0, 127, 1, 40},
|
||||
{CAP_B_FRAME_QP, ENC, VP9, 0, 127, 1, 40},
|
||||
/* 10 slices */
|
||||
{CAP_SLICE_BYTE, ENC, H264|HEVC, 1, 10, 1, 10},
|
||||
{CAP_SLICE_MB, ENC, H264|HEVC, 1, 10, 1, 10},
|
||||
{CAP_MAX_VIDEOCORES, DOMAINS_ALL, CODECS_ALL, 0, 1, 1, 1},
|
||||
|
||||
/* VP8 specific */
|
||||
{CAP_FRAME_WIDTH, ENC|DEC, VP8, 128, 4096, 1, 1920},
|
||||
{CAP_FRAME_HEIGHT, ENC|DEC, VP8, 128, 4096, 1, 1080},
|
||||
/* (4096 * 2304) / 256 */
|
||||
{CAP_MBS_PER_FRAME, ENC|DEC, VP8, 64, 36864, 1, 8160},
|
||||
/* ((4096 * 2304) / 256) * 120 */
|
||||
{CAP_MBS_PER_SECOND, ENC|DEC, VP8, 64, 4423680, 1, 244800},
|
||||
{CAP_BFRAME, ENC, VP8, 0, 0, 1, 0},
|
||||
{CAP_FRAMERATE, ENC, VP8, 1, 60, 1, 30},
|
||||
{CAP_FRAMERATE, DEC, VP8, 1, 120, 1, 30},
|
||||
{CAP_BITRATE, ENC, VP8, 1, 74000000, 1, 20000000},
|
||||
{CAP_BITRATE, DEC, VP8, 1, 100000000, 1, 20000000},
|
||||
|
||||
/* Mpeg2 decoder specific */
|
||||
{CAP_FRAME_WIDTH, DEC, MPEG2, 128, 1920, 1, 1920},
|
||||
{CAP_FRAME_HEIGHT, DEC, MPEG2, 128, 1920, 1, 1080},
|
||||
|
|
|
|||
|
|
@ -123,7 +123,6 @@ enum hal_video_codec {
|
|||
HAL_VIDEO_CODEC_SPARK = 0x00000200,
|
||||
HAL_VIDEO_CODEC_VP6 = 0x00000400,
|
||||
HAL_VIDEO_CODEC_VP7 = 0x00000800,
|
||||
HAL_VIDEO_CODEC_VP8 = 0x00001000,
|
||||
HAL_VIDEO_CODEC_HEVC = 0x00002000,
|
||||
HAL_VIDEO_CODEC_VP9 = 0x00004000,
|
||||
HAL_VIDEO_CODEC_HEVC_HYBRID = 0x80000000,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2012-2019, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2012-2020, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef __H_VIDC_HFI_HELPER_H__
|
||||
|
|
@ -71,7 +71,6 @@
|
|||
#define HFI_VIDEO_CODEC_H264 0x00000002
|
||||
#define HFI_VIDEO_CODEC_MPEG1 0x00000008
|
||||
#define HFI_VIDEO_CODEC_MPEG2 0x00000010
|
||||
#define HFI_VIDEO_CODEC_VP8 0x00001000
|
||||
#define HFI_VIDEO_CODEC_HEVC 0x00002000
|
||||
#define HFI_VIDEO_CODEC_VP9 0x00004000
|
||||
|
||||
|
|
@ -115,13 +114,6 @@
|
|||
#define HFI_MPEG2_LEVEL_ML 0x00000002
|
||||
#define HFI_MPEG2_LEVEL_HL 0x00000004
|
||||
|
||||
#define HFI_VP8_PROFILE_MAIN 0x00000001
|
||||
|
||||
#define HFI_VP8_LEVEL_VERSION_0 0x00000001
|
||||
#define HFI_VP8_LEVEL_VERSION_1 0x00000002
|
||||
#define HFI_VP8_LEVEL_VERSION_2 0x00000004
|
||||
#define HFI_VP8_LEVEL_VERSION_3 0x00000008
|
||||
|
||||
#define HFI_VP9_PROFILE_P0 0x00000001
|
||||
#define HFI_VP9_PROFILE_P2_10B 0x00000004
|
||||
|
||||
|
|
@ -326,8 +318,6 @@ struct hfi_buffer_info {
|
|||
(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x026)
|
||||
#define HFI_PROPERTY_PARAM_VENC_DISABLE_RC_TIMESTAMP \
|
||||
(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x027)
|
||||
#define HFI_PROPERTY_PARAM_VENC_VPX_ERROR_RESILIENCE_MODE \
|
||||
(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x029)
|
||||
#define HFI_PROPERTY_PARAM_VENC_HIER_B_MAX_NUM_ENH_LAYER \
|
||||
(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x02C)
|
||||
#define HFI_PROPERTY_PARAM_VENC_HIER_P_HYBRID_MODE \
|
||||
|
|
|
|||
Loading…
Reference in a new issue