Commit graph

116171 commits

Author SHA1 Message Date
Nirbheek Chauhan
0cb751b626 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>
2023-02-08 13:42:59 +00:00
Tim-Philipp Müller
d9196b83aa 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>
2023-02-08 11:20:39 +00:00
medithe
a183495faf 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>
2023-02-07 17:54:30 +00:00
Nirbheek Chauhan
f6e672f27f 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>
2023-02-04 16:01:08 +01:00
Seungha Yang
04910ac6c1 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>
2023-02-04 12:13:58 +01:00
Jan Schmidt
f7fc9fd76e 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>
2023-02-02 18:20:42 +00:00
He Junyan
1e34b35044 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>
2023-02-02 16:21:34 +00:00
James Hilliard
30c2036acb 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>
2023-02-02 14:32:49 +00:00
Piotr Brzeziński
26978734fe 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>
2023-02-02 11:29:29 +00:00
Sebastian Dröge
85fcde0f98 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>
2023-02-02 10:13:30 +00:00
Seungha Yang
ba91964a70 nvvp9dec: Fix return value
It should return GstFlowReturn value, not boolean

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3874>
2023-02-02 02:07:04 +00:00
Sebastian Dröge
6ce76c43cb 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>
2023-02-02 00:26:03 +00:00
Tim-Philipp Müller
31c2a978a8 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>
2023-02-01 19:32:28 +00:00
Guillaume Desmottes
707156653f rtpptdemux: set different stream-id on each src pad
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3866>
2023-02-01 17:46:29 +00:00
Guillaume Desmottes
707ebf3789 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>
2023-02-01 17:46:29 +00:00
Thibault Saunier
35b9295087 gst-env: Handle installing python modules to dist-packages
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3848>
2023-01-30 23:36:28 +00:00
Mathieu Duponchelle
9b4b4b51a3 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>
2023-01-28 19:20:29 +00:00
Thibault Saunier
e583baf6b2 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>
2023-01-28 18:22:44 +00:00
Sebastian Dröge
0474720c8b 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>
2023-01-28 17:32:54 +00:00
Thibault Saunier
cba521bc18 uritranscodebin: Fix unref of NULL
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3837>
2023-01-28 16:54:30 +00:00
Seungha Yang
0064fc7764 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>
2023-01-28 15:20:44 +00:00
Mathieu Duponchelle
e0659683e3 BaseSrc, PushSrc: add nullable annotations to virtual methods
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3833>
2023-01-28 12:57:45 +00:00
Nirbheek Chauhan
26ee3d83fb webrtc_sendrecv.py: Fix PEP8 warnings in CI lint
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3816>
2023-01-28 03:05:20 +00:00
Nirbheek Chauhan
dff9f5151b webrtc_sendrecv.py: Handle LATENCY messages
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3816>
2023-01-28 03:05:20 +00:00
Nirbheek Chauhan
361f0f406b webrtc_sendrecv.py: Add bus message handling
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3816>
2023-01-28 03:05:20 +00:00
Nirbheek Chauhan
78c928eefe 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>
2023-01-28 03:05:20 +00:00
Nirbheek Chauhan
6179d5ef61 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>
2023-01-28 03:05:19 +00:00
Nirbheek Chauhan
71b8dc4c28 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>
2023-01-27 04:12:40 +00:00
Seungha Yang
e62800f20c 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>
2023-01-27 03:23:05 +00:00
Jan Alexander Steffens (heftig)
a562ab7c6f 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>
2023-01-27 02:40:04 +00:00
Jan Alexander Steffens (heftig)
1a41344345 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>
2023-01-27 02:40:04 +00:00
Bart Van Severen
db2b357791 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>
2023-01-27 01:58:48 +00:00
Bart Van Severen
0b08687633 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>
2023-01-27 01:58:48 +00:00
Bart Van Severen
f04878c216 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>
2023-01-27 01:58:48 +00:00
Sebastian Dröge
4a433f170e 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>
2023-01-27 00:54:10 +00:00
Sebastian Dröge
a5bbc16ca5 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>
2023-01-27 00:54:10 +00:00
Pawel Stawicki
67df248270 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>
2023-01-27 00:11:06 +00:00
Víctor Manuel Jáquez Leal
791e4c6a85 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>
2023-01-26 23:29:06 +00:00
Nirbheek Chauhan
1eae03486e 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>
2023-01-26 19:40:27 +00:00
Nirbheek Chauhan
5ab15e1738 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>
2023-01-26 19:40:27 +00:00
Mathieu Duponchelle
3e83399103 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>
2023-01-26 18:34:09 +00:00
Edward Hervey
30f7a55a25 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>
2023-01-26 16:52:17 +00:00
Sebastian Dröge
379c6505eb 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>
2023-01-26 15:47:55 +00:00
Sebastian Dröge
1769c5e177 Revert "avvidenc: Set timebase in the ffmpeg context to nanoseconds and set framerate"
This reverts commit 50db59449e.

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>
2023-01-26 15:47:55 +00:00
Jan Alexander Steffens (heftig)
bfe16f29a7 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>
2023-01-26 11:16:31 +00:00
David Svensson Fors
304352ac17 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>
2023-01-26 01:40:43 +00:00
Tim-Philipp Müller
0fefde5da4 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.
2023-01-25 18:03:43 +00:00
Tim-Philipp Müller
e87857a210 Back to development 2023-01-25 16:46:42 +00:00
Tim-Philipp Müller
f13c65d977 Release 1.22.0 2023-01-23 19:41:07 +00:00
Tim-Philipp Müller
6671a24e36 gst-plugins-ugly: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3773>
2023-01-23 16:31:20 +00:00