Commit graph

10 commits

Author SHA1 Message Date
Tim-Philipp Müller
448cb1c2c3 vaapi: prefix USE_FOO defines to fix build with mesa 22.3.0
Apparently mesa 22.3.0 has updated the egl headers, and eglplatform.h now
contains commit
3670d645f4
after which xlib headers don't get included by default anymore but are
dependent upon whether USE_X11 was defined.

This breaks headless builds of gstreamer-vaapi because we always define
an internal define USE_X11 as either 1 or 0.

Change these defines to GST_VAAPI_USE_XYZ instead to avoid this.

Fixes #1634

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3558>
2022-12-11 11:13:17 +00:00
Boyuan Zhang
5fc136bcf2 libs: context: use queried value for attrib
Attribute's value should use returned value from get_attribute for
VAConfigAttribRTFormat, since VAProfileHEVCMain10, in AMD Mesa Gallium,
can process either VA_RT_FORMAT_420 and VA_RT_FORMAT_420_10, which isn't
considered in gstreamer-vaapi design, where encoder's src pads will
expose only 4:2:0 color formats but no 4:2:0 10bit. So, this is a workaround
for this issue while new vah265enc is released.

Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3435>
2022-11-19 00:08:35 +00:00
Víctor Manuel Jáquez Leal
74b3e07616 vaapi: plugin: Handle when no encoders/decoders available.
Nouveau driver currently only exposes postproc entry. But
vaapidecodebin is registered independent if there are decoders or not,
exposing a segmentation fault.

This patch removes the encoder/decoder/codec arrays if no entries are
found, and if no decoders are found vaapidecodebin is not
registered. Also for vaapipostproc if no postproc entry is found.

Also, if general decoder, used by vaapidecodebin, doesn't have a sink
pad string, don't register the glib type.

Fixes: #1349
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2906>
2022-08-17 12:58:24 +01:00
He Junyan
4076295134 vaapi: Do not disable the whole vpp when some va operations not available.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2604>
2022-06-15 12:54:05 +01:00
Sebastian Dröge
bf86940e60 Fix transfer gobject-introspection annotation typos
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2163>
2022-04-12 15:16:39 +01:00
Víctor Manuel Jáquez Leal
2fc4e928d6 vaapi: libs: video-format: Check if formats map is not NULL.
Formats map is instantiated at the end of the display
instantiation. The problem is the Wayland display which looks for a
format in a callback, before the map is populated.

If user compiles gstreamer-vaapi with DRM support, the map is
populated with a DRM display at GStreamer plugin registration. But if
not, or a VA driver is not available, the plugin will try with a
Wayland driver, which cause the NULL de-reference.

Nevertheless, in the case of no DRM support, and if the Wayland
display doesn't get a reply from the format conversion is not a
problem.

So the solution is the trivial one, check if the format map is already
populated before de-reference it.

Fixes: #977
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1606>
2022-01-31 13:33:31 +00:00
He Junyan
428a9a6c01 vaapi: av1dec: Use named profiles to replace the numeric ones.
Use named AV1 profiles (i.e., main, high) to replace the old "0"
and "1" profiles.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1491>
2022-01-05 09:20:02 +00:00
Víctor Manuel Jáquez Leal
92f8b54657 vaapi: libs: Use unsized arrays as parameters.
Instead of defining a sized array for function signature, use it
unsized (a pointer alias, basically). In this way clang warning is
silenced:

warning: ‘fill_profiles’ accessing 64 bytes in a region of size 12 [-Wstringop-overflow=]

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1357>
2021-11-18 07:32:26 +00:00
Tim-Philipp Müller
f1bb2c76c6 meson: update for dep.get_pkgconfig_variable() deprecation
... in favour of dep.get_variable('foo', ..) which in some
cases allows for further cleanups in future since we can
extract variables from pkg-config dependencies as well as
internal dependencies using this mechanism.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
2021-10-20 11:20:44 +00:00
Thibault Saunier
4c7ec3993c Move files from gstreamer-vaapi into the "subprojects/gstreamer-vaapi/" subdir 2021-09-24 16:14:54 -03:00