platform/upstream/gstreamer.git
2 years agowebrtc/nice: Enable nice debug log 23/288223/1
Sangchul Lee [Tue, 14 Feb 2023 03:11:01 +0000 (12:11 +0900)]
webrtc/nice: Enable nice debug log

It has been omitted since it was updated to gst 1.22 version.

Change-Id: I721c195ce30116dade93ef5b23ad9f060c57c026

2 years agoavvidenc: Don't take ffmpeg timestamps verbatim but only use them to calculate DTS 79/288179/3
jiyong.min [Mon, 13 Feb 2023 05:39:45 +0000 (14:39 +0900)]
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 #1544(https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1544)
again.

Part-of: <!3808>

Change-Id: I7bf166986e5fc9b9a43a62eb32c496d4459cd445

2 years agoMerge branch 'tizen_gst_1.22.0' into tizen 24/287924/1
Gilbok Lee [Tue, 7 Feb 2023 22:54:00 +0000 (07:54 +0900)]
Merge branch 'tizen_gst_1.22.0' into tizen

Change-Id: I1e1e80c68f113d92fc502d6e23ba151ce941fdef

2 years agovideoconvertscale: Support I420-to-SN12 converting 42/287742/3 tizen_gst_1.22.0
Jeongmo Yang [Fri, 3 Feb 2023 09:43:23 +0000 (18:43 +0900)]
videoconvertscale: Support I420-to-SN12 converting

- Additional change
 : Enable videoconvertscale.
 : Remove unused directory(videoconvert, videoscale) which are already removed from upstream.

[Version] 1.22.0-8
[Issue Type] Update

Change-Id: I6d8635c0717b81d70a6eaa39cedb827111cf0f5b
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
2 years agov4l2h264dec: Fix Raspberry Pi4 will not play video in application 99/287599/1
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

Change-Id: Ib28d0eb58fb6f280542af1e2fb9cc43142120336
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3786>

2 years agogood: enable adaptivedemux2 84/287584/3
Eunhye Choi [Wed, 1 Feb 2023 03:06:42 +0000 (12:06 +0900)]
good: enable adaptivedemux2

- good: enable adaptivedemux2 to support hls playback
  with uridecodebin3 which does not use old hlsdemux
- good/adaptivedemux2: make post variant info at new hls plugin
- base/uridecodebin3: make post buffering msg without drop
  to control buffering at libmm-player

Change-Id: I94c310ceefe57efeba439112d1d0fe4f3e38553f

2 years agogst-plugins-bad: Fix pkgconfig file issue 29/287529/1
Sangchul Lee [Tue, 31 Jan 2023 03:25:31 +0000 (12:25 +0900)]
gst-plugins-bad: Fix pkgconfig file issue

pc files from this project could not be found when compiling other
packages using these pc files as BuildRequires.
As a result, some Tizen native packages could not be built well.
e.g.) capi-media-webrtc, capi-media-streamer

This issue is related to the meson version. See below.
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3061

It is fixed as per the current circumstance of Tizen dev.

Change-Id: Iad46fa21d87416b4b3bec0d90f538dfff74a83d1

2 years agofixup! Apply GStreamer 1.22.0 into Tizen 70/287470/1
Sangchul Lee [Mon, 30 Jan 2023 09:24:41 +0000 (18:24 +0900)]
fixup! Apply GStreamer 1.22.0 into Tizen

A crash issue related to webrtcbin is fixed.

Change-Id: Ie91cad999bb7ec1168c98cb7f5179d81e23c60ec

2 years agonice: Sync with libnice 0.1.21's 60/287460/2
Sangchul Lee [Mon, 30 Jan 2023 02:17:45 +0000 (11:17 +0900)]
nice: Sync with libnice 0.1.21's

Change-Id: I9eb5533bff65b614045d08bd8f4d5bf6551f536e

2 years agoavenc_mpeg2video:Apply the patch for breaking some encoders 58/287458/2
jiyong.min [Mon, 30 Jan 2023 06:05:39 +0000 (15:05 +0900)]
avenc_mpeg2video:Apply the patch for breaking some encoders

- https://github.com/GStreamer/gstreamer/commit/5372b77987cbdf16f681526152325bee8388ab62
Revert "avvidenc: Set timebase in the ffmpeg context to nanoseconds a…
…nd set framerate"

This reverts commit 50db594.

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/3780>

Change-Id: I40383d874e929d1eade6f586e5a977631d4d556e

2 years agov4l2videodec: Add removed tizen feature code by conflict 74/287374/1
Jeongmo Yang [Fri, 27 Jan 2023 08:47:13 +0000 (17:47 +0900)]
v4l2videodec: Add removed tizen feature code by conflict

- It fixes failure of player API.

Change-Id: Id9e0820daf65fa398755c24b39945e1a8e399142
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
2 years agowebrtc: Use nice implementation for WebRTCICE 63/287363/1
Sangchul Lee [Fri, 27 Jan 2023 07:45:12 +0000 (16:45 +0900)]
webrtc: Use nice implementation for WebRTCICE

