video: driver: Add support for CQ bitrate mode
Add CQ bitrate mode support. Also add related constant quality control support. Change-Id: I415423e76dc855a7a72e1b68062b9d49433f3ed3 Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
Bu işleme şunda yer alıyor:
@@ -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,
|
||||
|
Yeni konuda referans
Bir kullanıcı engelle