Message ID | 20250408-iris-dec-hevc-vp9-v1-5-acd258778bd6@quicinc.com |
---|---|
State | New |
Headers | show |
Series | Add support for HEVC and VP9 codecs in decoder | expand |
On 08/04/2025 16:54, Dikshita Agarwal wrote: > Firmware sends buffers with 0 filled length which needs to be dropped, > to achieve the same, add V4L2_BUF_FLAG_ERROR to such buffers. > Also make sure: > - These 0 length buffers are not returned as result of flush. > - Its not a buffer with LAST flag enabled which will also have 0 filled > length. Any buffer with a zero length must be flagged as LAST, else that buffer should be discarded. Is this another bugfix ? Feels like one, processing redundant packets. > Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com> > --- > drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c b/drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c > index b75a01641d5d..91c5f04dd926 100644 > --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c > +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c > @@ -377,6 +377,12 @@ static int iris_hfi_gen2_handle_output_buffer(struct iris_inst *inst, > > buf->flags = iris_hfi_gen2_get_driver_buffer_flags(inst, hfi_buffer->flags); > > + if (!buf->data_size && inst->state == IRIS_INST_STREAMING && > + !(hfi_buffer->flags & HFI_BUF_FW_FLAG_LAST) && > + !(inst->sub_state & IRIS_INST_SUB_DRC)) { > + buf->flags |= V4L2_BUF_FLAG_ERROR; > + } > + Is this hypothetical or does it happen in real life ? > return 0; > } > > --- bod
diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c b/drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c index b75a01641d5d..91c5f04dd926 100644 --- a/drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c +++ b/drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c @@ -377,6 +377,12 @@ static int iris_hfi_gen2_handle_output_buffer(struct iris_inst *inst, buf->flags = iris_hfi_gen2_get_driver_buffer_flags(inst, hfi_buffer->flags); + if (!buf->data_size && inst->state == IRIS_INST_STREAMING && + !(hfi_buffer->flags & HFI_BUF_FW_FLAG_LAST) && + !(inst->sub_state & IRIS_INST_SUB_DRC)) { + buf->flags |= V4L2_BUF_FLAG_ERROR; + } + return 0; }
Firmware sends buffers with 0 filled length which needs to be dropped, to achieve the same, add V4L2_BUF_FLAG_ERROR to such buffers. Also make sure: - These 0 length buffers are not returned as result of flush. - Its not a buffer with LAST flag enabled which will also have 0 filled length. Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com> --- drivers/media/platform/qcom/iris/iris_hfi_gen2_response.c | 6 ++++++ 1 file changed, 6 insertions(+)