Change-Id: I414d9dfca5e679efc2d93ca7abd1b82a91f6f3aa

2 years agoApply GStreamer 1.22.0 into Tizen 72/287272/5
Eunhye Choi [Wed, 25 Jan 2023 04:26:41 +0000 (13:26 +0900)]
Apply GStreamer 1.22.0 into Tizen

- gbs build works : both full and each plugin

Change-Id: I7d4948119a07a67efd66b129e9dd65d70c4230ce

2 years agoRelease 1.22.0 1.22.0
Tim-Philipp Müller [Mon, 23 Jan 2023 19:29:34 +0000 (19:29 +0000)]
Release 1.22.0

2 years agogst-plugins-ugly: update translations
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>

2 years agogst-plugins-bad: update translations
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>

2 years agogst-plugins-good: update translations
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>

2 years agogst-plugins-base: update translations
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>

2 years agogstreamer: update translations
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>

2 years agod3d11compositor: Workaround blending artifacts on Intel platform
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>

2 years agoglvideomixer: Fixing error with mouse navigation events when no pixel-aspect-ratio
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>

2 years agoplayback: New playback elements are no longer experimental
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>

2 years agoexamples: webrtc: rust: Update dependencies
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>

2 years agoexamples: webrtc: multiparty-sendrecv: rust: Remove unnecessary macro recursion limit...
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>

2 years agoexamples: webrtc: sendrecv: rust: Implement `OFFER_REQUEST` handling
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>

2 years agoexamples: webrtc: sendrecv: rust: Allow providing our ID via the commandline
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>

2 years agoexamples: webrtc: sendrecv: rust: Implement TWCC support in both directions
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>

2 years agoexamples: webrtc: rust: Set keyframe-max-dist=2000 and picture-id-mode=15-bit for...
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>

2 years agoexamples: webrtc: sendrecv: rust: Use the correct payload types if the remote is...
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>

2 years agowpe: Add 'run-javascript' action signal
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>

2 years agodecodebin3: Remove failing stream from selection
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>

2 years agodecodebin3: Don't intercept queries if no parsebin present
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>

2 years agodecodebin3: Don't insert parsebin if input is already parsed
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>

2 years agowin32ipcvideosrc: Fix leak in fallback copy path
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>

2 years agova: Fix path leak
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>

2 years agogst: Mark caps parameters in ALLOCATION query API as nullable
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>

2 years agogst-play: add --no-position
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>

2 years agomatroska: Add `stream-format = (string) obu-stream` to AV1 caps
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>

2 years agoisomp4: Add `stream-format = (string) obu-stream` to AV1 caps
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>

2 years agogst-examples: Update Rust dependencies
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>

2 years agogleglimage: Fix GL_OES_EGL_image_external name in debug trace
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>

2 years agoinput-selector: Take the object lock while iterating sinkpads
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>

2 years agoglvideomixer: don't clear pad->geometry_change when setting an identical value
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>

2 years agogst-docs: include dmabuf and gapless playback design docs
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>

2 years agouridecodebin3: clear subitem if suburi is set to NULL
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>

2 years agoqtdemux: Add basic support for AVC-Intra video
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>

2 years agogl: Fix crash in cocoa due to race in gst_gl_context_activate()
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>

2 years agoges: smart-mixer: Avoid video freeze on NLE stack changes
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>

2 years agoges: Fix issues avoiding to use `operator` when unavailable on mixer
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>

2 years agogl/cocoa: Store a weak reference to the `GstGLWindow` instead of the `GstGLContext`
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>

2 years agoRelease 1.21.90
Tim-Philipp Müller [Fri, 13 Jan 2023 19:08:48 +0000 (19:08 +0000)]
Release 1.21.90

2 years agoavvidenc: Offset PTS to zero to fix bitrate control
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>

2 years agourisourcebin: Cleanup on failure
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>

2 years agourisourcebin: Unset locked state
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>

2 years agouridecodebin3: Handle state synchronization failures
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>

2 years agortopuspay: Use GstStaticCaps to cache parsed caps
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>

2 years agortopuspay: Ignore the stereo parameter in multiopus caps
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>

2 years agortpopuspay: Leave original caps as-is
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>

2 years agortpopuspay: Return upstream channel filter based on OPUS vs MULTICAPS
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>

2 years agortpopus: Put MULTIOPUS in all caps
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>

2 years agoandroid: Update minimum SDK version to Android 21
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>

2 years agod3d11memory: Fix potential crash in GstD3D11PoolAllocator
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>

2 years agod3d11memory: Remove GstD3D11PoolAllocator::dispose
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>

2 years agoglbasefilter: Copy metas when they only contain they "video" tag
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>

2 years agodecodebin3: Fix global group-id handling
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>

2 years agogst-plugins-ugly: update translations
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>

2 years agogst-plugins-bad: update translations
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>

2 years agogst-plugins-good: update translations
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>

2 years agogst-plugins-base: update translations
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>

2 years agogstreamer: update translations
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>

2 years agoFix translation pot files when creating dist tarballs
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>

2 years agodecodebin3: ensure recalculate_group_id() is called with INPUT lock
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>

