diff options
author | Loic Poulain <loic.poulain@linaro.org> | 2019-09-04 11:45:19 +0200 |
---|---|---|
committer | Loic Poulain <loic.poulain@linaro.org> | 2019-09-11 16:43:45 +0200 |
commit | cfdd5dcc5327637e2979688c17e3d9bb93f8e5f2 (patch) | |
tree | 77d4b3d6e0aa1a4575669971748ce04fc6cadd8d | |
parent | 0774fa4639c5238562bf10020d21173713029b90 (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.c | 8 |
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) |