Hi all, Here is an RFC to support VP8 encoding using Hantro H1 hardware of STM32MP25 SoCs (Verisilicon VC8000NanoE IP). This work is derived from work done to support Rockchip RK3399 VPU2 in RFC [1] with a reshuffling of registers to match H1 register set. This has been tested on STM32MP257F-EV1 evaluation board using GStreamer userspace [2]: gst-launch-1.0 videotestsrc num-buffers=500 ! video/x-raw,width=640,height=480 \ ! v4l2slvp8enc ! queue ! matroskamux ! filesink location=test_vp8.mkv For the sake of simplicity I have embedded here the RFC [1] before the changes related to this exact RFC, all rebased on v6.6 + STM32MP25 hardware codecs support [3]. [1] https://lwn.net/ml/linux-media/20230309125651.23911-1-andrzej.p@xxxxxxxxxxxxx/ [2] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3736 [3] https://patchwork.kernel.org/project/linux-media/list/?series=789861 Best regards, Hugues. =========== = history = =========== version 2: - Fix send-mail recipients version 1: - Initial submission Andrzej Pietrasiewicz (2): media: uapi: Add VP8 stateless encoder controls media: hantro: add VP8 encode support for Rockchip RK3399 VPU2 Hugues Fruchet (4): media: hantro: add h1 vp8 encode support media: hantro: add VP8 encode support for STM32MP25 VENC media: hantro: h1: NV12 single-plane support media: hantro: add NV12 single-plane support for STM32MP25 VENC drivers/media/platform/verisilicon/Makefile | 3 + drivers/media/platform/verisilicon/hantro.h | 10 + .../platform/verisilicon/hantro_boolenc.c | 69 + .../platform/verisilicon/hantro_boolenc.h | 21 + .../media/platform/verisilicon/hantro_drv.c | 15 +- .../platform/verisilicon/hantro_h1_jpeg_enc.c | 42 +- .../platform/verisilicon/hantro_h1_regs.h | 71 +- .../platform/verisilicon/hantro_h1_vp8_enc.c | 1589 +++++++++++++++++ .../media/platform/verisilicon/hantro_hw.h | 93 + .../media/platform/verisilicon/hantro_v4l2.c | 5 +- .../media/platform/verisilicon/hantro_vp8.c | 118 ++ .../verisilicon/rockchip_vpu2_hw_vp8_enc.c | 1574 ++++++++++++++++ .../platform/verisilicon/rockchip_vpu2_regs.h | 1 + .../platform/verisilicon/rockchip_vpu_hw.c | 23 +- .../platform/verisilicon/stm32mp25_venc_hw.c | 35 +- drivers/media/v4l2-core/v4l2-ctrls-core.c | 13 + drivers/media/v4l2-core/v4l2-ctrls-defs.c | 5 + include/media/v4l2-ctrls.h | 2 + include/uapi/linux/v4l2-controls.h | 91 + include/uapi/linux/videodev2.h | 3 + 20 files changed, 3755 insertions(+), 28 deletions(-) create mode 100644 drivers/media/platform/verisilicon/hantro_boolenc.c create mode 100644 drivers/media/platform/verisilicon/hantro_boolenc.h create mode 100644 drivers/media/platform/verisilicon/hantro_h1_vp8_enc.c create mode 100644 drivers/media/platform/verisilicon/rockchip_vpu2_hw_vp8_enc.c -- 2.25.1