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

xaterus at gmail.com xaterus at gmail.com
Fri Nov 3 14:46:26 UTC 2023


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?

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

Yours sincerely
Michael


More information about the gstreamer-devel mailing list