mbox series

[RFC,00/12] Add support for HEVC and VP9 codecs in decoder

Message ID 20250305104335.3629945-1-quic_dikshita@quicinc.com (mailing list archive)
Headers show
Series Add support for HEVC and VP9 codecs in decoder | expand

Message

Dikshita Agarwal March 5, 2025, 10:43 a.m. UTC
Hi all,

This patch series adds initial support for the HEVC(H.265) and VP9
codecs in iris decoder. The objective of this work is to extend the 
decoder's capabilities to handle HEVC and VP9 codec streams,
including necessary format handling and buffer management.
In addition, the series also includes a set of fixes to address issues
identified during testing of these additional codecs.

I'm sharing this series as an RFC because compliance and conformance
testing are still in progress.
While initial functional tests show positive results, I would
appreciate early feedback on the design, implementation, and fixes
before moving to a formal submission.

I plan to submit a formal patch series after completing all compliance
checks. Meanwhile, any feedback or suggestion to improve this work are
very welcome.

Thanks,
Dikshita

Dikshita Agarwal (12):
  media: iris: Add HEVC and VP9 formats for decoder
  media: iris: Add platform capabilities for HEVC and VP9 decoders
  media: iris: Set mandatory properties for HEVC and VP9 decoders.
  media: iris: Add internal buffer calculation for HEVC and VP9 decoders
  media: iris: Skip destroying internal buffer if not dequeued
  media: iris: Update CAPTURE format info based on OUTPUT format
  media: iris: Add handling for corrupt and drop frames
  media: iris: Avoid updating frame size to firmware during reconfig
  media: iris: Avoid sending LAST flag multiple times
  media: iris: Send V4L2_BUF_FLAG_ERROR for buffers with 0 filled length
  media: iris: Fix handling of eos buffer during drain
  media: iris: Add handling for no show frames

 .../media/platform/qcom/iris/iris_buffer.c    |  22 +-
 drivers/media/platform/qcom/iris/iris_ctrls.c |  28 +-
 .../platform/qcom/iris/iris_hfi_common.h      |   1 +
 .../qcom/iris/iris_hfi_gen1_command.c         |  38 +-
 .../qcom/iris/iris_hfi_gen1_defines.h         |   4 +
 .../qcom/iris/iris_hfi_gen1_response.c        |  11 +
 .../qcom/iris/iris_hfi_gen2_command.c         | 129 +++++-
 .../qcom/iris/iris_hfi_gen2_defines.h         |   5 +
 .../qcom/iris/iris_hfi_gen2_response.c        |  56 ++-
 .../media/platform/qcom/iris/iris_instance.h  |   6 +
 .../platform/qcom/iris/iris_platform_common.h |  25 +-
 .../platform/qcom/iris/iris_platform_sm8250.c |   4 +-
 .../platform/qcom/iris/iris_platform_sm8550.c | 141 ++++++-
 drivers/media/platform/qcom/iris/iris_vb2.c   |   3 +-
 drivers/media/platform/qcom/iris/iris_vdec.c  |  80 +++-
 drivers/media/platform/qcom/iris/iris_vdec.h  |  11 +
 drivers/media/platform/qcom/iris/iris_vidc.c  |   3 -
 .../platform/qcom/iris/iris_vpu_buffer.c      | 397 +++++++++++++++++-
 .../platform/qcom/iris/iris_vpu_buffer.h      |  46 +-
 19 files changed, 931 insertions(+), 79 deletions(-)

Comments

Neil Armstrong March 5, 2025, 2:22 p.m. UTC | #1
Hi,

On 05/03/2025 11:43, Dikshita Agarwal wrote:
> Hi all,
> 
> This patch series adds initial support for the HEVC(H.265) and VP9
> codecs in iris decoder. The objective of this work is to extend the
> decoder's capabilities to handle HEVC and VP9 codec streams,
> including necessary format handling and buffer management.
> In addition, the series also includes a set of fixes to address issues
> identified during testing of these additional codecs.
> 
> I'm sharing this series as an RFC because compliance and conformance
> testing are still in progress.
> While initial functional tests show positive results, I would
> appreciate early feedback on the design, implementation, and fixes
> before moving to a formal submission.
> 
> I plan to submit a formal patch series after completing all compliance
> checks. Meanwhile, any feedback or suggestion to improve this work are
> very welcome.
> 
> Thanks,
> Dikshita
> 
> Dikshita Agarwal (12):
>    media: iris: Add HEVC and VP9 formats for decoder
>    media: iris: Add platform capabilities for HEVC and VP9 decoders
>    media: iris: Set mandatory properties for HEVC and VP9 decoders.
>    media: iris: Add internal buffer calculation for HEVC and VP9 decoders
>    media: iris: Skip destroying internal buffer if not dequeued
>    media: iris: Update CAPTURE format info based on OUTPUT format
>    media: iris: Add handling for corrupt and drop frames
>    media: iris: Avoid updating frame size to firmware during reconfig
>    media: iris: Avoid sending LAST flag multiple times
>    media: iris: Send V4L2_BUF_FLAG_ERROR for buffers with 0 filled length
>    media: iris: Fix handling of eos buffer during drain
>    media: iris: Add handling for no show frames

I should be better to move patches 1, 2 & 3 at the end, after the patches
adding support for specific hecv & h265 features, and please check that
none of the patches breaks h264 at any time to keep bisectability.

Neil

Neil

