Re: [PATCH 00/18] coda988 video codec support
From: Nicolas Dufresne
Date: Tue Apr 08 2025 - 14:42:13 EST
Hi Philipp,
any plans to review this series ?
Nicolas
Le vendredi 14 mars 2025 à 18:29 +0300, Sergey Khimich a écrit :
> Hello!
>
> This is the implementation of the Chips&Media "CODA988" video codec
> support
> within v4l2 driver for coda. Support for the following codecs
> was implemented:
> * h264: decoder & encoder
> * h263: decoder & encoder
> * mpeg4: decoder & encoder
> * vp8dec: decoder
>
> Support for the following formates was implemented:
> * yuv420p(I420)
> * yvu420p(YV12)
> * NV12
> * NV21
>
> Also the following features and fixes were implemented for coda988:
> * special config for mem_ctrl
> * special config for encoder header (sps and pps)
> * special set profile_idc
> * special set RC config
> * special set QP
> * special set slice mode
> * special set Motion Extimation (ME)
> * v4l2_ctrl for h264 profile
> * v4l2_ctrl for h264 level
> * v4l2_ctrl for h.264 RC mode
> * v4l2_ctrl for h.264 skipFrame
> * v4l2_ctrl for h.264 i-frame min/max qp
> * v4l2_ctrl for h.264 p-frame min/max qp
> * v4l2_ctrl for h.264 entropy mode
> * v4l2_ctrl for h.264 8x8transform
> * v4l2_ctrl for h.264 i-frame period
> * v4l2_ctrl for h.264 Access Unit Delimiter(AUD)
> * v4l2_ctrl for h.264 me x/y search range
> * v4l2_ctrl for h.264 intra refresh period
> * v4l2_ctrl for h.263 intra/inter qp
> * v4l2_ctrl for h.263 min/max qp
> * v4l2_ctrl for mpeg4 min/max qp
>
> During adding support for "CODA988" we also did some extra work
> related to refactoring and improvement of generic part of C&M coda
> driver:
> * Improve error checking for probe, irq-handle and etc.
> * Update work with resets
> * Replace hard_irq by threaded_irq
> * Remove double setting of stop flag
> * Improve some prints
> * Fix loglevel to avoid performance failure
> * Fix support of MPEG4 levels
> * Fix setting gamma for h264enc
> * Update default velues of QP for mpeg4 I/P
> * Other minor fixes
>
> Sergey Khimich (18):
> media: coda: Add print if irq isn't present
> media: coda: Use get_array to work use multiple reset
> dt-bindings: media: coda: Fix resets count
> media: coda: Add check result after reset
> media: coda: using threaded_irq for 0 (bit) interrupt
> media: coda: Add reset device before getting interrupt
> media: coda: Add fake IRQ check
> media: coda: Add log to finish_encode if buffer is too small
> media: coda: Fix max h.264 level for CODA_DX6
> media: coda: Remove double setting of stop flag
> media: coda: Print size of encoded buff in other place
> media: coda: Fix loglevel for seq mismatch print
> media: coda: Fix support for all mpeg4 levels
> media: coda: Fix handling wrong format in coda_try_fmt
> media: coda: Use v4l2_ctrl to set gamma for h264enc
> media: coda: Update default velues of QP for mpeg4 I/P
> media: coda: Use preferred usleep_range than udelay
> media: coda: add support coda988 enc and dec
>
> .../devicetree/bindings/media/coda.yaml | 2 +-
> .../platform/chips-media/coda/coda-bit.c | 1114 ++++++++++++++-
> --
> .../platform/chips-media/coda/coda-common.c | 430 ++++++-
> .../platform/chips-media/coda/coda-gdi.c | 149 +++
> .../platform/chips-media/coda/coda-h264.c | 10 +
> .../media/platform/chips-media/coda/coda.h | 41 +-
> .../platform/chips-media/coda/coda_regs.h | 157 +++
> .../media/platform/chips-media/coda/trace.h | 16 +
> 8 files changed, 1703 insertions(+), 216 deletions(-)