Matthew Waters
5ddb347a23
build/gl: fix automatic dispmanx detection for rpi4
...
rpi4 doesn't contain dispmanx but still contains bcm_host.pc which
confuses the configure detection. Add an explicit check for
EGL_DISPMANX_WINDOW_T to ensure that we only build with dispmanx when
the types are available.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/893
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/952
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3230 >
2022-10-20 22:29:16 +00:00
Matthew Waters
5fed85c465
docs/glcontextconfig: rename title to not be GstGLContext
...
Can be confusing havint two pages that both have GstGLContext as the
title.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3227 >
2022-10-19 13:01:06 +00:00
Sebastian Dröge
39591cb13d
gl: Add/fix various annotations
...
And fix a memory leaks in gst_gl_display_egl_new() error cases.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194 >
2022-10-18 08:56:58 +00:00
Nicolas Dufresne
82f63b0d64
opengl: Fix usage of eglCreate/DestroyImage
...
The implementation was inconsistent between create and destroy. EGLImage
creation and destruction is requires for EGL 1.5 and up, while
otherwise the KHR version is only available if EGL_KHR_image_base
feature is set. Not doing these check may lead to getting a function
pointer to a stub, which is notably the case when using apitrace.
Fixes #1389
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2925 >
2022-10-11 08:23:45 +00:00
Haihao Xiang
8f5399b156
eglimage: fix Y412_LE DMABuf import support
...
This fixed the error below:
GST_GL_PLATFORM=egl gst-launch-1.0 videotestsrc ! msdkvpp !
"video/x-raw(memory:DMABuf),format=Y412_LE" ! glimagesink
0:00:00.063737691 576978 0x557c11266920 ERROR gleglimage
gsteglimage.c:577:_drm_rgba_fourcc_from_info: Unsupported format for
DMABuf.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1389 >
2022-10-05 04:21:03 +00:00
Haihao Xiang
fbbf44c48c
eglimage: add Y410 DMABuf import support
...
This fixed the error below:
GST_GL_PLATFORM=egl gst-launch-1.0 videotestsrc ! msdkvpp ! \
"video/x-raw(memory:DMABuf),format=Y410" ! glimagesink
0:00:00.040553883 576732 0x55be9b35f920 ERROR gleglimage
gsteglimage.c:577:_drm_rgba_fourcc_from_info: Unsupported format for
DMABuf.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1389 >
2022-10-05 04:21:03 +00:00
Haihao Xiang
2d1496bc70
eglimage: add Y212_LE / Y212_BE DMABuf import support
...
This fixed the error below:
GST_GL_PLATFORM=egl gst-launch-1.0 videotestsrc ! msdkvpp \
! "video/x-raw(memory:DMABuf),format=Y212_LE" ! glimagesink
0:00:00.148086281 575148 0x562a6d36d920 ERROR gleglimage
gsteglimage.c:555:_drm_rgba_fourcc_from_info: Unsupported format for
DMABuf.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1389 >
2022-10-05 04:21:03 +00:00
Haihao Xiang
18215dcd3b
eglimage: add Y210 DMABuf import support
...
This fixed the error below:
GST_GL_PLATFORM=egl gst-launch-1.0 videotestsrc ! msdkvpp ! \
"video/x-raw(memory:DMABuf),format=Y210" ! glimagesink
0:00:00.039881627 571365 0x56245eba6920 ERROR gleglimage
gsteglimage.c:549:_drm_rgba_fourcc_from_info: Unsupported format for
DMABuf
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1389 >
2022-10-05 04:21:03 +00:00
Thibault Saunier
a75f74d2cd
gl:meson: Minor typo fix
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2954 >
2022-09-15 20:11:46 +00:00
Thibault Saunier
bc9c1e3956
meson: Namespace the plugins_doc_dep/libraries variables
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970 >
2022-09-01 21:17:35 +00:00
Jan Schmidt
3511be9a05
glupload: Add raw caps to sink pad when needed.
...
When checking if the current upload method can support
the requested caps filter in _transform_caps(),
make sure the sink pad reports raw caps.
Fixes #1311
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2725 >
2022-07-12 09:30:46 +00:00
Jan Schmidt
f8541b05aa
gstglupload: Remove raw caps from individual methods
...
Raw memory upload should always be the least preferred input
caps, only added by the raw memory uploader as the last thing
in the caps.
Caps negotiation should still choose raw data when it needs to,
and other upload methods that can accept raw data buffers will still do so.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2725 >
2022-07-12 09:30:46 +00:00
Andoni Morales Alastruey
94e1ddad43
glwindow_cocoa: fix a leak of the GstNSView
...
This leak is also causing a leak of the GstGLCAOpenGLLayer
which leaks the GstGLWrappedContext and the GstGLDisplay
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2736 >
2022-07-11 11:25:54 +00:00
Andoni Morales Alastruey
7db2a3cf11
gl: Fix leak of the whole CGL context
...
This was leaking the CGL context and several resources
allocated in the context, around 70MB for a 1080p clip
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2736 >
2022-07-11 11:25:54 +00:00
Jan Schmidt
79d8b435d7
Revert "glupload: Fix caps query with no filter"
...
This reverts commit 6f9ae5d758
.
The _transform_caps() function can't tell the difference
between the caller wanting to know the output caps
for the current method, or all possible output caps. If
it includes caps for all possible methods, glupload can
end up negotiating and sending the wrong output caps
downstream.
Partially reverts !2687
Fixes #1310
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2699 >
2022-07-02 00:05:53 +10:00
Jan Schmidt
6f9ae5d758
glupload: Fix caps query with no filter
...
If no filter caps are provided with a caps query, always
generate a full set of all caps from all upload methods,
not just the configured one. This is needed to handle
renegotiation when dealing with raw sysmem caps - as the upload
method might accept raw sysmem caps, but only the raw data
uploader adds those to the caps query.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2687 >
2022-06-30 08:52:04 +00:00
Jan Schmidt
de0e4b8fd6
Revert "glupload: allow system memory for dmabuf in transform_caps"
...
This reverts commit f3292dc156
.
Only the raw data uploader should add sysmem caps to the
actual caps query, because we want them to be at the
lowest priority. If upstream does select to send raw
caps, then the correct upload method will still
be chosen because the accept_caps implementation
will accept them
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2687 >
2022-06-30 08:52:04 +00:00
Jan Schmidt
342f02015b
gl: Don't use the full transform_caps() method for reconfiguration check
...
When checking if we need to reconfigure when uploading, check
specifically the output caps of the current method will
result in compatible/incompatible caps, not the full set
of output caps from all upload methods.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2687 >
2022-06-30 08:52:04 +00:00
Matthew Waters
a1f30f5b9b
gl/context: disable timer queries for ARM Mali-G52
...
Performing a timer query with a default framebuffer that is incomplete
(from using a surfaceless context) will produce GL errors. Disable the
timer query on this platform to avoid the errors.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2396 >
2022-05-12 00:22:21 +00:00
Nicolas Dufresne
79ea87f256
opengl: Add NV12_4L4 conversion support
...
This format is produced notably by Hantro G1/G2 HW. Using a shader instead of
the Hantro embedded converter helps reduce drastrictly the memory usage at a
relatively small GPU overhead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190 >
2022-05-02 19:10:43 +00:00
Nicolas Dufresne
39615e4f3c
opengl: Add NV12_16L32S conversion support
...
This adds a first detiling shader with initial support for
NV12_16L32S as produced by Mediatek decoders.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190 >
2022-05-02 19:10:43 +00:00
Nicolas Dufresne
77a88c4572
glsl: Enable GLSL 1.30 if we have OpenGL 3.0/3.1
...
As implemented, we only support OpenGL 3 API from version 3.2. Though, there
is no issue enabling GLSL 1.30 even if we are going to restrict our API usage
to 2. This allows using texelFetch() on OpenGL 3.0 and 3.1 drivers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190 >
2022-05-02 19:10:43 +00:00
Nicolas Dufresne
4b4d607f4c
opengl: Add low level support for tiled formats
...
This adds support for tiled format in stride and plane size
code.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190 >
2022-05-02 19:10:43 +00:00
Nicolas Dufresne
04339c8df5
eglimage: Add missing NV21/61 support
...
Caps would allow that, but selecting this format would lead to
an "no reached" assertion in the code.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2190 >
2022-05-02 19:10:43 +00:00
Xavier Claessens
1a0eea3299
Meson: Fix deprecation warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1876 >
2022-04-23 00:33:00 +00:00
Xavier Claessens
b99ecc78ca
Replace gst-i18n-*.h with gi18n-lib.h
...
GLib guarantees libintl is always present, using proxy-libintl as
last resort. There is no need to mock gettex API any more.
This fix static build on Windows because G_INTL_STATIC_COMPILATION must
be defined before including libintl.h, and glib does it for us as part
as including glib.h.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028 >
2022-04-19 18:01:06 +00:00
Thibault Saunier
c033f8fad2
cuda: Factor out a public GstCUDA library
...
So applications and elements implemented outside GStreamer can reuse
our infrastructure
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1472 >
2022-04-19 16:39:43 +00:00
Xabier Rodriguez Calvar
199b62570f
glcolorconvert: should copy metadatas from the incoming buffer
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2094 >
2022-04-01 13:07:46 +02:00
Stéphane Cerveau
8492dd4255
base:gl: add x11 deps to gstglx11_dep
...
On MacOS with homebrew the xlib-xcb.h is in
own cellar /opt/homebrew/Cellar/libx11/1.7.3.1/include
Need to add the windowing dependencies to gl tests
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2061 >
2022-04-01 00:43:54 +00:00
Stéphane Cerveau
4f970bb811
gl: cocoa: fix warnings of unused variables
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2026 >
2022-03-25 18:01:11 +00:00
Xavier Claessens
0fa7923937
Meson: Set install_tag on some files
...
Meson tries to guess the tag (runtime, devel, etc) for every installed
file, but it cannot guess them all. There is a list at the end of
meson-log.txt of files we need to tag manually.
See https://mesonbuild.com/Installing.html#installation-tags .
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934 >
2022-03-14 08:56:54 -04:00
Seungha Yang
16f37f8b9c
gldisplay: Reorder GST_GL_WINDOW check for egl-device
...
"egl-device" should be checked before the "egl", otherwise unexpected egl will be picked
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1853 >
2022-03-04 13:34:34 +00:00
Sebastian Dröge
a10b35c011
gl: Mark GL memory GType functions as deprecated
...
They can't be used in any useful way. The type of every GstMemory is
always GST_TYPE_MEMORY and the subtyping relationship has to be
implemented on top of that via the associated allocator and mem_type
string.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1764 >
2022-02-21 21:26:43 +00:00
Sebastian Dröge
bd867aea4f
gl: Add #ifndef GST_REMOVE_DEPRECATED
for existing deprecated API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1764 >
2022-02-21 21:26:43 +00:00
Sebastian Dröge
5acb8ac559
gl: Add versioned Deprecated
marker to gst_gl_display_find_window
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1764 >
2022-02-21 21:26:43 +00:00
Sebastian Dröge
5d8705437d
gl: Replace existing G_DEPRECATED_FOR usage with GST_GL_DEPRECATED_FOR
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1764 >
2022-02-21 21:26:43 +00:00
Sebastian Dröge
6d83665d7a
gl: Add GST_GL_DEPRECATED
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1764 >
2022-02-21 21:26:43 +00:00
Seungha Yang
e1f0687b09
meson: Do hard build error for some MSVC warnings
...
Handle various MSVC warnings as errors for development version.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1006 >
2022-02-16 17:03:29 +00:00
Jordan Petridis
86a62d94ed
gstglutils: introspection annotations fixups
...
* gst_gl_ensure_element_data: specify the type for the element arg
* gst_gl_handle_set_context: correctly annotate the display and
gl_ctx as just (out) instead of (inout)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1501 >
2022-01-12 12:11:47 +00:00
Jiri Uncovsky
9abac91c96
glcontext/egl: add missing unref
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1328 >
2021-11-10 15:27:45 +00:00
Matthias Clasen
ffa363edf7
egl: handle configless contexts
...
With EGL_KHR_no_config_context, EGL contexts may just not
have an EGLConfig to give you. Deal with it.
Fixes : #858
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1289 >
2021-11-02 18:00:41 +00:00
Sebastian Dröge
ee18b8c0c0
base: Fix some annotations
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1281 >
2021-10-30 15:50:30 +03:00
Matthew Waters
d4c96bf923
gl/egl: install required egl.h header
...
Fixes build against using the gir.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1227 >
2021-10-22 17:56:41 +11: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
Matthew Waters
d495154068
gl/eagl: fix eagl display creation
...
The GstGLDisplayType of the display was win32 instead of the required eagl.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1188 >
2021-10-19 09:34:43 +00:00
Tim-Philipp Müller
cf9be70946
gst-plugins-base: define G_LOG_DOMAIN for all libraries
...
Fixes #634
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1009 >
2021-10-19 00:12:25 +00:00
Thibault Saunier
08eac09c12
meson: Fix warning building GstGLEGL
...
We forgot to add the `GstGL` gir as a dependency which was properly
done for GstGLWayland and GstGLX11.
And document why we use a list for `all_libraries`
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1168 >
2021-10-16 01:24:45 +00:00
Thibault Saunier
6e79932ad9
meson: List libraries and their corresponding gir definition
...
Introduces a `libraries` variable that contains all libraries in a
list with the following format:
``` meson
libraries = [
[pkg_name, {
'lib': library_object
'gir': [ {full gir definition in a dict } ]
],
....
]
```
It therefore refactors the way we build the gir so that we can reuse the
same information to build them against 'gstreamer-full' in gst-build
when linking statically
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093 >
2021-10-15 19:27:30 -03:00
Thibault Saunier
e2dd28a753
meson: Mark files as files()
...
Making it more robust and future proof
And fix issues that it creates
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093 >
2021-10-15 19:27:30 -03:00
Matthew Waters
ee1255079b
gl/dmabuf: add some debug logging about why things may fail to be uploaded
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1145 >
2021-10-14 07:41:44 +00:00