> 
>   .../media/platform/qcom/iris/iris_buffer.c    |  22 +-
>   drivers/media/platform/qcom/iris/iris_ctrls.c |  28 +-
>   .../platform/qcom/iris/iris_hfi_common.h      |   1 +
>   .../qcom/iris/iris_hfi_gen1_command.c         |  38 +-
>   .../qcom/iris/iris_hfi_gen1_defines.h         |   4 +
>   .../qcom/iris/iris_hfi_gen1_response.c        |  11 +
>   .../qcom/iris/iris_hfi_gen2_command.c         | 129 +++++-
>   .../qcom/iris/iris_hfi_gen2_defines.h         |   5 +
>   .../qcom/iris/iris_hfi_gen2_response.c        |  56 ++-
>   .../media/platform/qcom/iris/iris_instance.h  |   6 +
>   .../platform/qcom/iris/iris_platform_common.h |  25 +-
>   .../platform/qcom/iris/iris_platform_sm8250.c |   4 +-
>   .../platform/qcom/iris/iris_platform_sm8550.c | 141 ++++++-
>   drivers/media/platform/qcom/iris/iris_vb2.c   |   3 +-
>   drivers/media/platform/qcom/iris/iris_vdec.c  |  80 +++-
>   drivers/media/platform/qcom/iris/iris_vdec.h  |  11 +
>   drivers/media/platform/qcom/iris/iris_vidc.c  |   3 -
>   .../platform/qcom/iris/iris_vpu_buffer.c      | 397 +++++++++++++++++-
>   .../platform/qcom/iris/iris_vpu_buffer.h      |  46 +-
>   19 files changed, 931 insertions(+), 79 deletions(-)
>
Dikshita Agarwal March 6, 2025, 12:34 p.m. UTC | #2
On 3/5/2025 7:52 PM, neil.armstrong@linaro.org wrote:
> Hi,
> 
> On 05/03/2025 11:43, Dikshita Agarwal wrote:
>> Hi all,
>>
>> This patch series adds initial support for the HEVC(H.265) and VP9
>> codecs in iris decoder. The objective of this work is to extend the
>> decoder's capabilities to handle HEVC and VP9 codec streams,
>> including necessary format handling and buffer management.
>> In addition, the series also includes a set of fixes to address issues
>> identified during testing of these additional codecs.
>>
>> I'm sharing this series as an RFC because compliance and conformance
>> testing are still in progress.
>> While initial functional tests show positive results, I would
>> appreciate early feedback on the design, implementation, and fixes
>> before moving to a formal submission.
>>
>> I plan to submit a formal patch series after completing all compliance
>> checks. Meanwhile, any feedback or suggestion to improve this work are
>> very welcome.
>>
>> Thanks,
>> Dikshita
>>
>> Dikshita Agarwal (12):
>>    media: iris: Add HEVC and VP9 formats for decoder
>>    media: iris: Add platform capabilities for HEVC and VP9 decoders
>>    media: iris: Set mandatory properties for HEVC and VP9 decoders.
>>    media: iris: Add internal buffer calculation for HEVC and VP9 decoders
>>    media: iris: Skip destroying internal buffer if not dequeued
>>    media: iris: Update CAPTURE format info based on OUTPUT format
>>    media: iris: Add handling for corrupt and drop frames
>>    media: iris: Avoid updating frame size to firmware during reconfig
>>    media: iris: Avoid sending LAST flag multiple times
>>    media: iris: Send V4L2_BUF_FLAG_ERROR for buffers with 0 filled length
>>    media: iris: Fix handling of eos buffer during drain
>>    media: iris: Add handling for no show frames
> 
> I should be better to move patches 1, 2 & 3 at the end, after the patches
> adding support for specific hecv & h265 features, and please check that
> none of the patches breaks h264 at any time to keep bisectability.
> 
Noted.

Thanks,
Dikshita
> Neil
> 
> Neil
> 
>>
>>   .../media/platform/qcom/iris/iris_buffer.c    |  22 +-
>>   drivers/media/platform/qcom/iris/iris_ctrls.c |  28 +-
>>   .../platform/qcom/iris/iris_hfi_common.h      |   1 +
>>   .../qcom/iris/iris_hfi_gen1_command.c         |  38 +-
>>   .../qcom/iris/iris_hfi_gen1_defines.h         |   4 +
>>   .../qcom/iris/iris_hfi_gen1_response.c        |  11 +
>>   .../qcom/iris/iris_hfi_gen2_command.c         | 129 +++++-
>>   .../qcom/iris/iris_hfi_gen2_defines.h         |   5 +
>>   .../qcom/iris/iris_hfi_gen2_response.c        |  56 ++-
>>   .../media/platform/qcom/iris/iris_instance.h  |   6 +
>>   .../platform/qcom/iris/iris_platform_common.h |  25 +-
>>   .../platform/qcom/iris/iris_platform_sm8250.c |   4 +-
>>   .../platform/qcom/iris/iris_platform_sm8550.c | 141 ++++++-
>>   drivers/media/platform/qcom/iris/iris_vb2.c   |   3 +-
>>   drivers/media/platform/qcom/iris/iris_vdec.c  |  80 +++-
>>   drivers/media/platform/qcom/iris/iris_vdec.h  |  11 +
>>   drivers/media/platform/qcom/iris/iris_vidc.c  |   3 -
>>   .../platform/qcom/iris/iris_vpu_buffer.c      | 397 +++++++++++++++++-
>>   .../platform/qcom/iris/iris_vpu_buffer.h      |  46 +-
>>   19 files changed, 931 insertions(+), 79 deletions(-)
>>
>