aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoic Poulain <loic.poulain@linaro.org>2019-09-04 11:45:19 +0200
committerLoic Poulain <loic.poulain@linaro.org>2019-09-11 16:43:45 +0200
commitcfdd5dcc5327637e2979688c17e3d9bb93f8e5f2 (patch)
tree77d4b3d6e0aa1a4575669971748ce04fc6cadd8d
parent0774fa4639c5238562bf10020d21173713029b90 (diff)
media: venus: venc: Fix framerate/frameinterval
Venus encoder driver reports supported frame intervals values as FRAMERATE_FACTOR multiple. The frame interval numerator and denominator need to be reported in the same way. With current driver, the following values are reported: FRAME_FACTOR = 65535 min-frameinterval = 65535 / 120 max-frameinterval = 65535 / 1 This causes userspace application (e.g gstreamer) failures because of the wrong frame interval limits. Fix that. Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
-rw-r--r--drivers/media/platform/qcom/venus/venc.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/media/platform/qcom/venus/venc.c b/drivers/media/platform/qcom/venus/venc.c
index a7c09c6f403c5..b8533ea259053 100644
--- a/drivers/media/platform/qcom/venus/venc.c
+++ b/drivers/media/platform/qcom/venus/venc.c
@@ -605,9 +605,9 @@ static int venc_enum_frameintervals(struct file *file, void *fh,
return -EINVAL;
fival->stepwise.min.numerator = FRAMERATE_FACTOR;
- fival->stepwise.min.denominator = frate_max(inst);
+ fival->stepwise.min.denominator = frate_max(inst) * FRAMERATE_FACTOR;
fival->stepwise.max.numerator = FRAMERATE_FACTOR;
- fival->stepwise.max.denominator = frate_min(inst);
+ fival->stepwise.max.denominator = frate_min(inst) * FRAMERATE_FACTOR;
fival->stepwise.step.numerator = 1;
fival->stepwise.step.denominator = 1;
@@ -669,8 +669,8 @@ static int venc_set_properties(struct venus_inst *inst)
ptype = HFI_PROPERTY_CONFIG_FRAME_RATE;
frate.buffer_type = HFI_BUFFER_OUTPUT;
frate.framerate = framerate;
- if (frate.framerate > frate_max(inst))
- frate.framerate = frate_max(inst);
+ if (frate.framerate > frate_max(inst) * FRAMERATE_FACTOR)
+ frate.framerate = frate_max(inst) * FRAMERATE_FACTOR;
ret = hfi_session_set_property(inst, ptype, &frate);
if (ret)