|
@@ -27,6 +27,7 @@
|
|
|
#define MIN_QP_8BIT 0
|
|
|
#define MAX_QP 51
|
|
|
#define DEFAULT_QP 20
|
|
|
+#define MAX_CONSTANT_QUALITY 100
|
|
|
|
|
|
#define UBWC_CONFIG(mc, ml, hbb, bs1, bs2, bs3, bsp) \
|
|
|
{ \
|
|
@@ -299,17 +300,32 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|
|
{0}, {0},
|
|
|
NULL, msm_vidc_set_u32},
|
|
|
|
|
|
- {BITRATE_MODE, ENC, CODECS_ALL,
|
|
|
+ {BITRATE_MODE, ENC, H264,
|
|
|
V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
|
|
V4L2_MPEG_VIDEO_BITRATE_MODE_CBR,
|
|
|
- /* TODO: CQ. For more info: go/videogki */
|
|
|
BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_VBR) |
|
|
|
BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CBR),
|
|
|
V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
|
|
V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
|
|
HFI_PROP_RATE_CONTROL,
|
|
|
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
- {0}, {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP},
|
|
|
+ {0},
|
|
|
+ {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP},
|
|
|
+ msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
|
|
+
|
|
|
+ {BITRATE_MODE, ENC, HEVC,
|
|
|
+ V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
|
|
+ V4L2_MPEG_VIDEO_BITRATE_MODE_CQ,
|
|
|
+ BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_VBR) |
|
|
|
+ BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CBR) |
|
|
|
+ BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CQ),
|
|
|
+ V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
|
|
+ V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
|
|
|
+ HFI_PROP_RATE_CONTROL,
|
|
|
+ CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
|
|
|
+ {0},
|
|
|
+ {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC,
|
|
|
+ I_FRAME_QP, CONSTANT_QUALITY},
|
|
|
msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum},
|
|
|
|
|
|
{LOSSLESS, ENC, HEVC,
|
|
@@ -319,17 +335,22 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
|
|
|
|
|
{FRAME_SKIP_MODE, ENC, CODECS_ALL,
|
|
|
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
- 1, V4L2_MPEG_MSM_VIDC_DISABLE},
|
|
|
- /* TODO(AS): uncomment once below v4l2 id is
|
|
|
- * available (post 5.4 kernel)
|
|
|
- */
|
|
|
- //V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE},
|
|
|
+ 1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
|
|
+ V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE},
|
|
|
|
|
|
{FRAME_RC_ENABLE, ENC, CODECS_ALL,
|
|
|
V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
1, V4L2_MPEG_MSM_VIDC_ENABLE,
|
|
|
V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE},
|
|
|
|
|
|
+ {CONSTANT_QUALITY, ENC, HEVC,
|
|
|
+ 1, MAX_CONSTANT_QUALITY, 1, 90,
|
|
|
+ V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY,
|
|
|
+ HFI_PROP_CONSTANT_QUALITY,
|
|
|
+ CAP_FLAG_OUTPUT_PORT,
|
|
|
+ {BITRATE_MODE}, {0},
|
|
|
+ NULL, msm_vidc_set_constant_quality},
|
|
|
+
|
|
|
// TODO: GOP dependencies
|
|
|
{GOP_SIZE, ENC, CODECS_ALL,
|
|
|
0, INT_MAX, 1, 2 * DEFAULT_FPS - 1,
|