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>
Этот коммит содержится в:

коммит произвёл
Gerrit - the friendly Code Review server

родитель
b297e04dee
Коммит
4387226f98
@@ -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.
|
||||
|
Ссылка в новой задаче
Block a user