2 years agouridecodebin3: fix stream leak
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>

2 years agodecodebin3: fix dead lock when removing pad
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>

2 years agotools: Use `gst_macos_main()` on macOS
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>

2 years agodocs: Need to use versioned paths on macOS
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>

2 years agomeson: gst-plugins-bad: Disable spammy MSVC warning
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>

2 years agotests: interactive: test-effect-switch: use autovideosink
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>

2 years agomxfmux: Add all local tags to the primer
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>

2 years agojpegdec: Disable libjpeg-turbo SIMD acceleration support for now
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>

2 years agoci/README: basic instructions for running locally
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>

2 years agolibav: avaudec: display flow return name instead of value
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>

2 years agogst-play: fix command line option string formatting
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>

2 years agoav1enc: Add property for controlling max distance between 2 keyframes
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>

2 years agoaom: av1enc: Expose more properties
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>

2 years agoaom: av1enc: Remove redundant enum variants from header
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>

2 years agoaom: av1enc: Ensure that input pts is strictly increasing
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>

2 years agoaom: av1enc: Fix pts unit
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>

2 years agodfbvideosink: Fix compile error
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>

2 years agowebrtc nice: Let libnice handle STUN/TURN DNS resolution
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>

2 years agowebrtc: Change requirement to libnice 0.1.20
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>

2 years agortspclientsink: Add `publish-clock-mode` property
Sebastian Dröge [Fri, 16 Dec 2022 09:16:52 +0000 (11:16 +0200)]
rtspclientsink: Add `publish-clock-mode` property

This allows modifying the behaviour how/if the pipeline clock is
published according to RFC7273, similar to the same API on
`GstRTSPMedia`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3581>

2 years agortspclientsink: Fix docs for various properties
Sebastian Dröge [Wed, 4 Jan 2023 11:46:15 +0000 (13:46 +0200)]
rtspclientsink: Fix docs for various properties

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3581>

2 years agodocs: explicitly declare gir build dependencies
Mathieu Duponchelle [Wed, 4 Jan 2023 20:37:55 +0000 (21:37 +0100)]
docs: explicitly declare gir build dependencies

As the path to the gir file is passed to hotdoc.generate_doc() and
not the build target itself, meson doesn't know about the dependency.

In turn, as the CI doesn't build everything before building the
documentation target, some gir files might not exist, for instance
in the case of gst-rtsp-server, causing the output documentation to
be empty.

The error occurred silently because hotdoc accepts wildcards for
*-sources arguments, thus it won't warn about a missing gir file as
it is legitimate for glob matching to resolve to nothing.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3686>

2 years agotypefindfunctions: Add missing length check to XML typefinder
Sebastian Dröge [Fri, 6 Jan 2023 16:09:02 +0000 (18:09 +0200)]
typefindfunctions: Add missing length check to XML typefinder

Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=54811

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3690>

2 years agotypefindfunctions: Reduce XML typefinder minimum data size from 64 to 32 bytes
Sebastian Dröge [Fri, 6 Jan 2023 12:37:31 +0000 (14:37 +0200)]
typefindfunctions: Reduce XML typefinder minimum data size from 64 to 32 bytes

64 bytes makes the typefinder fail on very small XML documents on which
it succeeded previously.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3690>

2 years agoopusdec: Try harder to negotiate the upstream channels/rate preferences
Sebastian Dröge [Thu, 5 Jan 2023 15:59:41 +0000 (17:59 +0200)]
opusdec: Try harder to negotiate the upstream channels/rate preferences

It might be possible to fulfill those but not with the first caps
structure. Instead of just fixating the first caps structure, check if
the preference can be fulfilled by any of the structures as the first
step.

Without this the following pipeline negotiates to mono after the
decoder because opusenc only has a single channel in its first caps
structure.

    gst-launch-1.0 audiotestsrc ! audio/x-raw,channels=2 ! opusenc \
        ! queue ! opusdec ! queue ! opusenc ! fakesink

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3689>

2 years agoRevert "opusenc: Reverse channel order in template caps"
Sebastian Dröge [Thu, 5 Jan 2023 15:35:02 +0000 (17:35 +0200)]
Revert "opusenc: Reverse channel order in template caps"

This reverts commit cdf411e82d7e437e5de138492b6e75e5513686ee. It causes
pipelines to unnecessarily negotiate to 8 channels.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1688

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3689>

2 years agodvbbasebin: don't rely on g_key_file_get_(integer|uint64) return
Rodrigo Bernardes [Wed, 4 Jan 2023 21:55:08 +0000 (18:55 -0300)]
dvbbasebin: don't rely on g_key_file_get_(integer|uint64) return

instead check if an error was returned, and fail if any

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3688>

2 years agohlsdemux: Consider starting stream time in presentation offset
Jan Schmidt [Sun, 7 Aug 2022 04:23:04 +0000 (14:23 +1000)]
hlsdemux: Consider starting stream time in presentation offset

When calculating the presentation offset for CMAF input in live
playback, subtract the stream_time of the fragment from the
calculated presentation offset, so that the first fragment
is played at running time zero.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3680>