VASurface in appsink using decodebin using Gstreamer 1.20.1
Victor Jaquez
vjaquez at igalia.com
Thu Jul 14 16:29:27 UTC 2022
On Thu, 14 Jul 2022 at 12:17, Winand Appelhoff via gstreamer-devel wrote:
> Hello,
>
> small followup
>
> been toying around with this
> requesting memory:D3D11Memory, memory:VAMemory, memory:DMABuf in gst_query_set_caps_result() all work as expected
>
> only memory:VASurface refuses to do so
>
> basetransform: second attempt to fixate caps returned invalid (NULL) caps on pad vaapipostproc1:sink
> basetransform gstbasetransform.c:1370:gst_base_transform_setcaps:<vaapipostproc1> transform could not transform video/x-raw(memory:VASurface), format=(string)NV12, width=(int)1280, height=(int)720, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)bt709, views=(int)2, framerate=(fraction)50/1 in anything we support
> vaapipostproc gstvaapipostprocutil.c:756:_get_preferred_caps:<vaapipostproc1> No valid src caps found
>
> which doesn't make any sense at all
>
> anyone having any idea?
It's odd indeed. Since memory:VAMemory is produced/consumed by
gstva elements, in gst-plugins-bad, (and have no-rank by default, so
they don't autoplug); while memory:VASurface is produced/consumed by
gstreamer-vaapi elements, in, well, gstreamer-vaapi.
GstVa appeared because of the design failures in gstreamer-vaapi and
it's intended to replace, in most of cases,
gstreamer-vaapi. Nonetheless, they are, so far, uncompatible: they
cannot share VASurfacesID among them.
So the fact that you're getting both, means that you're mixing them
and that's a no-no.
If you can share your pipeline's dot file[1] it could make easier to
figure out what's going on.
1. https://gstreamer.freedesktop.org/documentation/tutorials/basic/debugging-tools.html?gi-language=c#getting-pipeline-graphs
vmjl
>
> thanks a lot in advance
> Winand
> ________________________________
> Von: gstreamer-devel <gstreamer-devel-bounces at lists.freedesktop.org> im Auftrag von Winand Appelhoff via gstreamer-devel <gstreamer-devel at lists.freedesktop.org>
> Gesendet: Dienstag, 5. Juli 2022 11:08
> An: Discussion of the development of and with GStreamer <gstreamer-devel at lists.freedesktop.org>
> Cc: Winand Appelhoff <w.appelhoff at tv1.eu>
> Betreff: VASurface in appsink using decodebin using Gstreamer 1.20.1
>
> Hi,
>
> I'm having issues with the caps negotiaton trying to get VASurface buffers on an appsink since upgrading to 1.20.1 ( Ubuntu 22.04 default )
>
> pipeline: any input -> decodebin -> appsink
>
> requesting "memory:VASurface" in the GST_QUERY_CAPS result throws this:
>
>
> basetransform: second attempt to fixate caps returned invalid (NULL) caps on pad vaapipostproc0:sink
>
> setting GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY works fine as expected
>
> did I miss any changes since 1.18.x maybe?
>
>
> thanks a lot in advance
> Winand
>
>
> PS.:
>
> vainfo output for completeness
>
> vainfo: VA-API version: 1.14 (libva 2.12.0)
> vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 22.3.1 ()
> vainfo: Supported profile and entrypoints
> VAProfileNone : VAEntrypointVideoProc
> VAProfileNone : VAEntrypointStats
> VAProfileMPEG2Simple : VAEntrypointVLD
> VAProfileMPEG2Simple : VAEntrypointEncSlice
> VAProfileMPEG2Main : VAEntrypointVLD
> VAProfileMPEG2Main : VAEntrypointEncSlice
> VAProfileH264Main : VAEntrypointVLD
> VAProfileH264Main : VAEntrypointEncSlice
> VAProfileH264Main : VAEntrypointFEI
> VAProfileH264Main : VAEntrypointEncSliceLP
> VAProfileH264High : VAEntrypointVLD
> VAProfileH264High : VAEntrypointEncSlice
> VAProfileH264High : VAEntrypointFEI
> VAProfileH264High : VAEntrypointEncSliceLP
> VAProfileVC1Simple : VAEntrypointVLD
> VAProfileVC1Main : VAEntrypointVLD
> VAProfileVC1Advanced : VAEntrypointVLD
> VAProfileJPEGBaseline : VAEntrypointVLD
> VAProfileJPEGBaseline : VAEntrypointEncPicture
> VAProfileH264ConstrainedBaseline: VAEntrypointVLD
> VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
> VAProfileH264ConstrainedBaseline: VAEntrypointFEI
> VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
> VAProfileVP8Version0_3 : VAEntrypointVLD
> VAProfileVP8Version0_3 : VAEntrypointEncSlice
> VAProfileHEVCMain : VAEntrypointVLD
> VAProfileHEVCMain : VAEntrypointEncSlice
> VAProfileHEVCMain : VAEntrypointFEI
> VAProfileHEVCMain10 : VAEntrypointVLD
> VAProfileHEVCMain10 : VAEntrypointEncSlice
> VAProfileVP9Profile0 : VAEntrypointVLD
> VAProfileVP9Profile2 : VAEntrypointVLD
>
>
>
More information about the gstreamer-devel
mailing list