|
@@ -23,6 +23,10 @@
|
|
#define MIN_CHROMA_QP_OFFSET -12
|
|
#define MIN_CHROMA_QP_OFFSET -12
|
|
#define MAX_CHROMA_QP_OFFSET 0
|
|
#define MAX_CHROMA_QP_OFFSET 0
|
|
#define MAX_BITRATE 220000000
|
|
#define MAX_BITRATE 220000000
|
|
|
|
+#define MIN_QP_10BIT -12
|
|
|
|
+#define MIN_QP_8BIT 0
|
|
|
|
+#define MAX_QP 51
|
|
|
|
+#define DEFAULT_QP 20
|
|
|
|
|
|
#define UBWC_CONFIG(mc, ml, hbb, bs1, bs2, bs3, bsp) \
|
|
#define UBWC_CONFIG(mc, ml, hbb, bs1, bs2, bs3, bsp) \
|
|
{ \
|
|
{ \
|
|
@@ -115,7 +119,18 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|
MSM_VIDC_FMT_NV12C,
|
|
MSM_VIDC_FMT_NV12C,
|
|
BIT(MSM_VIDC_FMT_NV12) | BIT(MSM_VIDC_FMT_NV21) | BIT(MSM_VIDC_FMT_NV12C),
|
|
BIT(MSM_VIDC_FMT_NV12) | BIT(MSM_VIDC_FMT_NV21) | BIT(MSM_VIDC_FMT_NV12C),
|
|
MSM_VIDC_FMT_NV12C},
|
|
MSM_VIDC_FMT_NV12C},
|
|
- {PIX_FMTS, ENC|DEC, HEVC,
|
|
|
|
|
|
+ {PIX_FMTS, ENC, HEVC,
|
|
|
|
+ MSM_VIDC_FMT_NV12,
|
|
|
|
+ MSM_VIDC_FMT_TP10C,
|
|
|
|
+ BIT(MSM_VIDC_FMT_NV12) | BIT(MSM_VIDC_FMT_NV21) | BIT(MSM_VIDC_FMT_NV12C ) |
|
|
|
|
+ BIT(MSM_VIDC_FMT_P010) | BIT(MSM_VIDC_FMT_TP10C),
|
|
|
|
+ MSM_VIDC_FMT_NV12C,
|
|
|
|
+ 0, 0,
|
|
|
|
+ CAP_FLAG_ROOT,
|
|
|
|
+ {0},
|
|
|
|
+ {PROFILE, MIN_FRAME_QP, MAX_FRAME_QP, I_FRAME_QP}},
|
|
|
|
+
|
|
|
|
+ {PIX_FMTS, DEC, HEVC,
|
|
MSM_VIDC_FMT_NV12,
|
|
MSM_VIDC_FMT_NV12,
|
|
MSM_VIDC_FMT_TP10C,
|
|
MSM_VIDC_FMT_TP10C,
|
|
BIT(MSM_VIDC_FMT_NV12) | BIT(MSM_VIDC_FMT_NV21) | BIT(MSM_VIDC_FMT_NV12C ) |
|
|
BIT(MSM_VIDC_FMT_NV12) | BIT(MSM_VIDC_FMT_NV21) | BIT(MSM_VIDC_FMT_NV12C ) |
|
|
@@ -294,7 +309,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|
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_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
- {0}, {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC},
|
|
|
|
|
|
+ {0}, {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP},
|
|
msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
|
msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
|
|
|
|
|
{LOSSLESS, ENC, HEVC,
|
|
{LOSSLESS, ENC, HEVC,
|
|
@@ -441,68 +456,85 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|
0, 1000, 500, 0,
|
|
0, 1000, 500, 0,
|
|
V4L2_CID_MPEG_VIDEO_VBV_DELAY},
|
|
V4L2_CID_MPEG_VIDEO_VBV_DELAY},
|
|
|
|
|
|
- // TODO: QP for 10 bits and review QP caps
|
|
|
|
|
|
+ {MIN_FRAME_QP, ENC, H264,
|
|
|
|
+ MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
|
|
|
+ V4L2_CID_MPEG_VIDEO_H264_MIN_QP,
|
|
|
|
+ HFI_PROP_MIN_QP_PACKED,
|
|
|
|
+ CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
|
|
|
|
+ {0}, {0},
|
|
|
|
+ NULL, msm_vidc_set_min_qp},
|
|
|
|
|
|
{MIN_FRAME_QP, ENC, HEVC,
|
|
{MIN_FRAME_QP, ENC, HEVC,
|
|
- 0, 51, 1, 20,
|
|
|
|
|
|
+ MIN_QP_10BIT, MAX_QP, 1, MIN_QP_10BIT,
|
|
V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
|
|
V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,
|
|
HFI_PROP_MIN_QP_PACKED,
|
|
HFI_PROP_MIN_QP_PACKED,
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
-
|
|
|
|
- {MIN_FRAME_QP, ENC, H264,
|
|
|
|
- 0, 51, 1, 20,
|
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_MIN_QP,
|
|
|
|
- HFI_PROP_MIN_QP_PACKED,
|
|
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
|
|
+ CAP_FLAG_OUTPUT_PORT,
|
|
|
|
+ {PIX_FMTS}, {0},
|
|
|
|
+ msm_vidc_adjust_hevc_min_qp, msm_vidc_set_min_qp},
|
|
|
|
|
|
{I_FRAME_MIN_QP, ENC, H264,
|
|
{I_FRAME_MIN_QP, ENC, H264,
|
|
- 0, 51, 1, 20,
|
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP,
|
|
|
|
- HFI_PROP_MIN_QP_PACKED,
|
|
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
|
|
+ MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
|
|
|
+ V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP},
|
|
|
|
+
|
|
|
|
+ {I_FRAME_MIN_QP, ENC, HEVC,
|
|
|
|
+ MIN_QP_10BIT, MAX_QP, 1, MIN_QP_10BIT,
|
|
|
|
+ V4L2_CID_MPEG_VIDC_HEVC_I_FRAME_MIN_QP},
|
|
|
|
|
|
{P_FRAME_MIN_QP, ENC, H264,
|
|
{P_FRAME_MIN_QP, ENC, H264,
|
|
- 0, 51, 1, 20,
|
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP,
|
|
|
|
- HFI_PROP_MIN_QP_PACKED,
|
|
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
|
|
+ MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
|
|
|
+ V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP},
|
|
|
|
|
|
- // confirm codec
|
|
|
|
- {B_FRAME_MIN_QP, ENC, HEVC|H264,
|
|
|
|
- 0, 51, 1, 20,
|
|
|
|
- V4L2_CID_MPEG_VIDC_B_FRAME_MIN_QP,
|
|
|
|
- HFI_PROP_MIN_QP_PACKED,
|
|
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
|
|
+ {P_FRAME_MIN_QP, ENC, HEVC,
|
|
|
|
+ MIN_QP_10BIT, MAX_QP, 1, MIN_QP_10BIT,
|
|
|
|
+ V4L2_CID_MPEG_VIDC_HEVC_P_FRAME_MIN_QP},
|
|
|
|
+
|
|
|
|
+ {B_FRAME_MIN_QP, ENC, H264,
|
|
|
|
+ MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT,
|
|
|
|
+ V4L2_CID_MPEG_VIDC_B_FRAME_MIN_QP},
|
|
|
|
+
|
|
|
|
+ {B_FRAME_MIN_QP, ENC, HEVC,
|
|
|
|
+ MIN_QP_10BIT, MAX_QP, 1, MIN_QP_10BIT,
|
|
|
|
+ V4L2_CID_MPEG_VIDC_B_FRAME_MIN_QP},
|
|
|
|
|
|
{MAX_FRAME_QP, ENC, H264,
|
|
{MAX_FRAME_QP, ENC, H264,
|
|
- 0, 51, 1, 20,
|
|
|
|
|
|
+ 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_ROOT | CAP_FLAG_OUTPUT_PORT,
|
|
|
|
+ {0}, {0},
|
|
|
|
+ NULL, msm_vidc_set_min_qp},
|
|
|
|
|
|
{MAX_FRAME_QP, ENC, HEVC,
|
|
{MAX_FRAME_QP, ENC, HEVC,
|
|
- 0, 51, 1, 20,
|
|
|
|
|
|
+ MIN_QP_10BIT, MAX_QP, 1, MAX_QP,
|
|
V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP,
|
|
V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP,
|
|
HFI_PROP_MAX_QP_PACKED,
|
|
HFI_PROP_MAX_QP_PACKED,
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
|
|
+ CAP_FLAG_OUTPUT_PORT,
|
|
|
|
+ {PIX_FMTS}, {0},
|
|
|
|
+ msm_vidc_adjust_hevc_max_qp, msm_vidc_set_min_qp},
|
|
|
|
|
|
{I_FRAME_MAX_QP, ENC, H264,
|
|
{I_FRAME_MAX_QP, ENC, H264,
|
|
- 0, 51, 1, 20,
|
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP,
|
|
|
|
- HFI_PROP_MAX_QP_PACKED,
|
|
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
|
|
+ MIN_QP_8BIT, MAX_QP, 1, MAX_QP,
|
|
|
|
+ V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP},
|
|
|
|
+
|
|
|
|
+ {I_FRAME_MAX_QP, ENC, HEVC,
|
|
|
|
+ MIN_QP_10BIT, MAX_QP, 1, MAX_QP,
|
|
|
|
+ V4L2_CID_MPEG_VIDC_HEVC_I_FRAME_MAX_QP},
|
|
|
|
|
|
{P_FRAME_MAX_QP, ENC, H264,
|
|
{P_FRAME_MAX_QP, ENC, H264,
|
|
- 0, 51, 1, 20,
|
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP,
|
|
|
|
- HFI_PROP_MAX_QP_PACKED,
|
|
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
|
|
+ MIN_QP_8BIT, MAX_QP, 1, MAX_QP,
|
|
|
|
+ V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP},
|
|
|
|
|
|
- {B_FRAME_MAX_QP, ENC, HEVC|H264,
|
|
|
|
- 0, 51, 1, 20,
|
|
|
|
- V4L2_CID_MPEG_VIDC_B_FRAME_MAX_QP,
|
|
|
|
- HFI_PROP_MAX_QP_PACKED,
|
|
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
|
|
+ {P_FRAME_MAX_QP, ENC, HEVC,
|
|
|
|
+ MIN_QP_10BIT, MAX_QP, 1, MAX_QP,
|
|
|
|
+ V4L2_CID_MPEG_VIDC_HEVC_P_FRAME_MAX_QP},
|
|
|
|
+
|
|
|
|
+ {B_FRAME_MAX_QP, ENC, H264,
|
|
|
|
+ MIN_QP_8BIT, MAX_QP, 1, MAX_QP,
|
|
|
|
+ V4L2_CID_MPEG_VIDC_B_FRAME_MAX_QP},
|
|
|
|
+
|
|
|
|
+ {B_FRAME_MAX_QP, ENC, HEVC,
|
|
|
|
+ MIN_QP_10BIT, MAX_QP, 1, MAX_QP,
|
|
|
|
+ V4L2_CID_MPEG_VIDC_B_FRAME_MAX_QP},
|
|
|
|
|
|
{HEVC_HIER_QP, ENC, HEVC,
|
|
{HEVC_HIER_QP, ENC, HEVC,
|
|
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
@@ -511,50 +543,39 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|
HFI_PROP_QP_PACKED,
|
|
HFI_PROP_QP_PACKED,
|
|
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
|
|
- /*
|
|
|
|
- * HEVC I_MIN_QP, I_MAX_QP, P_MIN_QP, P_MAX_QP, B_MIN_QP, B_MAX_QP are missing
|
|
|
|
- */
|
|
|
|
{I_FRAME_QP, ENC, HEVC,
|
|
{I_FRAME_QP, ENC, HEVC,
|
|
- 0, 51, 1, 10,
|
|
|
|
|
|
+ MIN_QP_10BIT, MAX_QP, 1, DEFAULT_QP,
|
|
V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP,
|
|
V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP,
|
|
HFI_PROP_QP_PACKED,
|
|
HFI_PROP_QP_PACKED,
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
|
|
+ CAP_FLAG_OUTPUT_PORT,
|
|
|
|
+ {PIX_FMTS, BITRATE_MODE}, {0},
|
|
|
|
+ msm_vidc_adjust_hevc_frame_qp, msm_vidc_set_frame_qp},
|
|
|
|
|
|
{I_FRAME_QP, ENC, H264,
|
|
{I_FRAME_QP, ENC, H264,
|
|
- 0, 51, 1, 10,
|
|
|
|
|
|
+ MIN_QP_8BIT, MAX_QP, 1, DEFAULT_QP,
|
|
V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP,
|
|
V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP,
|
|
HFI_PROP_QP_PACKED,
|
|
HFI_PROP_QP_PACKED,
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
-
|
|
|
|
- {I_FRAME_QP, ENC, VP9, 0, 127, 1, 20},
|
|
|
|
|
|
+ CAP_FLAG_OUTPUT_PORT,
|
|
|
|
+ {BITRATE_MODE}, {0},
|
|
|
|
+ NULL, msm_vidc_set_frame_qp},
|
|
|
|
|
|
{P_FRAME_QP, ENC, HEVC,
|
|
{P_FRAME_QP, ENC, HEVC,
|
|
- 0, 51, 1, 20,
|
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP,
|
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
|
|
+ MIN_QP_10BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
|
+ V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP},
|
|
|
|
|
|
{P_FRAME_QP, ENC, H264,
|
|
{P_FRAME_QP, ENC, H264,
|
|
- 0, 51, 1, 20,
|
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP,
|
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
|
|
+ MIN_QP_8BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
|
+ V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP},
|
|
|
|
|
|
{P_FRAME_QP, ENC, VP9, 0, 127, 1, 40},
|
|
{P_FRAME_QP, ENC, VP9, 0, 127, 1, 40},
|
|
|
|
|
|
{B_FRAME_QP, ENC, HEVC,
|
|
{B_FRAME_QP, ENC, HEVC,
|
|
- 0, 51, 1, 20,
|
|
|
|
- V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP,
|
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
|
|
+ MIN_QP_10BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
|
+ V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP},
|
|
|
|
|
|
{B_FRAME_QP, ENC, H264,
|
|
{B_FRAME_QP, ENC, H264,
|
|
- 0, 51, 1, 20,
|
|
|
|
- V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP,
|
|
|
|
- HFI_PROP_QP_PACKED,
|
|
|
|
- CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT},
|
|
|
|
-
|
|
|
|
- {B_FRAME_QP, ENC, VP9, 0, 127, 1, 40},
|
|
|
|
|
|
+ MIN_QP_8BIT, MAX_QP, 1, DEFAULT_QP,
|
|
|
|
+ V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP},
|
|
|
|
|
|
{L0_QP, ENC, HEVC,
|
|
{L0_QP, ENC, HEVC,
|
|
0, 51, 1, 20,
|
|
0, 51, 1, 20,
|