video: driver: Add support to set default fps

Add support to set default fps to video fw.

Change-Id: I5074b5379c8bca273e098a3375f2c949b0656ae8
Signed-off-by: Akshata Sahukar <asahukar@codeaurora.org>
Этот коммит содержится в:
Akshata Sahukar
2021-03-02 16:32:14 -08:00
коммит произвёл Gerrit - the friendly Code Review server
родитель b297e04dee
Коммит 4387226f98
3 изменённых файлов: 18 добавлений и 13 удалений

Просмотреть файл

@@ -178,7 +178,12 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
{FRAME_RATE, ENC, CODECS_ALL,
(MINIMUM_FPS << 16), (MAXIMUM_FPS << 16),
1, (DEFAULT_FPS << 16)},
1, (DEFAULT_FPS << 16),
0,
HFI_PROP_FRAME_RATE,
CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT,
{0}, {0},
NULL, msm_vidc_set_q16},
{FRAME_RATE, DEC, CODECS_ALL,
(MINIMUM_FPS << 16), (MAXIMUM_FPS << 16),

Просмотреть файл

@@ -2091,20 +2091,20 @@ int msm_vdec_s_param(struct msm_vidc_inst *inst,
if (s_parm->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
timeperframe = &s_parm->parm.output.timeperframe;
max_rate = capability->cap[FRAME_RATE].max;
default_rate = capability->cap[FRAME_RATE].value;
max_rate = capability->cap[FRAME_RATE].max >> 16;
default_rate = capability->cap[FRAME_RATE].value >> 16;
is_frame_rate = true;
} else {
timeperframe = &s_parm->parm.capture.timeperframe;
max_rate = capability->cap[OPERATING_RATE].value;
default_rate = capability->cap[OPERATING_RATE].value;
max_rate = capability->cap[OPERATING_RATE].max;
default_rate = capability->cap[OPERATING_RATE].value >> 16;
}
if (!timeperframe->denominator || !timeperframe->numerator) {
i_vpr_e(inst,
"%s: invalid rate for type %u\n",
__func__, s_parm->type);
input_rate = default_rate >> 16;
input_rate = default_rate;
goto set_default;
}
@@ -2124,7 +2124,7 @@ int msm_vdec_s_param(struct msm_vidc_inst *inst,
/* Check max allowed rate */
if (input_rate > max_rate) {
i_vpr_e(inst,
"%s: Unsupported rate %u, max_fps %u, type: %u\n",
"%s: Unsupported rate %llu, max_fps %u, type: %u\n",
__func__, input_rate, max_rate, s_parm->type);
rc = -ENOTSUPP;
goto exit;

Просмотреть файл

@@ -1547,19 +1547,19 @@ int msm_venc_s_param(struct msm_vidc_inst *inst,
if (s_parm->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
timeperframe = &s_parm->parm.output.timeperframe;
max_rate = capability->cap[OPERATING_RATE].max;
default_rate = capability->cap[OPERATING_RATE].value;
default_rate = capability->cap[OPERATING_RATE].value >> 16;
} else {
timeperframe = &s_parm->parm.capture.timeperframe;
is_frame_rate = true;
max_rate = capability->cap[FRAME_RATE].value;
default_rate = capability->cap[FRAME_RATE].value;
max_rate = capability->cap[FRAME_RATE].max >> 16;
default_rate = capability->cap[FRAME_RATE].value >> 16;
}
if (!timeperframe->denominator || !timeperframe->numerator) {
i_vpr_e(inst,
"%s: invalid rate for type %u\n",
__func__, s_parm->type);
input_rate = default_rate >> 16;
input_rate = default_rate;
goto set_default;
}
@@ -1579,7 +1579,7 @@ int msm_venc_s_param(struct msm_vidc_inst *inst,
/* Check max allowed rate */
if (input_rate > max_rate) {
i_vpr_e(inst,
"%s: Unsupported rate %u, max_fps %u, type: %u\n",
"%s: Unsupported rate %llu, max_fps %u, type: %u\n",
__func__, input_rate, max_rate, s_parm->type);
rc = -ENOTSUPP;
goto exit;
@@ -1598,7 +1598,7 @@ set_default:
}
/*
* In static case, frame rate is set during via
* In static case, frame rate is set via
* inst database set function mentioned in
* FRAME_RATE cap id.
* In dynamic case, frame rate is set like below.