Nicolas Dufresne
52b916bdf5
v4l2: videodec: Move the capture setup into the processing loop
...
In previous implementation that job was split between handle_frame and
the processing loop and it wasn't clear if this mechanism was race
free. The capture setup would also be tried for every buffer, which was
not necessary.
This also simplify the handling of SRC_CH event, dropping the unneeded
atomic boolean.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4437 >
2023-05-01 13:42:35 -04:00
Nicolas Dufresne
1ca7f6949e
v4l2: videodec: Ensure object is inactive on failure
...
Sprinkle stop() calls in error case to guaranty that the capture object
is inactive on failure. Not doing so could allow some code to be called
in unexpected (and possibly undefined) conditions.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4437 >
2023-05-01 13:42:02 -04:00
Mihail Ivanchev
8e64dea5c6
gstcodectimestamper: remove PC file generation from plugin's own meson.build
...
The file generated here is incomplete; it is generated for all plugins in a loop at an upper level.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4518 >
2023-05-01 16:41:32 +00:00
jeri.li
2b63e30852
v4l2bufferpool: add lock as atomic operation for seek
...
When seek flush, gst v4l2 buffer pool flush is not atomic which will
lead double enqueue buffer (qbuf) issue, and v4l2 buffer pool qbuf is
also not atomic which will lead no free buffer found in the pool.
1. add lock for calculate enqueue number in streamon function
2. add lock for v4l2 capture end streamoff in pool flush function
3. lock the whole funciton of v4l2 buffer pool qbuf, then the buffer
pool index and qbuf operation are atomic
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4465 >
2023-05-01 15:53:02 +00:00
Haihua Hu
1c488626da
v4l2src: fix cannot reuse current caps when fixate caps in negotiation
...
when regotiation happens, v4l2src will check if it can reuse current caps,
but we need check if current caps is subset of all query caps from downstream
instead of check it with query caps one by one.
Assuming that the current caps is not the subset of first caps from query caps,
it will go to try fmt. when try fmt success, v4l2src will make pending_set_fmt
to TRUE and going to reset.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4500 >
2023-05-01 15:05:26 +00:00
Thibault Saunier
ceb0aca906
sharp: Mark _reserved fields as padding
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3911 >
2023-04-29 21:52:19 -04:00
Thibault Saunier
40a6f2dc91
discover: Avoid double freee when creating info from cache file
...
Passing ownership to the function as the created info is made owner.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3911 >
2023-04-29 06:54:10 -04:00
Thibault Saunier
0f229aa62a
discoverer: Add serializing unknown stream type support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3911 >
2023-04-29 06:54:10 -04:00
Thibault Saunier
e8e5508d1d
ges: Add test for the newly added DiscovererManager object
...
Making pep8 happy on the way
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3911 >
2023-04-29 06:54:10 -04:00
Thibault Saunier
98e5c5e862
ges: Implement a new GESDiscovererManager object
...
Allowing better control over the way discovery happens and allowing
us to expose a proper API.
This also adds the potential of implementing more multi-threaded
discovery in a clean way in the future.
This allows us to cleanly expose the new
GstDiscoverer::load-serialize-info signal.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3911 >
2023-04-29 06:54:10 -04:00
Thibault Saunier
9e994ea616
discoverer: Add a signal to retrieve serialized GstDiscovererInfo
...
This allows user to serialize the GstDiscovererInfo in other places
than the default folder, like a database when running web services for
examples.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3911 >
2023-04-29 06:47:55 -04:00
He Junyan
96e576a818
va: h265enc: map the mbbrc to correct enum value in get_property()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4509 >
2023-04-28 16:46:24 +00:00
He Junyan
5d1c35bd16
va: h264enc: map the mbbrc to correct enum value in get_property()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4509 >
2023-04-28 16:46:24 +00:00
Thibault Saunier
187d91627c
rtpsrc: Give better names to internal elements
...
Same name was used for all instances of rtpsrc making debugging more complex
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4484 >
2023-04-28 16:00:47 +00:00
Jordan Petridis
8339384d3a
jack: return TRUE during init when failing to dlopen
...
If we return FALSE, that means the plugin won't be tried again,
even if jack is available afterwards.
Followup to 689dbd1fbe
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4507 >
2023-04-28 14:57:38 +00:00
Seungha Yang
c98ad6f249
wasapi2: Allows process loopback capture on Windows 10
...
As per MS documentation[1], it requires Windows 10 Build 20348
but it seems to be supported by old versions too
[1] https://learn.microsoft.com/en-us/windows/win32/api/audioclientactivationparams/
ns-audioclientactivationparams-audioclient_process_loopback_params
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2524
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4505 >
2023-04-28 14:11:16 +00:00
Sebastian Dröge
3044b0992f
Revert "splitmuxsink: Avoid assertion when WAITING_GOP_COLLECT on reference context"
...
This reverts commit f29c19be58
. If this is
called for the reference context then we would run into an infinite
loop, which is not really better than an assertion.
By fixing up DTS to never be ahead of the PTS in the previous commit
this situation should be impossible to hit now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4498 >
2023-04-28 11:00:19 +00:00
Sebastian Dröge
de907c225b
splitmuxsink: Catch invalid DTS to avoid running into problems later
...
DTS > PTS makes no sense, so we clamp DTS to the PTS. Also if there's a
PTS but no DTS, then assume that PTS=DTS to make sure we're not working
with a much older DTS.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4498 >
2023-04-28 11:00:19 +00:00
Nirbheek Chauhan
479f0175b5
meson: Add feature options for optional va deps libdrm and gudev
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4428 >
2023-04-28 15:22:31 +05:30
Nirbheek Chauhan
55ee0635d3
meson: Fix libdrm and vaapi configure checks
...
We do not need fallback: for libdrm checks because the wrap file
already has a [provide] section.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4428 >
2023-04-28 15:21:10 +05:30
Nirbheek Chauhan
beb21f9254
meson: Add a new option to control the source for build-tools
...
Similar to orc, allow distros to force bison, flex, nasm, etc, to be
provided by the system.
Needed by the Homebrew folks:
https://github.com/Homebrew/homebrew-core/pull/125996#discussion_r1166410216
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4428 >
2023-04-28 15:21:10 +05:30
Víctor Manuel Jáquez Leal
3a09e700e6
vkswapper: missing image barrier after vkCmdClearColorImage
...
After clear color image command the swapper image needs to add a barrier before
copying the buffer to display on it. Otherwise a potential synchronization
problem might occur.
Fixes #2403
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4501 >
2023-04-28 00:59:57 +00:00
Víctor Manuel Jáquez Leal
f12e052e54
vulkan: use VK_QUEUE_FAMILY_IGNORED in barriers
...
Instead of using the valid queue family 0 (zero) if there aren't queue transfers
there's no need to specify a not validated queue family, but just
VK_QUEUE_FAMILY_IGNORED.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4501 >
2023-04-28 00:59:57 +00:00
Seungha Yang
4ed3c46de7
cudamemory: Fix for semi planar YUV memory size decision
...
UV plan of the semi planar format requires only half of Y plane size
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4502 >
2023-04-27 20:55:53 +00:00
Seungha Yang
fafecf9cb3
sample: Add gst_clear_sample() method
...
Similar to other GstMiniObject clear helper methods like
gst_clear_buffer().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4473 >
2023-04-28 04:38:30 +09:00
Seungha Yang
b7083ad242
sample: Fix typo around gst_sample_copy() method
...
It's sample, not buffer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4473 >
2023-04-27 18:35:41 +00:00
Sebastian Dröge
ef89bac181
rtspsrc: Fix handling of *
control path
...
Regression introduced by 7f9d689572
.
Thanks to Tristan Matthews for reporting this.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4497 >
2023-04-27 13:47:56 +00:00
Edward Hervey
0db6149880
decodebin3: Handle streams without CAPS or TIME segment
...
decodebin3 will do its best to figure out whether a parsebin is required to
process the incoming stream.
The problem is that for push-based stream it could happen that the stream would
not provide any caps, resulting in nothing being linked internally.
Furthermore, there is the possibility that a stream *with* caps would not be
using a TIME segment, which is required for multiqueue to properly work.
In order to fix those two issues, we force the usage of parsebin on push-based
streams:
* When the pad is linked, if upstream can't provide any caps
* When we get a non-TIME segment
Fixes #2521
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4492 >
2023-04-27 12:50:21 +00:00
Stéphane Cerveau
61416bc532
pbutils: add video/x-ivf to descriptions
...
Add missing description for video/x-ivf spotted
with gst-discoverer-1.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4248 >
2023-04-27 06:45:27 +00:00
Stéphane Cerveau
f0d61ac8b0
libav: set the frame rate values in ffmpeg stream context
...
To avoid a default value to be used in mux.c+304, give the
frame rate detected from the caps.
Fix IVF header.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4248 >
2023-04-27 06:45:26 +00:00
Stéphane Cerveau
6f21ef9d3a
libav: add av1 to gst_ffmpeg_caps_to_codecid
...
Restrict the stream-format to obu-stream
and the alignment to "tu" and "frame" as "obu"
is not properly supported by libav.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4248 >
2023-04-27 06:45:26 +00:00
Daniel Moberg
4c1de25e9d
webrtc: do not tear down data channel before data is flushed
...
Current implementation can in some cases detect
that all data is sent but in reality it is not,
leading to a push to an unlinked pad.
This is a race between the probe used to track data sent and a
call to close.
This patch sends an EOS before starting the close procedure
and then waits for the EOS event to come through to the
src pad before commencing with tear down.
This ensures that any queued data before EOS is flushed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4462 >
2023-04-27 00:40:18 +00:00
Matthew Waters
262be30b6f
ccutils: generate valid padding in field 1 when needing to generate field 2
...
Fixes CC in Field 2 but not in Field 1 errors.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4490 >
2023-04-26 20:43:13 +00:00
Seungha Yang
4710f45e65
d3d11videosink: Fix for ignored initial render rectangle
...
Application can set target render rect before internal HWND
configuration
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2518
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4480 >
2023-04-26 19:39:09 +00:00
Sebastian Szczepaniak
277a9f0cef
qtdemux: Add support for cenc sample grouping
...
Co-authored-by: Xabier Rodriguez Calvar <calvaris@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3551 >
2023-04-26 18:51:56 +00:00
Guillaume Desmottes
0d254f59b8
core: pad: fully log event being pushed
...
It's useful when debugging to check the details of the event being sent,
like the segment for example.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4493 >
2023-04-26 18:00:14 +00:00
Mathieu Duponchelle
781a228d3a
docs: update hotdoc theme to 0.15
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4488 >
2023-04-26 13:50:42 +02:00
Mathieu Duponchelle
d08d9bacb2
ci: bump hotdoc dependency
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4488 >
2023-04-26 13:50:40 +02:00
Mathieu Duponchelle
3868771191
docs-index: de-hardcode toned row color
...
Instead use a bootstrap panel and let styling occur based on that,
making the index page work well with the dark theme.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4488 >
2023-04-26 13:50:21 +02:00
Jordan Petridis
8e9db20a3b
windows/Dockerfile: Pin python to 3.11.2
...
Version 3.11.3+ and 3.12 change the way subprocess with shell=True
works to no longer use the PATH but instead rely on %ComSpec% or
%SystemRoot% which are currently not present in the cerbero env.
51b079a2d6
Pin to 3.11.2 until we fix cerbero.
https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/427
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4468 >
2023-04-26 01:38:19 +00:00
Sebastian Dröge
dd78aa053b
ci: Update to Rust 1.69
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4468 >
2023-04-26 01:38:19 +00:00
Thibault Saunier
9dda8050f2
validate: Add a way to avoid checking property value after setting it
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4485 >
2023-04-26 00:03:06 +00:00
Hou Qi
aed4d31e67
decodebin3: fix segment fault when print decoder log
...
Segment fault happens when cannot find decoder but try to print
decoder name. Need to check the decoder.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4461 >
2023-04-25 21:42:15 +08:00
Stéphane Cerveau
40bd8468af
bad: disable dtls test if openssl is not present
...
On MacOS with homebrew, the openssl library is not
properly detected with pkg-config.
So disable the test compilation if openssl
is not properly detected along with libcrypto.
libcrypto is detected but it uses the system one
which leads to the error:
your binary is not an allowed client of /usr/lib/libcrypto.dylib for
architecture x86_64
See more details from Apple:
https://developer.apple.com/forums/thread/124782
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4481 >
2023-04-25 10:01:57 +00:00
Yinhang Liu
35177b81b3
msdk: Fix segfault for OneVPL dispatcher + legacy MSDK runtime path
...
From the spec, the OneVPL dispatcher should be able to work with
legacy MSDK runtime:
https://www.intel.com/content/www/us/en/docs/onevpl/upgrade-from-msdk/2023-1/onevpl-hardware-support-details.html
Currently supported capabilities:
OneVPL dispatcher + OneVPL runtime: dynamic capability
MSDK dispatcher + MSDK runtime: static capability
MSDK dispatcher + OneVPL runtime: static capability
OneVPL dispatcher + legacy MSDK runtime: static capability
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2506
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4466 >
2023-04-25 08:09:29 +00:00
Yinhang Liu
e97b5ad355
msdk: Add NumFilters check for VPP description
...
When NumFilters is equal to 0, the function should return
immediately.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4466 >
2023-04-25 08:09:29 +00:00
Yinhang Liu
ca125bd304
msdk: Add return when creating caps fails for VPP
...
When creating caps fails, the function should return immediately
and should not continue to register the plugin.
This patch fixes the issue of "gst_mini_object_ref: assertion
'mini_object != NULL' failed" in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2506
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4466 >
2023-04-25 08:09:29 +00:00
Eva Pace
692d4a3a16
webrtcbin: Fix trace log 'from' value
...
`webrtc->signaling_state` (from) and `new_signaling_state` (to) had the
same value when printed in a trace log. This commit adds a
`old_signaling_state` variable to hold the previous value, so that the
print statement works as intented.
Spotted by: Mustafa Asım REYHAN
Fixes #1802
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4362 >
2023-04-25 04:27:02 +00:00
Thibault Saunier
7aaf2b48ef
doc: Avoid shelling out to hotdoc to generate plugins config files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4479 >
2023-04-25 02:57:55 +00:00
Thibault Saunier
6e305a471f
meson: Add CameraBin and Va girs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4479 >
2023-04-25 02:57:55 +00:00