Encoding DMA Buf with BGRx:0x0100000000000001 in h264 using vaapi

Victor Jaquez vjaquez at igalia.com
Tue Nov 7 11:46:36 UTC 2023


On Fri, 03 Nov 2023 at 15:46, xaterus--- via gstreamer-devel wrote:
> With great interest I have read this article about Gstreamer DMABuf
> modifier negotiation in
> GStreamer(https://blogs.igalia.com/vjaquez/2023/08/08/dmabuf-modifier-negotiation-in-gstreamer/).
> 
> So I want to encode an DMA Buf with the format BGRx:0x0100000000000001
> into a h264 video stream using the VAAPI with the GStreamer VA Plugin.
> 
> Using gst-inspect on vah264enc I can see I need to convert it to:
>       video/x-raw(memory:DMABuf)
>                   width: [ 32, 4096 ]
>                  height: [ 32, 4096 ]
>                  format: DMA_DRM
>              drm-format: NV12:0x0100000000000002
> 
> 
> So I thought about using   vapostproc to convert it. So using
> gst-inspect again I found out that: the src pad of vapostproc supports
> NV12:0x0100000000000002 (memory:DMABuf) which is great. But the sink
> pad does not support BGRx:0x0100000000000001.
> 
> Now I ask myself, is it my hardware that does not support the
> conversion between BGRx:0x010000000000000001 and
> NV12:0x010000000000000002, or is it Intel VAAPI or the gstreamer va
> plugin? Does the gstreamer va plugin support all hardware
> capabilities?

GstVA queries the driver and expose the supported color formats, so yes, the va
plugin should support all hardware capabilities, otherwise it's a bug.

You can use vadumpcaps https://github.com/fhvwy/vadumpcaps/ to check all the
pixels supported by a profile/entrypoint.

> 
> Also is there any other method to convert a DMA Buffer with
> BGRx:0x0100000000000001 with gstreamer in h264?

As Nicolas already asked, first we have to ask what device gives you that
format? perhaps the very same device might deliver other.

> 
> Yours sincerely
> Michael
> 


More information about the gstreamer-devel mailing list