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

xaterus--- via gstreamer-devel <[email protected]> Fri, 3 Nov 2023 15:46:26 +0100
Newsgroups gmane.comp.video.gstreamer.devel
Message-ID <CAOYSOcCF-C+f6jE3Dm8dxdGrqPqn1eO+venqF82=G339txtKDg@mail.gmail.com>
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