Philippe Normand
03717697d9
debugutils: Ensure we always expose a bin_to_dot_data implementation
...
Fixes a linking issue when building with `-Dgst_debug=false`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5550 >
2023-10-26 08:24:40 +00:00
Víctor Manuel Jáquez Leal
ebd8e160fb
vulkan: update gir file
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5079 >
2023-10-26 07:26:23 +00:00
Víctor Manuel Jáquez Leal
250aa8daea
vulkandownload: use GstVulkanOperation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5079 >
2023-10-26 07:26:23 +00:00
Víctor Manuel Jáquez Leal
11c8c002a5
vulkanupload: use GstVulkanOperation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5079 >
2023-10-26 07:26:23 +00:00
Víctor Manuel Jáquez Leal
a2f875251f
vkimagebufferpool: use GstVulkanOperation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5079 >
2023-10-26 07:26:23 +00:00
Víctor Manuel Jáquez Leal
265f1274dc
vkoperation: synchronization helper object
...
An operation is an arbitrary amount of work to be executed on the host, a
device, or an external entity such as a presentation engine.
The purpose of this object is to help on the operation's synchronization
through declaring explicit execution dependencies, and memory dependencies
between two sets of operations defined by the command’s two synchronization
scopes.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5079 >
2023-10-26 07:26:22 +00:00
Víctor Manuel Jáquez Leal
c83c508c5e
vulkan: add a timeline semaphore per image
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5079 >
2023-10-26 07:26:22 +00:00
Víctor Manuel Jáquez Leal
964aec54b4
vkbarrier: Use guint64 for VkFlags and VkFlags2
...
While VkPipelineStageFlags is an enum (arguably backed as uint32 in 32bit
platforms), VkPipelineStageFlags2 is a redefinition of guint64; likewise for
VkAccessFlags and VkAccessFlags2.
This patch types both members in GstVulkanBarrierMemoryInfo as guint64 for
compatibility, so it could be used with or without synchronization2 vulkan
extension.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5079 >
2023-10-26 07:26:22 +00:00
Víctor Manuel Jáquez Leal
8809ce5648
vkmemory: unref queue in barriers
...
Queue might be assigned for queue transfers, so we need to unref it if the
memory has been assigned to a specific queue.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5079 >
2023-10-26 07:26:22 +00:00
Víctor Manuel Jáquez Leal
5acd6c23b8
vkdevice: use macro VK_KHR_synchronization2 as guard
...
Instead of (defined(VK_VERSION_1_3) || (defined(VK_VERSION_1_2) && VK_HEADER_VERSION >= 170))
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5079 >
2023-10-26 07:26:22 +00:00
Sebastian Dröge
1b117e666b
aja: Add basic documentation
...
Also remove the `gst-inspect-1.0` output from the README.md. This is
listed in the actual documentation and more up to date there.
2023-10-26 09:36:10 +03:00
Nirbheek Chauhan
ec6f7ea1ae
meson: Fix warning about build_root() deprecation
2023-10-26 09:36:10 +03:00
Sebastian Dröge
59f4146bdc
aja: Integrate AJA plugin into the build system
...
Co-Authored-By: Nirbheek Chauhan <nirbheek@centricular.com>
2023-10-26 09:36:09 +03:00
Sebastian Dröge
d2d947380e
Merge AJA audio/video source/sink plugin
...
Original location is https://github.com/centricular/gst-aja
2023-10-26 09:35:52 +03:00
Sebastian Dröge
f1a1dadbf3
Prepare for merging into GStreamer
2023-10-26 09:27:46 +03:00
Sebastian Dröge
71be705fe6
Add subproject for building the AJA NTV2 SDK from github
...
By default that subproject will be built now instead of requiring the
user to provide a location for the SDK.
2023-10-26 09:26:45 +03:00
Jordan Petridis
67475fa684
opencv: move the dependency check to a single place
...
Previously we were checking for opencv dep in 2 different places,
and the checks would vary in terms of how complex and exhaustive
they were.
Move the check into the libs module and reuse the result later on.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3016 >
2023-10-26 00:01:23 +00:00
Doug Nazar
bac8a74f04
validate: Don't clear global mutex
...
gst_validate_deinit() may be called multiple times and expects the
mutex to still be valid.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5539 >
2023-10-25 22:56:15 +00:00
Doug Nazar
aee8ac1942
validate: Initialize mutex before use
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5539 >
2023-10-25 22:56:15 +00:00
Seungha Yang
b545bd2ac5
pluginloader-win32: Increase plugin loading timeout
...
Some hardware plugin loading might take more than 10sec under
full CPU load condition
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5545 >
2023-10-25 20:13:07 +00:00
Seungha Yang
2aa841e74b
mfvideoencoder: Fix typo in template caps
...
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3058
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5554 >
2023-10-25 23:19:51 +09:00
Sebastian Dröge
9e51f1f182
aggregator: Allow passing unparented pads to gst_aggregator_pad_is_inactive()
...
It's very difficult to ensure that a pad is still child of the
aggregator during aggregation, so simply consider unparented pads as
inactive instead of asserting.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5510 >
2023-10-25 07:56:41 +00:00
Sebastian Dröge
35c3689c44
aggregator: Also release clipped buffer when releasing an aggregator pad
...
Instead of waiting until the pad is actually finalized.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5510 >
2023-10-25 07:56:41 +00:00
Sebastian Dröge
70ee7293e0
aggregator: Take pad lock while releasing buffers when removing pads
...
Accessing the buffers in all other places requires the pad lock and not
taking it here can cause access to already freed buffers if there's
concurrent access from another thread.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5510 >
2023-10-25 07:56:40 +00:00
Sebastian Dröge
f7d4ea6eec
audioaggregator: Make access to the pad list thread-safe while mixing
...
When mixing every single buffer the object lock is shortly released and
acquired again. In the meantime the pad list can become invalid because
a pad was removed or added, and equally the current pad might as well
have been finalized in the meantime.
To get around that, take a snapshot of all sinkpads before mixing and
work with that list of pads.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3052
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5510 >
2023-10-25 07:56:40 +00:00
Jordan Petridis
a7c1da6ce5
build: Do not try to build gst-python when introspection is disabled
...
Close #1604
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4648 >
2023-10-25 06:48:42 +00:00
Matthew Waters
48ab457d79
vulkan/physical-device: don't assume that queue_family_ops is filled
...
On old enough vulkan (< 1.2), we will never retrieve the family operations and
will perform a NULL pointer dereference when dumping the queue family op
properties.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5547 >
2023-10-25 16:38:06 +11:00
Adrien De Coninck
65365caa21
d3d11videosink: post "have-window-handle" element message on the bus
...
* when window_id is not user-provided and window_type==GST_D3D11_WINDOW_NATIVE_TYPE_HWND
* allows user to retrieve internally created window handle
* for custom positionning
* for custom icons
* ...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5544 >
2023-10-24 16:32:36 +02:00
David Rosca
8aac08506a
va: Use vaMapBuffer2
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5467 >
2023-10-23 19:40:16 +00:00
Shengqi Yu
25c00b5ba2
v4l2object: scale the encoded sizeimage based on maximum resolution
...
The default 2MB ENCODED_BUFFER_SIZE can't support some 4K video playback. We now
detect the driver reported maximum resolution and choose an appropriate
default bitstream size accordingly. For 4K video these results in around 4MB
buffer instead of 2MB.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4549 >
2023-10-23 14:10:56 +00:00
Matthias Fuchs
2bbc2a4c52
qml6glsrc: sync on the streaming thread
...
After rendering a QML scene the qml6glsrc element copies the contents of
the scene to a GStreamer buffer. This happens on the Qt render thread.
Then it attaches a sync point to the destination buffer. This sync point
must be awaited by other threads which use the buffer later on. The
current implementation relies on the downstream elements to wait for the
sync point. However, there are situation where this does not work. The
GstBaseTransform e.g. copies the buffer metadata (which overwrites the
sync point without waiting for it) *before* waiting for the sync point.
This commit waits for the sync point inside the qml6glsrc element before
sending it downstream. The wait command is issued on the streaming
thread with the pipeline OpenGL context, i.e. it will synchronize with
the GStreamer OpenGL thread.
This is a port of the original fix for the qmlglsrc element.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5519 >
2023-10-23 08:43:16 +00:00
Jordan Petridis
9f3b8c9366
vkwindow_xcb: Make the visible private field a guint
...
This field is used to store gbooleans (which are ints) but if it's
a :1 bit depth assigning ints to it changes it's value as the only
valid values are -1 and 0.
Make it a guint instead so the cast would be correct.
```
../subprojects/gst-plugins-bad/gst-libs/gst/vulkan/xcb/gstvkwindow_xcb.c:151:25: error:
implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1
[-Werror,-Wsingle-bit-bitfield-constant-conversion]
window_xcb->visible = TRUE;
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5432 >
2023-10-23 10:43:52 +05:30
Tim-Philipp Müller
2193022d67
ci: documentation: git reset only checked-in *wrap files before diffing
...
Otherwise it will abort and complain about not-checked wrap
files that got promoted by meson, such as:
error: pathspec 'subprojects/gvdb.wrap' did not match any file(s) known to git
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2126 >
2023-10-22 11:28:59 +01:00
Tim-Philipp Müller
654f3370a0
meson: Bump GLib requirement to >= 2.64
...
This includes fixes to make GstBus watches non-racy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2126 >
2023-10-22 10:48:12 +01:00
Jordan Petridis
656bea80ea
meson: Fix typo
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5526 >
2023-10-22 08:06:29 +03:00
Jordan Petridis
66c5b13dd8
ci: docs: disable svthevcenc for the docs job
...
While updating the base image we run into a handful of issues
with the svthevcenc element. Disable it for now from the documentation
job to not block the rest of the image update.
We can revert this commit once [1] is fixed.
[1]: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5447
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1060 >
2023-10-22 05:23:30 +03:00
Jordan Petridis
18578643ca
check: Move CI specific ignored tests into their own list
...
Instead of ignoring the tests always, check if a CI env var is
present and only ignore the tests then.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1060 >
2023-10-22 05:23:30 +03:00
Jordan Petridis
080c837cd6
ci: fedora: Install a more recent wayland-protocols version
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1060 >
2023-10-22 05:23:30 +03:00
Jordan Petridis
118841cc49
ci: Build glib subproject fallback for clang builds
...
We currently have glib 2.68 in the image, which produces a couple
of warning around g_atomic_ apis. This has since been
fixed/worked around in glib itself [1] [2] [3]. Build the subproject
until we update to a toolchain/ci-image with new enough glib.
[1] https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2114
[2] https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2578
[3] https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2864
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1060 >
2023-10-22 05:23:29 +03:00
Jordan Petridis
eeb77ddca5
symbol_index: Add ladspa-ladspa-rubberband-so-rubberband-pitchshifter
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1060 >
2023-10-22 05:23:29 +03:00
Jordan Petridis
9ef372a0bc
symbol_index: Add srtsink:auto-reconnect and srtsrc:authentication
...
This is followup of 9072424eb3
The plugin wasn't built in the CI so it was missed. The properties
were added in the Class in the commit above but not for the elements
index.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1060 >
2023-10-22 05:23:29 +03:00
Philippe Normand
3779eb5c83
ci: Make the fedora image toolbox compatible
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1060 >
2023-10-22 05:23:29 +03:00
Jordan Petridis
98eab9a562
ci: fedora/prepare: use curl to download rustup instead of wget
...
We install curl anyway as a dependency of the plugins
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1060 >
2023-10-22 05:23:29 +03:00
Jordan Petridis
88e6dd0555
ci: switch the Fedora base image to f34
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1060 >
2023-10-22 05:23:28 +03:00
Tim-Philipp Müller
136c82d735
flacenc: signal in output caps that the output is framed
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5524 >
2023-10-22 00:25:50 +00:00
Jordan Petridis
f87d499aaf
cdparanoia: Ignore discarded-qualifiers coming from the header (again)
...
Followup to 75872c802b
, clang version
While we ignore `discarded-qualifiers` already for gcc, clang seems
to assign this error to `incompatible-pointer-types-discards-qualifiers`
so we need to ignore that as well.
```
In file included from \
../subprojects/gst-plugins-base/ext/cdparanoia/gstcdparanoiasrc.h:37: \
/usr/include/cdda/cdda_interface.h:164:3: error: initializing 'char *' with an expression \
of type 'const char [8]' discards qualifiers [-Werror, \
-Wincompatible-pointer-types-discards-qualifiers]
"Success",
^~~~~~~~~
```
See 75872c802b
for more
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5474 >
2023-10-21 23:30:38 +00:00
Jordan Petridis
0bc353085f
svthevcenc: Fix potential use of unitialized variable
...
In gst_svthevc_enc_propose_allocation if we don't get info from
the caps, we'd goto done, which could potentially try to unref
and unitialized pool variable.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5476 >
2023-10-21 20:08:59 +00:00
Loïc Le Page
e1ca575408
gl: add support for surfaceless display in GstGL
...
Use of the EGL_MESA_platform_surfaceless EGL extension to create an EGL
display that is not depending on any kind of windowing system.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5511 >
2023-10-20 12:46:48 +00:00
Loïc Le Page
34694bbfcf
gl: fix "winrt" string comparison in gst_gl_display_type_from_environment
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5511 >
2023-10-20 12:46:48 +00:00
Piotr Brzeziński
e79b308f82
vtdec: Fix deadlock when attempting to negotiate
...
This was wrongly calling the base class method, which unnecessairly took the stream lock, already taken by
handle_frame(). The drain() call in negotiate() would then wait for the output loop to pause, while that loop
is stuck waiting to take the stream lock, thus causing a deadlock.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5521 >
2023-10-20 13:50:16 +02:00