Re: [PATCH RFC 0/7] media: qcom: iris: add support for decoding 10bit formats

From: Dmitry Baryshkov

Date: Wed Apr 08 2026 - 20:02:58 EST


On Wed, Apr 08, 2026 at 06:43:53PM +0200, Neil Armstrong wrote:
> This adds the plumbing to support decoding HEVC and AV1
> streams into 10bit pixel formats, linear and compressed.
>
> This has only been tested on SM8650 with HEVC, and was inspired by
> Venus and the downstream vidc driver for the buffer
> calculations and HFI messages.
>
> I was unable to get 10bit decoding working with Gstreamer
> and ffmpeg, but v4l2-ctl works with:

Any particular errors? I assume Gstreamer needs to be taught about
Q10C. But P010 should (hopefully) work.

> v4l2-ctl --verbose --set-fmt-video-out=pixelformat=HEVC --set-fmt-video=pixelformat=P010 --stream-mmap --stream-out-mmap --stream-from-hdr Big_Buck_Bunny_1080_10s_30MB_main10.h265.hdr --stream-to out.P010
> v4l2-ctl --verbose --set-fmt-video-out=pixelformat=HEVC --set-fmt-video=pixelformat=Q10C --stream-mmap --stream-out-mmap --stream-from-hdr Big_Buck_Bunny_1080_10s_30MB_main10.h265.hdr --stream-to out.QC10
>
> The non-10bit decoding still works as before.
>
> With Big_Buck_Bunny_1080_10s_30MB reencoded in 10-bit profile
> and tranformed in v4l2 header format with [1]:
> ffmpeg -i Big_Buck_Bunny_1080_10s_30MB.h264 -pix_fmt yuv420p10le -c:v libx265 -crf 28 -x265-params profile=main10 Big_Buck_Bunny_1080_10s_30MB_main10.h265
> /path/to/mkhdr.sh Big_Buck_Bunny_1080_10s_30MB_main10.h265 raw Big_Buck_Bunny_1080_10s_30MB_main10.h265.hdr
>
> The frames correctness has been verified buy displaying them
> via Vulkan DMA_BUF import, including QC10C and QC08C.
>
> The support is probably incomplete for other platforms and
> I'm unsure what's required to conform to the V4L2 M2M stateless

stateful

> spec, especially since AFAIK the decoder doesn't support
> decoding 10bit streams in 8bit pixel format, thus the RFC state.
> Review is welcome !
>
> [1] https://github.com/superna9999/pyv4l2compliance
>
> Signed-off-by: Neil Armstrong <neil.armstrong@xxxxxxxxxx>
> ---
> Neil Armstrong (7):
> media: qcom: iris: add QC10C & P010 buffer size calculations
> media: qcom: iris: gen2: add support for 10bit decoding
> media: qcom: iris: add helpers for 8bit and 10bit formats
> media: qcom: iris: vdec: update size and stride calculations for 10bit formats
> media: qcom: iris: vdec: forbid g_fmt while waiting for first source change
> media: qcom: iris: vdec: update find_format to handle 8bit and 10bit formats
> media: qcom: iris: vdec: allow decoding into 10bit format
>
> drivers/media/platform/qcom/iris/iris_buffer.c | 81 +++++++++++++++++++++-
> .../platform/qcom/iris/iris_hfi_gen2_command.c | 71 ++++++++++++++++++-
> .../platform/qcom/iris/iris_hfi_gen2_defines.h | 1 +
> .../platform/qcom/iris/iris_hfi_gen2_response.c | 35 ++++++++--
> drivers/media/platform/qcom/iris/iris_instance.h | 2 +
> .../platform/qcom/iris/iris_platform_common.h | 1 +
> .../media/platform/qcom/iris/iris_platform_gen2.c | 3 +-
> drivers/media/platform/qcom/iris/iris_state.c | 6 ++
> drivers/media/platform/qcom/iris/iris_state.h | 1 +
> drivers/media/platform/qcom/iris/iris_utils.c | 16 ++++-
> drivers/media/platform/qcom/iris/iris_utils.h | 2 +
> drivers/media/platform/qcom/iris/iris_vdec.c | 70 +++++++++++++++++--
> drivers/media/platform/qcom/iris/iris_vidc.c | 14 +++-
> 13 files changed, 285 insertions(+), 18 deletions(-)
> ---
> base-commit: f3e6330d7fe42b204af05a2dbc68b379e0ad179e
> change-id: 20260408-topic-sm8x50-iris-10bit-decoding-074c3ac7975c
>
> Best regards,
> --
> Neil Armstrong <neil.armstrong@xxxxxxxxxx>
>

--
With best wishes
Dmitry