Nirbheek Chauhan [Wed, 18 Jan 2023 02:02:36 +0000 (07:32 +0530)]
webrtc_sendrecv.py: Use sine wave for audio instead of red-noise
Makes it easier to notice when there's packet loss or other audio
distortion.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3816>
Nirbheek Chauhan [Thu, 29 Sep 2022 14:00:05 +0000 (19:30 +0530)]
ci/windows: Remove cargo-vendor sources from the cerbero source cache
Copying the source cache to a running Cerbero CI job on Windows causes
strange / corrupted errors that talk about hard links like:
++ cp -a C:/cerbero/cerbero-sources .
cp: will not create hard link `./cerbero-sources/gstreamer-1.0/subprojects/gst-plugins-good/sys/osxaudio' to directory `./cerbero-sources/cargo-c-0.9.12/cargo-vendor/adler/benches'
[...]
So, delete it. The vendored sources are cached by cargo in its own
cache inside CARGO_HOME, which is build/rust/cargo/ and is preserved
in the image. We won't need to redownload any of this.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3821>
Seungha Yang [Tue, 24 Jan 2023 14:26:50 +0000 (23:26 +0900)]
wasapi2src: Fix loopback capture on Windows 10 Anniversary Update
... or older. Work around an OS bug that loopback capture
device doesn't notify event.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1738
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3820>
Jan Alexander Steffens (heftig) [Thu, 26 Jan 2023 09:33:26 +0000 (10:33 +0100)]
aggregator: Warn about the right segment's format
We were checking the head segment here, not the current segment.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3819>
Jan Alexander Steffens (heftig) [Wed, 2 Sep 2020 15:59:30 +0000 (17:59 +0200)]
aggregator: Always lock aggpad around update_time_level
`aggpad->segment` is protected by the `aggpad`'s object lock. We need to
take the lock before calling `update_time_level`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3819>
Bart Van Severen [Wed, 25 Jan 2023 12:58:16 +0000 (13:58 +0100)]
rtsp: gstrtspurl: gst_rtsp_url_get_request_uri: fix incorrect scheme for tls transport methods
gst_rtsp_url_get_request_uri returns rtsp://... url when requested url is rtsps://, this is not
in accordance with https://www.rfc-editor.org/rfc/rfc7826.html#section-19.2.
This also impedes setting up a rtsps session with a live555 rtsp server.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3818>
Bart Van Severen [Wed, 14 Dec 2022 09:31:14 +0000 (10:31 +0100)]
sdp: gstmikey: gst_mikey_message_to_caps: extract salt and append to srtp-key
A KEMAC can hold both key and salt, so if salt is present, we should extract it
and append it to the srtp-key cap because libsrtp expects the srtp-key to hold
the concantenated srtp master key and salt.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3818>
Bart Van Severen [Wed, 14 Dec 2022 09:29:27 +0000 (10:29 +0100)]
sdp: gstmikey: gst_mikey_message_to_caps: extract ROC from first crypto session
We need the ROC to decrypt a SRTP stream as the ROC is part of the AES IV.
So look for first crypto session, from which we can get the ROC and find corresponding
crypto policy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3818>
Sebastian Dröge [Wed, 25 Jan 2023 11:26:08 +0000 (13:26 +0200)]
gst: Fix gst_type_find_peek() return value annotation
It's not possible to annotate a in-parameter for a return value array as
the array length. Both are assumed to have the same direction and the
current annotation causes the size parameter to be considered an out
parameter.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3814>
Sebastian Dröge [Wed, 25 Jan 2023 11:19:01 +0000 (13:19 +0200)]
sdp: Fix gst_mikey_payload_key_data_set_interval() array length annotation
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1744
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3814>
Pawel Stawicki [Wed, 25 Jan 2023 00:52:28 +0000 (00:52 +0000)]
v4l2h264dec: Fix Raspberry Pi4 will not play video in application
Ensure object v4l2object->pool will be released by
correctly releasing the temporary thread-safety lock
Fixes issue #1729
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3815>
Víctor Manuel Jáquez Leal [Wed, 4 Jan 2023 16:30:47 +0000 (17:30 +0100)]
vulkan: memory: Flush non coherent memory after write.
Spec 7.1.3:
If a memory object does not have the VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
property, then vkFlushMappedMemoryRanges must be called in order to guarantee
that writes to the memory object from the host are made available to the host
domain, where they can be further made available to the device domain via a
domain operation. Similarly, vkInvalidateMappedMemoryRanges must be called to
guarantee that writes which are available to the host domain are made visible to
host operations.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3817>
Nirbheek Chauhan [Tue, 24 Jan 2023 05:56:02 +0000 (11:26 +0530)]
nvcodec: Log readable errors when initializing CUDA
It is really difficult for people to figure out why nvcodec has
0 features. Even the debug log is cryptic. Also make sure the errors
go to the ERROR log level, which is more likely to be enabled by
default.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3813>
Nirbheek Chauhan [Tue, 24 Jan 2023 05:46:38 +0000 (11:16 +0530)]
nvcodec: Fix reporting of CuDeviceGetCount error
cuda_ret is was always going to be CUDA_SUCCESS in the error log.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3813>
Mathieu Duponchelle [Tue, 24 Jan 2023 21:50:37 +0000 (22:50 +0100)]
redenc: fix setting of extension ID for twcc
1 was previously hardcoded in, and the bug went under the radar because
webrtcsink hardcodes the number too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3812>
Edward Hervey [Mon, 23 Jan 2023 16:26:07 +0000 (17:26 +0100)]
multiqueue: Handle use-interleave latency live pipelines
Due to the dynamic nature of multiqueue, when `use-interleave` is used we can't
report a maximum tolerated latency (when queried) since it is calculated
dynamically.
When in such live pipelines, we need to make sure multiqueue can handle the
lowest global latency (provided by this event). Failure to do that would
result in not providing enough buffering for a realtime pipeline.
Fixes #1732
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3810>
Sebastian Dröge [Tue, 24 Jan 2023 13:38:20 +0000 (15:38 +0200)]
avvidenc: Don't take ffmpeg timestamps verbatim but only use them to calculate DTS
The ffmpeg timestamps are inaccurate and only in framerate granularity.
To avoid generating inaccurate output timestamps, especially with
variable framerate streams, only use the ffmpeg timestamps for
calculating the DTS.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1544
again.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3808>
Sebastian Dröge [Tue, 24 Jan 2023 13:28:17 +0000 (15:28 +0200)]
Revert "avvidenc: Set timebase in the ffmpeg context to nanoseconds and set framerate"
This reverts commit
50db59449e9cdb637c5f0c1b7c5dccd582fac4ee.
This broke the MPEG-1 video encoder as it requires the framerate to be
used for the timebase.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1734
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3808>
Jan Alexander Steffens (heftig) [Tue, 24 Jan 2023 02:52:49 +0000 (02:52 +0000)]
vaapi: Skip plugin pc file for shared plugins
Following similar logic in the other subprojects.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3778>
David Svensson Fors [Mon, 23 Jan 2023 11:01:00 +0000 (12:01 +0100)]
udpsrc: GstSocketTimestampMessage only for SCM_TIMESTAMPNS
Deserialize socket control messages as GstSocketTimestampMessage only
if (level, type) is (SOL_SOCKET, SCM_TIMESTAMPNS).
Without this patch, messages with types SCM_RIGHTS or SCM_CREDENTIALS
could be deserialized as GstSocketTimestampMessage instead of
GUnixFDMessage or GUnixCredentialsMessage from gio.
Fixes #1736
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3777>
Tim-Philipp Müller [Wed, 25 Jan 2023 17:51:45 +0000 (17:51 +0000)]
ci: update for 1.22 branch
Don't have validate do --check-bugs in the 1.22 branch, as
any issues fixed may only have been fixed in the main branch.
Tim-Philipp Müller [Wed, 25 Jan 2023 16:46:42 +0000 (16:46 +0000)]
Back to development
Tim-Philipp Müller [Mon, 23 Jan 2023 19:29:34 +0000 (19:29 +0000)]
Release 1.22.0
Tim-Philipp Müller [Mon, 23 Jan 2023 16:28:13 +0000 (16:28 +0000)]
gst-plugins-ugly: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3773>
Tim-Philipp Müller [Mon, 23 Jan 2023 16:28:08 +0000 (16:28 +0000)]
gst-plugins-bad: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3773>
Tim-Philipp Müller [Mon, 23 Jan 2023 16:27:56 +0000 (16:27 +0000)]
gst-plugins-good: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3773>
Tim-Philipp Müller [Mon, 23 Jan 2023 16:27:50 +0000 (16:27 +0000)]
gst-plugins-base: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3773>
Tim-Philipp Müller [Mon, 23 Jan 2023 16:27:36 +0000 (16:27 +0000)]
gstreamer: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3773>
Seungha Yang [Mon, 23 Jan 2023 14:29:08 +0000 (23:29 +0900)]
d3d11compositor: Workaround blending artifacts on Intel platform
Disable vendor implemented converter in d3d11compositor to workaround
artifacts
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3770>
Ruben Gonzalez [Sat, 21 Jan 2023 23:52:56 +0000 (00:52 +0100)]
glvideomixer: Fixing error with mouse navigation events when no pixel-aspect-ratio
Handling mouse navigation events in glvideomixer element, if no
pixel-aspect-ratio info in the caps, an assertion error is produced
inside gst_util_fraction_multiply because default denominator is zero.
Error fixed:
```
(gst-launch-1.0:102654): GStreamer-CRITICAL **: 00:47:51.598: gst_util_fraction_multiply: assertion 'b_d != 0' failed
```
Simple pipeline to reproduce the issue:
```
gst-launch-1.0 -v glvideomixer name=mix ! glimagesinkelement gltestsrc ! mix.sink_0
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3766>
Edward Hervey [Fri, 20 Jan 2023 08:59:06 +0000 (09:59 +0100)]
playback: New playback elements are no longer experimental
The API is not expected to change and it has been used extensively since 1.18.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3761>
Sebastian Dröge [Fri, 20 Jan 2023 11:06:47 +0000 (13:06 +0200)]
examples: webrtc: rust: Update dependencies
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758>
Sebastian Dröge [Fri, 20 Jan 2023 10:55:50 +0000 (12:55 +0200)]
examples: webrtc: multiparty-sendrecv: rust: Remove unnecessary macro recursion limit annotation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758>
Sebastian Dröge [Fri, 20 Jan 2023 10:25:23 +0000 (12:25 +0200)]
examples: webrtc: sendrecv: rust: Implement `OFFER_REQUEST` handling
Allow requesting an offer from the peer if we're joining a call with a
peer, and allow the peer to request an offer from us if waiting for an
incoming call.
This implements all 4 variants the protocol allows for.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758>
Sebastian Dröge [Fri, 20 Jan 2023 10:23:36 +0000 (12:23 +0200)]
examples: webrtc: sendrecv: rust: Allow providing our ID via the commandline
Otherwise it continues to use a random ID as before.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758>
Sebastian Dröge [Thu, 19 Jan 2023 18:56:44 +0000 (20:56 +0200)]
examples: webrtc: sendrecv: rust: Implement TWCC support in both directions
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758>
Sebastian Dröge [Thu, 19 Jan 2023 18:38:41 +0000 (20:38 +0200)]
examples: webrtc: rust: Set keyframe-max-dist=2000 and picture-id-mode=15-bit for VP8 and perfect-timestamps=true for audio
This makes it in sync with the C sendrecv and generally behaves better.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758>
Sebastian Dröge [Thu, 19 Jan 2023 18:38:12 +0000 (20:38 +0200)]
examples: webrtc: sendrecv: rust: Use the correct payload types if the remote is the offerer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3758>
Jonas Danielsson [Thu, 19 Jan 2023 14:24:05 +0000 (15:24 +0100)]
wpe: Add 'run-javascript' action signal
Introduce way of running a script in the context of the internal
webView.
Fixes #1722
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3753>
Edward Hervey [Thu, 19 Jan 2023 15:35:08 +0000 (16:35 +0100)]
decodebin3: Remove failing stream from selection
If no decoder is present for a given stream, remove it from the requested
selection.
Fixes #1581 and #1662
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3754>
Edward Hervey [Thu, 19 Jan 2023 15:27:57 +0000 (16:27 +0100)]
decodebin3: Don't intercept queries if no parsebin present
If we don't use a parsebin, we forward the queries as-is from upstream. There is
no reconfiguration possible within identity.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3754>
Edward Hervey [Thu, 19 Jan 2023 15:25:51 +0000 (16:25 +0100)]
decodebin3: Don't insert parsebin if input is already parsed
This is a temporary workaround until we find a generic solution to indicate that
a stream has already been "parsed".
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3754>
Seungha Yang [Thu, 19 Jan 2023 13:40:36 +0000 (22:40 +0900)]
win32ipcvideosrc: Fix leak in fallback copy path
Clear shared memory after use
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3751>
Edward Hervey [Thu, 19 Jan 2023 14:36:40 +0000 (15:36 +0100)]
va: Fix path leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3755>
Sebastian Dröge [Thu, 19 Jan 2023 14:01:21 +0000 (16:01 +0200)]
gst: Mark caps parameters in ALLOCATION query API as nullable
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3752>
Guillaume Desmottes [Mon, 9 Jan 2023 10:36:38 +0000 (11:36 +0100)]
gst-play: add --no-position
It can be useful to reduce or remove the clutter in logs due to those
queries when debugging.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3698>
Sebastian Dröge [Tue, 17 Jan 2023 15:51:16 +0000 (17:51 +0200)]
matroska: Add `stream-format = (string) obu-stream` to AV1 caps
Anything else is not allowed in Matroska/WebM.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3740>
Sebastian Dröge [Tue, 17 Jan 2023 15:50:27 +0000 (17:50 +0200)]
isomp4: Add `stream-format = (string) obu-stream` to AV1 caps
Anything else is not allowed in MP4.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3740>
Sebastian Dröge [Thu, 19 Jan 2023 08:40:32 +0000 (10:40 +0200)]
gst-examples: Update Rust dependencies
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3750>
Nicolas Dufresne [Wed, 18 Jan 2023 21:39:03 +0000 (16:39 -0500)]
gleglimage: Fix GL_OES_EGL_image_external name in debug trace
There is a debug log when this extension is missing, but it was
reporting the wrong extension name, which was confusing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3748>
Jan Alexander Steffens (heftig) [Wed, 18 Jan 2023 15:07:39 +0000 (16:07 +0100)]
input-selector: Take the object lock while iterating sinkpads
Otherwise we can race with pad removal and crash from use-after-free.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1717
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3745>
Michiel Konstapel [Mon, 16 Jan 2023 10:43:37 +0000 (11:43 +0100)]
glvideomixer: don't clear pad->geometry_change when setting an identical value
Closes #1715
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3733>
Tim-Philipp Müller [Wed, 18 Jan 2023 13:42:38 +0000 (13:42 +0000)]
gst-docs: include dmabuf and gapless playback design docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3744>
Tim-Philipp Müller [Sat, 14 Jan 2023 16:16:49 +0000 (16:16 +0000)]
uridecodebin3: clear subitem if suburi is set to NULL
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1649
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3730>
Jan Alexander Steffens (heftig) [Tue, 17 Jan 2023 14:04:10 +0000 (15:04 +0100)]
qtdemux: Add basic support for AVC-Intra video
AVC-Intra is a range of H.264-compliant intra-only codecs from
Panasonic. The codes and descriptions have been taken from VLC.
The (encumbered) sample I have here produces byte-stream H.264,
including SPS and PPS and no `avcC` box.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3739>
Nirbheek Chauhan [Mon, 16 Jan 2023 10:25:56 +0000 (15:55 +0530)]
gl: Fix crash in cocoa due to race in gst_gl_context_activate()
We create a new context in `gst_gl_context_create_thread()` and then
activate it on the current thread. Thereafter we assume that the
current thread continues to be the active thread for that context and
call `gst_gl_context_fill_info()` which asserts that the current
thread is the active thread.
However, if at the same time a different thread calls
`send_message_async()`, it will call into
`gst_gl_window_cocoa_send_message_async()` which will schedule the
message to be invoked using GCD. That anonymous function will also
call `gst_gl_context_activate()`, which creates a race, which can lead
to:
```
gst_gl_context_fill_info: assertion 'context->priv->active_thread == g_thread_self ()' failed
```
Fix it by using `gst_gl_context_thread_add()` to invoke `fill_info()`
on the context.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3732>
Thibault Saunier [Thu, 12 Jan 2023 14:52:21 +0000 (11:52 -0300)]
ges: smart-mixer: Avoid video freeze on NLE stack changes
Since we support "nested compositors"[0] we were not finalizing the pads_infos
and thus not releasing the mixer pad on stack change, meaning that
the following stacks were never prerolling.
[0] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2094
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3738>
Thibault Saunier [Thu, 12 Jan 2023 14:07:45 +0000 (11:07 -0300)]
ges: Fix issues avoiding to use `operator` when unavailable on mixer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3738>
Sebastian Dröge [Sat, 14 Jan 2023 10:46:39 +0000 (16:16 +0530)]
gl/cocoa: Store a weak reference to the `GstGLWindow` instead of the `GstGLContext`
We can't rely on the `GstGLContext` to stay alive and need to keep track
of it. For that we keep track of the `GstGLWindow` in a weak reference
to avoid a reference cycle, and get the corresponding `GstGLContext`
whenever needed.
With contributions from Nirbheek Chauhan.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1697
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3729>
Tim-Philipp Müller [Fri, 13 Jan 2023 19:08:48 +0000 (19:08 +0000)]
Release 1.21.90
Sebastian Dröge [Fri, 13 Jan 2023 10:43:30 +0000 (12:43 +0200)]
avvidenc: Offset PTS to zero to fix bitrate control
Otherwise ffmpeg's rate control algorithm will not work correctly as
it is based on the absolute PTS values.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-libav/-/issues/91
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3718>
Edward Hervey [Fri, 13 Jan 2023 15:39:51 +0000 (16:39 +0100)]
urisourcebin: Cleanup on failure
This ensures there is a source present/valid *ONLY* in PAUSED and above.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3720>
Edward Hervey [Fri, 13 Jan 2023 15:37:03 +0000 (16:37 +0100)]
urisourcebin: Unset locked state
Some elements still had it in failure cases
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3720>
Edward Hervey [Fri, 13 Jan 2023 15:34:45 +0000 (16:34 +0100)]
uridecodebin3: Handle state synchronization failures
Properly reset and remove the failing urisourcebin if we failed bringing them up
to the same state as ourselves.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1708
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3720>
Olivier Crête [Thu, 12 Jan 2023 19:32:30 +0000 (14:32 -0500)]
rtopuspay: Use GstStaticCaps to cache parsed caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674>
Olivier Crête [Thu, 12 Jan 2023 19:25:52 +0000 (14:25 -0500)]
rtopuspay: Ignore the stereo parameter in multiopus caps
Also add unit tests for the various variants
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674>
Olivier Crête [Tue, 3 Jan 2023 23:55:24 +0000 (18:55 -0500)]
rtpopuspay: Leave original caps as-is
This should make it work if someone specifies stereo with MULTIOPUS
somehow.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674>
Olivier Crête [Tue, 3 Jan 2023 23:06:56 +0000 (18:06 -0500)]
rtpopuspay: Return upstream channel filter based on OPUS vs MULTICAPS
Only allow 1 or 2 channels if the caps are OPUS, or 3+ if they are
MULTIOPUS.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674>
Olivier Crête [Tue, 3 Jan 2023 22:44:37 +0000 (17:44 -0500)]
rtpopus: Put MULTIOPUS in all caps
The RTP payload encoding-name are always in caps in GStreamer.
In SDP, they are not case-sensitive, but since caps are, we need to pick
a caps, and we picked upper-case along time ago.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3674>
Sebastian Dröge [Thu, 12 Jan 2023 19:33:25 +0000 (21:33 +0200)]
android: Update minimum SDK version to Android 21
Otherwise we can't bump the minimum version of the cerbero build without
it breaking linking of the applications.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3717>
Seungha Yang [Thu, 12 Jan 2023 13:17:24 +0000 (22:17 +0900)]
d3d11memory: Fix potential crash in GstD3D11PoolAllocator
Allocator object can be the final refcount holder, when a GstD3D11Memory
is being released. Do unref allocator once there's no more
remaining operation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3715>
Seungha Yang [Thu, 12 Jan 2023 13:14:30 +0000 (22:14 +0900)]
d3d11memory: Remove GstD3D11PoolAllocator::dispose
Clear GstD3D11Device object in finalize method as well
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3715>
Thibault Saunier [Thu, 12 Jan 2023 17:39:20 +0000 (14:39 -0300)]
glbasefilter: Copy metas when they only contain they "video" tag
Same logic as in `GstVideoFilter`
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3716>
Edward Hervey [Wed, 11 Jan 2023 16:30:09 +0000 (17:30 +0100)]
decodebin3: Fix global group-id handling
The goal of the "global" group-id is to fix new inputs that do not come from the
same "source" as others. In order to ensure all "current" streams have the same
group-id we distribute the first valid group-id to all streams.
This commit fixes two issues with that:
* When inputs are unlinked they weren't always properly resetted (it would only
work if parsebin is used, which is no longer the default in
uridecodebin3/playbin3).
* When computing the global group-id, take into account unset
group-id (i.e. GST_GROUP_ID_INVALID).
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1698
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3712>
Tim-Philipp Müller [Wed, 11 Jan 2023 15:41:26 +0000 (15:41 +0000)]
gst-plugins-ugly: update translations
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1575
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3711>
Tim-Philipp Müller [Wed, 11 Jan 2023 15:41:21 +0000 (15:41 +0000)]
gst-plugins-bad: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3711>
Tim-Philipp Müller [Wed, 11 Jan 2023 15:41:09 +0000 (15:41 +0000)]
gst-plugins-good: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3711>
Tim-Philipp Müller [Wed, 11 Jan 2023 15:41:03 +0000 (15:41 +0000)]
gst-plugins-base: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3711>
Tim-Philipp Müller [Wed, 11 Jan 2023 15:40:49 +0000 (15:40 +0000)]
gstreamer: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3711>
Tim-Philipp Müller [Wed, 11 Jan 2023 14:53:39 +0000 (14:53 +0000)]
Fix translation pot files when creating dist tarballs
Add version as per Translation Project requirements and
also add a .pot file without the ABI suffix.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3711>
Guillaume Desmottes [Tue, 10 Jan 2023 10:19:12 +0000 (11:19 +0100)]
decodebin3: ensure recalculate_group_id() is called with INPUT lock
This function uses main_input and current_group_id which are protected
by the input lock.
Some calls were already safe but not all.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3702>
Guillaume Desmottes [Wed, 21 Dec 2022 14:35:21 +0000 (15:35 +0100)]
uridecodebin3: fix stream leak
GstSourcePad owns the GstStream but was not unreffing it when being
disposed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3617>
Guillaume Desmottes [Wed, 21 Dec 2022 09:44:40 +0000 (10:44 +0100)]
decodebin3: fix dead lock when removing pad
gst_element_remove_pad() is triggering a call to
gst_decodebin3_input_pad_unlink() which needs the input lock as well,
resulting in a dead lock.
Fix #1667
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3614>
Sebastian Dröge [Wed, 11 Jan 2023 10:17:13 +0000 (12:17 +0200)]
tools: Use `gst_macos_main()` on macOS
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1673
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3709>
Nirbheek Chauhan [Tue, 10 Jan 2023 18:50:42 +0000 (00:20 +0530)]
docs: Need to use versioned paths on macOS
Especially with pkg-config, it needs to be called with the right path
otherwise it might not pick up the prefix correctly.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1677
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3706>
Seungha Yang [Tue, 10 Jan 2023 18:23:57 +0000 (03:23 +0900)]
meson: gst-plugins-bad: Disable spammy MSVC warning
warning C5051: attribute 'noinline' requires at least '/std:c++20';
ignored
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3705>
Tim-Philipp Müller [Tue, 10 Jan 2023 13:06:37 +0000 (13:06 +0000)]
tests: interactive: test-effect-switch: use autovideosink
Also works on Windows.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3703>
Sebastian Dröge [Mon, 9 Jan 2023 10:39:55 +0000 (12:39 +0200)]
mxfmux: Add all local tags to the primer
No matter if they're allocated via GSlice or malloc(). The allocator is
completely irrelevant, all local tags need to be in the primer so they
can be handled.
This didn't have any effect in practice because all local tags that
appear in the muxer are allocated via GSlice. Only from the demuxer they
might be allocated via malloc().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3699>
Marek Vasut [Sat, 7 Jan 2023 19:03:31 +0000 (20:03 +0100)]
jpegdec: Disable libjpeg-turbo SIMD acceleration support for now
The libjpeg-turbo SIMD acceleration support suffers from multiple
unresolved cornercases. Disable the libjpeg-turbo for now until
those cornercases are resolved.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3694>
Mathieu Duponchelle [Wed, 4 Jan 2023 14:33:20 +0000 (15:33 +0100)]
ci/README: basic instructions for running locally
These should be extended upon by someone more knowledgeable with the
topic, but that's the basic information I would want to find there
in order to start debugging CI issues locally.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3681>
Guillaume Desmottes [Mon, 9 Jan 2023 12:23:56 +0000 (13:23 +0100)]
libav: avaudec: display flow return name instead of value
More convenient to read in logs. gstavviddec already does it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3700>
Tim-Philipp Müller [Mon, 9 Jan 2023 01:24:57 +0000 (01:24 +0000)]
gst-play: fix command line option string formatting
Add missing space to translated string.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3696>
Philippe Normand [Thu, 15 Dec 2022 18:42:26 +0000 (18:42 +0000)]
av1enc: Add property for controlling max distance between 2 keyframes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743>
Yatin Mann [Mon, 11 Jul 2022 05:33:16 +0000 (11:03 +0530)]
aom: av1enc: Expose more properties
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743>
yatinmaan [Sun, 8 Jan 2023 18:16:40 +0000 (23:46 +0530)]
aom: av1enc: Remove redundant enum variants from header
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743>
Yatin Mann [Mon, 11 Jul 2022 03:57:41 +0000 (09:27 +0530)]
aom: av1enc: Ensure that input pts is strictly increasing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743>
Yatin Mann [Mon, 4 Jul 2022 14:25:59 +0000 (19:55 +0530)]
aom: av1enc: Fix pts unit
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743>
ekwange [Mon, 2 Jan 2023 09:34:59 +0000 (18:34 +0900)]
dfbvideosink: Fix compile error
Fix some compile errors
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3670>
Olivier Crête [Mon, 2 Jan 2023 00:19:03 +0000 (19:19 -0500)]
webrtc nice: Let libnice handle STUN/TURN DNS resolution
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3676>
Olivier Crête [Fri, 6 Jan 2023 20:07:42 +0000 (15:07 -0500)]
webrtc: Change requirement to libnice 0.1.20
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3676>