Thibault Saunier [Tue, 31 Jan 2023 16:21:48 +0000 (13:21 -0300)]
uridecodebin: Set source element to READY before querying it
Generating the source element is done when uridecodebin is doing the
READY to PAUSED state change, so it is reasonable to set the new source
element to that state.
This also allows detecting early failures with backing libraries or
hardware (checks done in NULL->READY).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4016>
Matthew Waters [Tue, 21 Feb 2023 04:19:35 +0000 (15:19 +1100)]
ccconverter: don't debug a potentially freed filter caps
Fixes a use-after-free
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4013>
Seungha Yang [Mon, 20 Feb 2023 15:27:27 +0000 (00:27 +0900)]
d3d11videosink: Fix rendering on external handle
Partial revert of the commit
068a5c1053ae05b3c7747243948447e764d25aa6.
That introduced size mismatch between internal and external HWND
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4010>
Víctor Manuel Jáquez Leal [Sun, 19 Feb 2023 11:01:59 +0000 (12:01 +0100)]
vah265enc: Use helper to update properties.
This is a continuation of the original patch by
Mengkejiergeli Ba <mengkejiergeli.ba@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4009>
Mengkejiergeli Ba [Tue, 14 Feb 2023 02:29:00 +0000 (10:29 +0800)]
av1parser, h265parser: Fix some code defects
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4003>
Jan Schmidt [Mon, 6 Feb 2023 17:58:04 +0000 (04:58 +1100)]
webrtc: Calculate the jitter for remote-inbound-rtp stats
Populate the clock-rate in the internal stats structure, so
it can be used by the _get_stats_from_remote_rtp_source_stats()
method to calculate remote receivers' jitter.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3994>
Jan Schmidt [Tue, 31 Jan 2023 23:44:26 +0000 (10:44 +1100)]
webrtcbin: Report full codec-stats for source pads
Use the current caps for webrtcbin srcpads, as received_caps
are only stored for sink pads based on incoming caps events.
Makes it so that webrtcbin stats reports contain fuller
codec information.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3994>
Yinhang Liu [Fri, 17 Feb 2023 06:56:20 +0000 (14:56 +0800)]
msdkav1enc: fix the category for msdkav1enc debug
The msdkav1enc debug initialized with gst_msdkav1dec_debug,
fix this.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3991>
Enrique Ocaña González [Wed, 1 Feb 2023 11:09:52 +0000 (12:09 +0100)]
qtdemux: Don't emit GstSegment correcting start time when in MSE mode
When using qtdemux in a pipeline that should only work as a pure demuxer (not
for actual playback), qtdemux shouldn't emit new GstSegments to correct
the start time (jump to the future) to ensure that the user experiences no
playback delay. By doing so, it's generating the wrong segments when an append
of data from the past happens. When that happens, downstream elements such as
parsers (eg: aacparse) may clip those buffers laying before the GstSegment and
create problems on the GStreamer client app (eg: WebKit).
Getting buffers clipped out because of the wrong GstSegments started becoming
a problen when this commit was introduced:
ab6e49e9cc audioparsers: add back segment clipping to parsers that have lost it
This clipping makes test DASH shaka 35 from MVT tests[1] to fail in
WebKitGTK/WPE (at least) and can potentially cause a number of other problems
in the WebKit Media Source Extensions (MSE) code.
Note that this new behaviour of not emitting new GstSegments only makes sense
when qtdemux is being used as a pure demuxer and not as part of a regular
pipeline. This is why the variant field has been added. When equal to
VARIANT_MSE_BYTESTREAM, it will make qtdemux behave differently in push mode,
taking decisions that meet the expectations for an MSE-like processing mode.
This kind of tweaks have been done in the past for MSS streams, for instance.
That code has been refactored to use VARIANT_MSS_FRAGMENTED now, instead of
its own dedicated boolean flag.
Co-authored by: Alicia Boya García <ntrrgc@gmail.com>
...who suggested to use "variant: mse-bytestream" in the caps to identify that
mode, as proposed in her unmerged patch:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/467
[1] https://github.com/rdkcentral/mvt
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3990>
Thibault Saunier [Thu, 16 Feb 2023 01:06:39 +0000 (22:06 -0300)]
tests: Move srtp test known issue def to the 'check' testuite
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3986>
Thibault Saunier [Thu, 16 Feb 2023 01:05:53 +0000 (22:05 -0300)]
validate:launcher: try to bne more explicit about where to add known failure
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3986>
Thibault Saunier [Thu, 16 Feb 2023 01:02:56 +0000 (22:02 -0300)]
validate:launcher: Handle known return code issue in none validate based tests
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3986>
Seungha Yang [Wed, 15 Feb 2023 16:36:41 +0000 (01:36 +0900)]
codectimestamper: Fix timestamping on sequence update
... and enhance debug logging.
Keep internal timestamp offsets on drain, no reason to reset them
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3987>
Mengkejiergeli Ba [Wed, 15 Feb 2023 01:45:28 +0000 (09:45 +0800)]
codecparsers: {h264,h265}bitwriter: Remove redundant condition checks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3978>
Tim-Philipp Müller [Tue, 14 Feb 2023 14:43:34 +0000 (14:43 +0000)]
validate: add elements_srtp.test_play_key_error to flaky test list
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1777
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3970>
Tim-Philipp Müller [Fri, 10 Feb 2023 10:02:35 +0000 (10:02 +0000)]
tests: mark elements_srtp.test_play test as flaky
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1777
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3970>
Seungha Yang [Sun, 12 Feb 2023 14:17:41 +0000 (23:17 +0900)]
amfav1enc: Set stream-format on caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3961>
Seungha Yang [Sun, 12 Feb 2023 14:12:21 +0000 (23:12 +0900)]
qsvav1enc: Set stream-format on caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3961>
U. Artie Eoff [Mon, 13 Feb 2023 22:02:01 +0000 (17:02 -0500)]
avviddec: change AV_CODEC_CAP_AUTO_THREADS->AV_CODEC_CAP_OTHER_THREADS
This fixes a compile error with recent upstream FFmpeg.
The AV_CODEC_CAP_AUTO_THREADS was deprecated and renamed to
AV_CODEC_CAP_OTHER_THREADS in FFmpeg upstream commit
7d09579190de (lavc 58.132.100).
The AV_CODEC_CAP_AUTO_THREADS was finally removed in FFmpeg upstream
commit
10c9a0874cb3 (lavc 59.63.100).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3964>
Thibault Saunier [Fri, 10 Feb 2023 11:20:38 +0000 (08:20 -0300)]
glvideomixer: Keep a reference to the underlying pad
There was cases where we were accessing the pad while it was already
destroyed. Ensure it can't happen by owning a ref on it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3963>
Piotr Brzeziński [Tue, 7 Feb 2023 15:25:02 +0000 (16:25 +0100)]
vtenc/vtdec: Fix typo in RGBA64_LE availability define
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3962>
Piotr Brzeziński [Tue, 7 Feb 2023 15:04:22 +0000 (16:04 +0100)]
vtenc: Disable ARGB/RGBA64 caps on M1 Pro/Max with macOS <13
Fixes #1358.
Passing ARGB64/RGBA64 to vtenc caused the encoding to fail
when running on M1 Pro/Max variants with macOS 12.x, so let's
remove these formats from caps when such scenario is detected.
This issue appears to have been fixed OS-side in macOS 13.0.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3962>
Yang, Xuchen [Mon, 13 Feb 2023 19:46:03 +0000 (11:46 -0800)]
audio: channel-mix: Fix channel count limit to be able to equal 64
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3958>
Vivia Nikolaidou [Fri, 10 Feb 2023 13:43:45 +0000 (15:43 +0200)]
qtdemux: Handle moov atom length=0 case by reading until the end
Previously it would fail to demux the file by trying to read G_MAXUINT64
bytes.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3938>
Vivia Nikolaidou [Fri, 10 Feb 2023 13:35:15 +0000 (15:35 +0200)]
qtdemux: Fix guint vs gsize type confusion
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3938>
Piotr Brzeziński [Thu, 9 Feb 2023 17:51:30 +0000 (18:51 +0100)]
vtdec: Fix not waiting for async frames when flushing
This was causing incorrect output when seeking, especially
when used with a multithreaded source like `videotestsrc n-threads=2`.
It should now correctly wait for frames still being processed by VT
while vtdec is flushing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3937>
Alessandro Bono [Fri, 10 Feb 2023 11:52:17 +0000 (12:52 +0100)]
win32ipcutils: Add missing include
We are using std::isspace() with one parameter. That function is defined
in the cctype header.
```
win32ipcutils.cpp(34): error C2672: 'std::isspace': no matching overloaded function found
win32ipcutils.cpp(34): error C2780: 'bool std::isspace(_Elem,const std::locale &)': expects 2 arguments - 1 provided
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3936>
Jan Alexander Steffens (heftig) [Thu, 9 Feb 2023 12:53:48 +0000 (13:53 +0100)]
pad: Don't leak user_data in gst_pad_start_task
When the task already exists, we forgot to free the passed `user_data`.
This wasn't an issue for most C code, which doesn't pass a
`GDestroyNotify`, but bindings such as gstreamer-rs do!
That said, allocating a trampoline in gstreamer-rs just for it to get
thrown away again is awkward. Maybe we need a `gst_pad_resume_task`?
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3925>
Sebastian Dröge [Mon, 6 Feb 2023 13:26:48 +0000 (15:26 +0200)]
av1parser: Don't consider unknown metadata OBUs a bitstream error
Just don't parse them.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1774
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3924>
Edward Hervey [Wed, 8 Feb 2023 11:00:54 +0000 (12:00 +0100)]
subparse: Properly forward segment seqnum
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3917>
Edward Hervey [Tue, 7 Feb 2023 07:49:24 +0000 (08:49 +0100)]
closedcaption: Don't leak caps event
All events that we handle should be unreffed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3906>
Nirbheek Chauhan [Thu, 26 Jan 2023 14:22:37 +0000 (19:52 +0530)]
meson: Allow sysdeps to be forced as fallback subprojects
The original code was too complicated; likely created before the
provide section existed for wraps:
https://mesonbuild.com/Wrap-dependency-system-manual.html#provide-section
Now you can do --force-fallback-for=pygobject and it'll actually work.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3905>
Tim-Philipp Müller [Sat, 28 Jan 2023 20:02:49 +0000 (20:02 +0000)]
validate-scenario: fix g-i warning in annotation
gst-validate-scenario.c:2485: Warning: GstValidate: missing ":" at column 28:
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3842>
medithe [Tue, 7 Feb 2023 13:43:06 +0000 (13:43 +0000)]
gstreamer: bin: Don't unlock unlocked mutex in gst_bin_remove_func()
Calling `g_mutex_unlock(mutex)` leads to an undefined behavior if the
mutex is not locked by the current thread.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3910>
Nirbheek Chauhan [Thu, 26 Jan 2023 11:58:24 +0000 (17:28 +0530)]
webrtc examples: Use webrtc.gstreamer.net
Actually just a CNAME to webrtc.nirbheek.in for now, but it allows
replacement / hosting without my involvement, so reduces the bus
factor.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3892>
Seungha Yang [Fri, 3 Feb 2023 13:10:12 +0000 (22:10 +0900)]
nvencoder: Fix min buffers parameter of allocation query in auto GPU mode
At the time when propose_allocation() get called, encoder session
would not be initialized yet.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3891>
Jan Schmidt [Thu, 2 Feb 2023 12:20:04 +0000 (23:20 +1100)]
gl/cocoa: Return a strong ref to the parent GstGLContext
If the GstGLCAOpenGLLayer was initialized via a parent
context, make sure to ref the context before returning it
from getGLContext as all callers will unref it.
Follow up to !3729
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3885>
He Junyan [Thu, 19 Jan 2023 03:03:09 +0000 (11:03 +0800)]
va: Avoid the array index overflow when filling 8x8 scaling list.
The VA API has not defined the scaling list entries for U/V planes
for the 4:4:4 stream. In fact, we do not meet the 4:4:4 format output
for H264 so far, and scaling list is not used frequently, so we just
print out some warning and ignore these scaling list values.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3877>
James Hilliard [Wed, 1 Feb 2023 04:38:09 +0000 (21:38 -0700)]
Fix gstreamer-validate-1.0 dependency name
The gst-devtools project generates gstreamer-validate-1.0.pc, this
must match the dependency in gst-editing-services for detection
to work properly.
Fixes:
Run-time dependency gst-validate-1.0 found: NO (tried pkgconfig and cmake)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3872>
Piotr Brzeziński [Wed, 9 Nov 2022 19:20:35 +0000 (20:20 +0100)]
vtenc: Disable HW acceleration for interlaced ProRes
Due to a bug in the VT API, attempting to encode interlaced content
with ProRes results in an error, halting the pipeline instead of
gracefully falling back to software encoding.
Should be removed in the future if Apple ever fixes this issue.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3878>
Sebastian Dröge [Wed, 1 Feb 2023 15:26:57 +0000 (17:26 +0200)]
aom: Include stream-format and alignment in the AV1 caps
The decoder does not work with arbitrary alignment and annexb stream
format and the encoder can give the information that it outputs
obu-stream/tu to downstream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3873>
Seungha Yang [Wed, 1 Feb 2023 20:04:48 +0000 (05:04 +0900)]
nvvp9dec: Fix return value
It should return GstFlowReturn value, not boolean
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3874>
Sebastian Dröge [Tue, 31 Jan 2023 14:56:18 +0000 (16:56 +0200)]
rtspsrc: Also consider "Method Not Valid In This State" error in broken control URL handling workaround
Some servers send a 455 error instead of any reasonable error when using
a correctly constructed control URL.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3864>
Tim-Philipp Müller [Wed, 1 Feb 2023 18:55:17 +0000 (18:55 +0000)]
ci: rebuild windows image
Needed for the backport of https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3805
to take effect, once cerbero is made to use the new image.
Should fix errors like
cp: will not create hard link `./cerbero-sources/sbc-1.3' to directory `./cerbero-sources/bzip2-1.0.8'
and similar.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3869>
Guillaume Desmottes [Tue, 31 Jan 2023 15:44:10 +0000 (16:44 +0100)]
rtpptdemux: set different stream-id on each src pad
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3866>
Guillaume Desmottes [Tue, 31 Jan 2023 14:28:22 +0000 (15:28 +0100)]
rtpssrcdemux: set different stream-id on each src pad
All the RTP src pads were sharing the same stream-id while each actually
carry a different stream.
This was causing problem for example when funneling the streams together
and then trying to split them using 'streamiddemux'.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3866>
Thibault Saunier [Fri, 27 Jan 2023 14:47:22 +0000 (11:47 -0300)]
gst-env: Handle installing python modules to dist-packages
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3848>
Mathieu Duponchelle [Fri, 27 Jan 2023 18:29:24 +0000 (19:29 +0100)]
BaseSrc: fix transfer annotation for fixate virtual method
The fixate virtual method has the same semantics as gst_caps_fixate(),
so the caps parameter must be marked as (transfer full).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3839>
Thibault Saunier [Fri, 27 Jan 2023 16:49:33 +0000 (13:49 -0300)]
validate: Fix gst_validate_execute_action annotation
The action passed in is transfer full
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3838>
Sebastian Dröge [Fri, 27 Jan 2023 14:22:06 +0000 (16:22 +0200)]
gldisplay: Mark `gst_gl_display_create_context()` `other_context` parameter as nullable
See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/438
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3835>
Thibault Saunier [Fri, 27 Jan 2023 18:54:48 +0000 (15:54 -0300)]
uritranscodebin: Fix unref of NULL
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3837>
Seungha Yang [Thu, 29 Dec 2022 15:49:27 +0000 (00:49 +0900)]
mpegpsdemux: Ignore DTS if PTS < DTS
It's possibly timestamp rollover case. But PTS < DTS is already
invalid case anyway.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3836>
Mathieu Duponchelle [Thu, 26 Jan 2023 14:42:18 +0000 (15:42 +0100)]
BaseSrc, PushSrc: add nullable annotations to virtual methods
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3833>
Nirbheek Chauhan [Wed, 18 Jan 2023 02:08:51 +0000 (07:38 +0530)]
webrtc_sendrecv.py: Fix PEP8 warnings in CI lint
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3816>
Nirbheek Chauhan [Wed, 18 Jan 2023 02:06:47 +0000 (07:36 +0530)]
webrtc_sendrecv.py: Handle LATENCY messages
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3816>
Nirbheek Chauhan [Wed, 18 Jan 2023 02:06:21 +0000 (07:36 +0530)]
webrtc_sendrecv.py: Add bus message handling
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3816>
Nirbheek Chauhan [Wed, 18 Jan 2023 02:05:18 +0000 (07:35 +0530)]
webrtc_sendrecv.py: Add support for using H264 encoding
Currently only works when we are creating the offer or the offer only
contains H264.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3816>
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>