Tim-Philipp Müller [Mon, 4 Mar 2024 23:51:42 +0000 (23:51 +0000)]
Release 1.24.0
Mathieu Duponchelle [Mon, 4 Mar 2024 17:01:50 +0000 (18:01 +0100)]
analytics: whitespace matters for gtk-doc syntax
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6253>
Olivier Crête [Sun, 3 Mar 2024 23:35:09 +0000 (18:35 -0500)]
analytics: Add documentation to hotdoc build
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6253>
Olivier Crête [Sun, 3 Mar 2024 23:34:41 +0000 (18:34 -0500)]
analytics: Add missing documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6253>
Olivier Crête [Sun, 3 Mar 2024 23:33:48 +0000 (18:33 -0500)]
analytics: Fix various typos in the documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6253>
Edward Hervey [Mon, 4 Mar 2024 11:22:25 +0000 (12:22 +0100)]
playback: Remove USE_PLAYBIN3 registration override
This was only introduced as a convenience for testing playbin3 instead of
playbin2.
Now that playbin3 is (explicitely) default in many cases, we should not do this
hack anymore
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6255>
Jurijs Satcs [Thu, 29 Feb 2024 08:30:47 +0000 (09:30 +0100)]
audioconvert: set mix-matrix when user changes it to empty
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6243>
Seungha Yang [Wed, 28 Feb 2024 17:41:42 +0000 (02:41 +0900)]
d3d11memory, d3d12memory: Fix outstanding memory count tracing
Gets being released memory back to queue even if allocator is flushing
in order to count the number of outstanding memory objects.
Also, clear queue if there's no outstanding memory object and
allocator is flushing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6240>
Seungha Yang [Wed, 28 Feb 2024 17:30:38 +0000 (02:30 +0900)]
tests: d3d11: Add buffer pool test
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6240>
Seungha Yang [Wed, 28 Feb 2024 17:06:43 +0000 (02:06 +0900)]
cudamemory: Fix outstanding memory count tracing
Gets being released memory back to queue even if allocator is flushing
in order to count the number of outstanding memory objects.
And fixing double count increment
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6240>
Seungha Yang [Wed, 28 Feb 2024 17:06:25 +0000 (02:06 +0900)]
tests: cuda: Add buffer pool test
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6240>
Thibault Saunier [Tue, 27 Feb 2024 17:00:04 +0000 (14:00 -0300)]
ges: framepositioner: Expose positioning properties as doubles
Making it possible to properly handle compositors that have those
properties as doubles and handle antialiasing.
Internally we were handling those values as doubles in framepositioner,
so expose new properties so user can set values as doubles also.
This changes the GESFramePositionMeta API but we are still on time for 1.24
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6241>
Marvin Schmidt [Wed, 28 Feb 2024 15:51:37 +0000 (16:51 +0100)]
allocators: drmdumb: Remove extra semicolon after G_DECLARE_FINAL_TYPE
The `G_DECLARE_FINAL_TYPE` macro does not need to be terminated with a
semicolon and the extra semicolon breaks building e.g. libcamera with
clang because `-Wextra-semi` is used which produces the following
error in conjunction with `-Werror`:
```
gstreamer-1.0/gst/allocators/gstdrmdumb.h:61:43: error: extra ';' outside
of a function is incompatible with C++98 [-Werror,-Wc++98-compat-extra-semi]
61 | GST, DRM_DUMB_ALLOCATOR, GstAllocator);
| ^
1 error generated.
```
Fix this by removing the extra semicolon
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6239>
Thibault Saunier [Mon, 26 Feb 2024 18:15:05 +0000 (15:15 -0300)]
docs: Update lumen theme
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6224>
Damian Hobson-Garcia [Thu, 15 Feb 2024 21:41:54 +0000 (16:41 -0500)]
waylandsink: Move buffer commits to the display thread
Syncrhonizing buffer commits to the streaming thread can lead to
dropped frames when frame callbacks are not processed before the
next frame is ready for rendering. Depending on the drift between
the wayland compositor and buffer source timings, this can lead to
periods of significant frame drop, especially when the media frame
rate is close to the display frame rate.
Cache buffers in the streaming thread and peform commits on the
display thread to eliminate the buffer commit racing.
The implementation is the same for both waylandsink and gtkwaylandsink,
so move it to the common wayland library under gst-lib.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6133>
Damian Hobson-Garcia [Thu, 15 Feb 2024 21:41:52 +0000 (16:41 -0500)]
wayland: Add API to ref/unref current GstBuffer inside a GstWlBuffer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6133>
Damian Hobson-Garcia [Thu, 15 Feb 2024 21:42:13 +0000 (16:42 -0500)]
wayland: Add synchronized requests to WlDisplay
Add synchonized versions of wl_display_sync() and wl_callback_destroy()
that will ensure that to callbacks can be managed in a thread safe way
on the display queue even when they are dispatched from a separate
thread.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6133>
Thibault Saunier [Mon, 26 Feb 2024 15:38:55 +0000 (12:38 -0300)]
volume: Expose the `volume-full-range` as another property
In https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5063
the range of volume value has changed which breaks backward compatibility
when using a GstDirectControlBinding which is not acceptable. To avoid
breaking compatibility add the feature of allowing the full range using
another property with the full range. When using that full range, the
value of the `volume` property might end up being out of its valid
range but we do not really have a good solution for that.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3257
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6222>
Nirbheek Chauhan [Tue, 27 Feb 2024 08:52:58 +0000 (14:22 +0530)]
rtspsrc: Increase rank to PRIMARY for autoplug purposes
This affects autoplug by gst_element_make_from_uri() in, for example,
uridecodebin. The element should've already been PRIMARY rank, but it
was NONE because gst_element_make_from_uri() doesn't ignore NONE rank
elements when searching for element factories, unlike decodebin.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/502
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6226>
Edward Hervey [Mon, 26 Feb 2024 08:27:40 +0000 (09:27 +0100)]
docs: Use Discourse and Matrix as prefered communication channels
Part of: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6220
Edward Hervey [Mon, 26 Feb 2024 08:26:44 +0000 (09:26 +0100)]
gitlab_template: Remove duplicate entry and remove mention of IRC
Part of: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6220
Alexander Slobodeniuk [Thu, 22 Feb 2024 14:41:16 +0000 (15:41 +0100)]
d3d11window_win32: fix crash on RC unprepare() vs window_proc()
Unprepare method posts WM_GST_D3D11_DESTROY_INTERNAL_WINDOW
command to the window queue, and from that moment considers
internal_hwnd to be released, and so it sets it to null.
The problem is that it's possible that right at that moment
the window thread might be already processing some other
command, or just another command might be already in the queue.
On practice we met a crash when WM_PAINT got processed in between
(unprepare already finished and WM_GST_D3D11_DESTROY_INTERNAL_WINDOW
was not handled yet)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6187>
Arnaud Vrac [Wed, 21 Feb 2024 11:20:19 +0000 (12:20 +0100)]
queue2: post 100% buffering message even when waiting for space to be freed
In the case where the queue shrinks due to a property change and the queue
becomes full, we would set the waiting_del flag, which would prevent posting the
100% buffering message on the bus. Since the pipeline is not aware of the new
buffering value, in the common case where the pipeline is paused during
buffering, it would never resume.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6165>
Arnaud Vrac [Wed, 21 Feb 2024 11:17:45 +0000 (12:17 +0100)]
queue2: move gst_queue2_get_buffering_message code to the only call site
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6165>
Arnaud Vrac [Wed, 21 Feb 2024 11:05:18 +0000 (12:05 +0100)]
queue2: remove redundant check to avoid posting the same buffering value twice
Remove the percent_changed check to determine whether a buffering message should
be posted. The check on the last posted buffering value is sufficient, and the
removal doesn't introduce additional complexity.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6165>
Arnaud Vrac [Wed, 21 Feb 2024 10:41:32 +0000 (11:41 +0100)]
queue2: consolidate buffering message posting code
No need to copy paste the code, simply call the common gst_queue2_post_buffering
function.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6165>
Arnaud Vrac [Wed, 21 Feb 2024 10:17:13 +0000 (11:17 +0100)]
queue2: make sure update_buffering is called with the lock taken
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6165>
Seungha Yang [Thu, 22 Feb 2024 11:35:28 +0000 (20:35 +0900)]
jpegdec: Fix progressive/interlaced detection
If input height and parsed one are identical, do not consider it as interlaced
Fixing below pipeline:
gst-launch-1.0 videotestsrc ! video/x-raw,format=I420,width=640,height=10 \
! jpegenc ! jpegparse ! jpegdec ! videoconvert ! autovideosink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6181>
Seungha Yang [Mon, 26 Feb 2024 14:14:54 +0000 (23:14 +0900)]
jpegdec: Remove trailing white space
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6181>
Tim-Philipp Müller [Fri, 23 Feb 2024 18:20:11 +0000 (18:20 +0000)]
Release 1.23.90
He Junyan [Fri, 23 Feb 2024 13:54:17 +0000 (21:54 +0800)]
vabasedec: Fix a possible NULL pointer dereference
The format in _get_preferred_format_and_caps_features() may be NULL.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6206>
Edward Hervey [Fri, 23 Feb 2024 10:15:49 +0000 (11:15 +0100)]
urisourcebin: Handle legacy pad replacements from parsebin
When dealing with demuxers which aren't streams-aware, we need to handle the
old-school "stream replacement" dance from `parsebin` and hide that in such a
way that output pads are re-used (if compatible).
By analyzing the collection posted by parsebin, we can:
* Identify whether some output slots are no longer used (because the stream they
currently handle is not present in the collection)
* Decide if some upcoming streams could re-use the existing slot
This supports both buffering and non-buffering modes.
Fixes #1651
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6201>
Sebastian Dröge [Fri, 23 Feb 2024 11:17:42 +0000 (13:17 +0200)]
theoradec: Remove mis-leading and redundant uncropped_info
It's actually the cropped info, and equivalent to the info that is
already stored as part of the output state.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6203>
Sebastian Dröge [Fri, 23 Feb 2024 11:16:36 +0000 (13:16 +0200)]
theoradec: Don't leak input state if a second type packet is received
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6203>
Sebastian Dröge [Fri, 23 Feb 2024 11:14:18 +0000 (13:14 +0200)]
theoradec: Don't overwrite width/height of the input state
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6203>
Sebastian Dröge [Fri, 23 Feb 2024 11:08:21 +0000 (13:08 +0200)]
theoradec: Don't use custom allocation logic and always crop locally
All video frames have to be copied from libtheora's memory to the output
frame anyway, so we can as well do the cropping here directly instead of
copying the full frames and having downstream do the cropping.
This reduces the complexity of the code considerably, and among other
things gets rid of a bug related to buffer pool configuration.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2612
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6203>
Víctor Manuel Jáquez Leal [Thu, 22 Feb 2024 21:11:36 +0000 (22:11 +0100)]
vabasedec: disable derived images for i965 driver
Since it has a very poor performance at reading derived images, which is the
most common use case for decoders.
Partially fixes: #3325
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6202>
Sebastian Dröge [Fri, 23 Feb 2024 09:00:36 +0000 (11:00 +0200)]
libav: Don't add `-Werror=deprecated-declarations`
It will fail the build for anybody who has an older FFmpeg version
than 6.1 and doesn't use the FFmpeg subproject.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6199>
Sebastian Dröge [Fri, 23 Feb 2024 08:55:07 +0000 (10:55 +0200)]
ffmpeg: Update subproject to 6.1
Otherwise the build will fail after the recent changes because of
deprecated API usage.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6199>
Víctor Manuel Jáquez Leal [Wed, 21 Feb 2024 17:14:36 +0000 (18:14 +0100)]
vapostproc: optimization for va memory to system memory only
When the conversion is only caps feature from memory:VAMemory to system memory,
it's possible to optimize by doing a pseudo pass-through since the va-backed
buffers are the same for system memory buffers.
This change will also mitigates #2940
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6174>
Seungha Yang [Tue, 20 Feb 2024 11:38:55 +0000 (20:38 +0900)]
asiosink: Fix channel selection
Fixing copy paste mistake
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3321
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6170>
Víctor Manuel Jáquez Leal [Tue, 20 Feb 2024 16:28:29 +0000 (17:28 +0100)]
vabase: fail decide allocation if dmabuf without videometa
If the allocation query received from downstream doesn't handle GstVideoMeta but
it requests memory:DMABuf caps feature, it's incomplete, so we rather reject the
negotiation.
Both in base decoder, base transform and compositor.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6155>
Edward Hervey [Thu, 22 Feb 2024 16:00:50 +0000 (17:00 +0100)]
uridecodebin3: Atomically switch urisourcebin
When switching urisourcebin, ensure that we first unlink *all* pads from
decodebin3 before linking them again.
This is to ensure that decodebin3 completely knows that all previous pads are no
longer needed and can prepare itself to being re-used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6179>
Edward Hervey [Thu, 22 Feb 2024 09:50:15 +0000 (10:50 +0100)]
uridecodebin3: Unify urisourcebin probe handling
Instead of handling events from urisourcebin pads in different probes (a
blocking and regular one), move it all to the non-blocking one.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6179>
Nirbheek Chauhan [Fri, 23 Feb 2024 06:15:50 +0000 (11:45 +0530)]
soup: Re-add soup-lookup-dep option
It's still useful on Linux since it ensures that the tests are going
to be built, since they use the same dep lookup as the plugin now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6197>
Sebastian Dröge [Thu, 22 Feb 2024 11:29:19 +0000 (13:29 +0200)]
rtp: Fix constant for maximum two-byte RTP header extension length
The value is stored as an 8 bit integer, with 0 meaning that there is
not data for this extension. That means that the maximum length is 255
bytes and not 256 bytes.
On the other hand, the one-byte RTP header extensions are storing the
length as a 4 bit integer with an offset of 1 (i.e. 0 means 1 byte
extension length), so here 16 is the correct maximum length.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6180>
naglis [Thu, 22 Feb 2024 07:41:00 +0000 (09:41 +0200)]
gstplay: Fix typos in documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6177>
Seungha Yang [Tue, 20 Feb 2024 16:13:02 +0000 (01:13 +0900)]
nvcodec: Add plugin status message
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6167>
Seungha Yang [Tue, 20 Feb 2024 15:57:32 +0000 (00:57 +0900)]
amfcodec: Add plugin status message
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6167>
Víctor Manuel Jáquez Leal [Mon, 19 Feb 2024 21:17:42 +0000 (22:17 +0100)]
vabasedec: refactor format and capsfeature selection
This is a simplification of the venerable
gst_va_base_dec_get_preferred_format_and_caps_features() function, which
predates since gstreamer-vaapi. It's used to select the format and the
capsfeature to use when setting the output state. It was complex and hard to
follow. This refactor simplifies a lot the algorithm.
The first thing to remove _downstream_has_video_meta() since, most of the time
it will be called before the caps negotiation, and allocation queries make sense
only after caps negotiation. It might work during renegotiation but, in that
case, caps feature change is uncommon. Better a simple and common approach.
Also, for performance, instead of dealing with caps features as strings, GQuarks
are used.
The refactor works like this:
1. If peer pad returns any caps, the returned caps feature is system memory and
looks for a proper format in the allowed caps.
2. The allowed caps are traversed at most 3 times: one per each valid caps
feature. First VAMemory, later DMABuf, and last system memory. The first to
match in allowed caps is picked, and the first format matching with the
chroma is picked too.
Notice that, right now, using playbin videoconvert never return any.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6154>
Jeongki Kim [Thu, 22 Feb 2024 14:41:12 +0000 (23:41 +0900)]
appsrc: clear eos flag on flush stop event
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6186>
Seungha Yang [Thu, 22 Feb 2024 14:13:53 +0000 (23:13 +0900)]
avviddec: Fix crash with FFmpeg n6.0
FFmpeg version 6.0 has an AV_CODEC_FLAG_COPY_OPAQUE related bug.
See https://github.com/FFmpeg/FFmpeg/commit/
a3bf63c26e6197a9b6e490538667368530a9dcd3
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6184>
Edward Hervey [Thu, 22 Feb 2024 10:09:24 +0000 (11:09 +0100)]
urisourcebin: Use atomic lock for detecting shutdown
This fixes lock ordering issues
Fixes #3323
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6178>
Edward Hervey [Thu, 22 Feb 2024 14:24:57 +0000 (15:24 +0100)]
subtitleoverlay: Also use "Decoder/Subtitle" elements
Elements that "decoded" subtitle formats to raw text were historically
classified as "Parser" and not "Decoder. This is being gradually fixed.
This commit ensures that both classification are allowed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6153>
Edward Hervey [Tue, 20 Feb 2024 15:04:09 +0000 (16:04 +0100)]
playbin3: Inform (uri)decodebin3 of the subtitle caps from playsink
Subtitles are better handled by overlayers/renderers within playsink. By
informing (uri)decodebin3 of the formats that can be handled we can avoid those
being "decoded" too early.
Fixes #1081
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6153>
Edward Hervey [Tue, 20 Feb 2024 15:02:25 +0000 (16:02 +0100)]
parsebin: Use pbutils utils to identify more stream types
Handles all cases provided they are identified in the pbutils descriptions
list.
Fixes #1081
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6153>
Edward Hervey [Tue, 20 Feb 2024 15:00:07 +0000 (16:00 +0100)]
subparsers: Give proper category to subtitle "decoders"
Some subtitle "decoders" had a wrong category of "Parser", which `parsebin`
relies on to identify elements which do not *decode* streams but *parse* them.
This would cause such subtitle decoders to be plugged in within parsebin,
preventing the original stream to be properly used by (more efficient)
downstream decoders or subtitle renderers.
Fixes #1757
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6153>
Piotr Brzeziński [Thu, 22 Feb 2024 12:59:00 +0000 (13:59 +0100)]
ci: Ensure gtk-sharp uses the same revision in both places
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6182>
Piotr Brzeziński [Thu, 22 Feb 2024 12:08:02 +0000 (13:08 +0100)]
csharp: Change gtk-sharp revision in gstreamer-sharp subproject to match monorepo subproject
Fixes build issues when building gstreamer-sharp separately from the monorepo.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6182>
Mengkejiergeli Ba [Mon, 19 Feb 2024 04:50:53 +0000 (12:50 +0800)]
msdk: Fix possible memory leaks
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6161>
Matthew Waters [Wed, 21 Feb 2024 08:13:45 +0000 (19:13 +1100)]
examples/qmlsinnk-multisink: allow running with leaks tracer
Include a gst_deinit() after the qml engine has been destroyed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6160>
Matthew Waters [Wed, 21 Feb 2024 08:11:59 +0000 (19:11 +1100)]
examples/qml: fix some leaks in the multisink example
A GstPad was being leaked and possibly the qmlglsink element depending
on if Qt runs the scenegraph thread again when destroying the example
video item.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6160>
Matthew Waters [Wed, 21 Feb 2024 08:09:20 +0000 (19:09 +1100)]
qml, qml6: Fix leak of QSGMaterial/Geometry (and therefore a possible GstBuffer)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6160>
Matthew Waters [Wed, 7 Feb 2024 04:04:53 +0000 (15:04 +1100)]
qml6: fix a leak of the wrapped QSGTextures
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6160>
Matthew Waters [Wed, 7 Feb 2024 01:26:04 +0000 (12:26 +1100)]
gl/x11: fix memory leak when retrieiving a foreign context's info
The FBConfig's were being leaked.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6160>
Jochen Henneberg [Wed, 21 Feb 2024 15:56:48 +0000 (16:56 +0100)]
ptp-helper: Allow sync to master clock on same host
If we drop all messages with the same clock id as ours we will also
drop all messages coming from a PTP clock on our host since both clock
ids are build from the same MAC address.
At least for Linux we do not see our own messages anyway since the
network stack can well distinguish between multicast send from our
socket or from another socket on the same machine. To make sure that
this works for all supported platforms just drop delay requests since
this is the only message that is sent from the GStreamer PTP clock.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6172>
Nirbheek Chauhan [Wed, 21 Feb 2024 11:01:29 +0000 (16:31 +0530)]
gst-python: Print exception if pygobject fails to initialize
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6159>
Nirbheek Chauhan [Wed, 21 Feb 2024 06:28:08 +0000 (11:58 +0530)]
meson: Use cdata.set_quoted() for configuration data
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6159>
Nirbheek Chauhan [Wed, 21 Feb 2024 05:56:30 +0000 (11:26 +0530)]
ges, gst-python: Fix libpython dlopen on macOS
First encountered at https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1171#note_2290789
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6159>
Nirbheek Chauhan [Wed, 21 Feb 2024 04:24:22 +0000 (09:54 +0530)]
ges, gst-python: Rework libpython loading to be relocatable
If we don't specify a path for loading, the runtime linker will search
for the library instead, which will use the usual mechanisms: RPATHs,
LD_LIBRARY_PATH, PATH (on Windows), etc.
Also try harder to load a non-devel libpython using INSTSONAME, if
available.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6159>
Nirbheek Chauhan [Wed, 21 Feb 2024 02:59:45 +0000 (08:29 +0530)]
meson: Use host_system for the host_machine system
This is a convention everywhere else in gstreamer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6159>
Seungha Yang [Wed, 21 Feb 2024 12:50:20 +0000 (21:50 +0900)]
wasapi: Fix alloc/free function mismatch
... and fix leak in wasapi device provider
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3326
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6169>
Seungha Yang [Wed, 21 Feb 2024 12:46:49 +0000 (21:46 +0900)]
wasapi2: Fix task memory leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6169>
Piotr Brzeziński [Mon, 22 Jan 2024 20:40:22 +0000 (21:40 +0100)]
csharp: Add RTSP server example
Port of the test-launch.c example from gst-rtsp-server.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5961>
Piotr Brzeziński [Mon, 22 Jan 2024 20:07:40 +0000 (21:07 +0100)]
csharp: Add GstRtspServer bindings
With a few unnecessary gst_rtsp_stream_transport_* methods manually disabled to avoid compilation errors.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5961>
Piotrek Brzeziński [Fri, 19 Jan 2024 12:07:12 +0000 (13:07 +0100)]
csharp: Make nuget targets depend on underlying libraries
Without this, build will fail if meson/ninja decides to call nuget before building gstreamer-sharp.dll.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5961>
ekwange [Thu, 1 Feb 2024 05:49:21 +0000 (14:49 +0900)]
mse: Add logging init for mediasource sample map
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6033>
Sebastian Dröge [Wed, 21 Feb 2024 17:21:57 +0000 (19:21 +0200)]
rtphdrext-clientaudiolevel: Fix typo in documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6175>
Arnaud Vrac [Wed, 21 Feb 2024 12:45:47 +0000 (13:45 +0100)]
adaptivedemux2: fix build with recent meson
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6168>
Nirbheek Chauhan [Wed, 21 Feb 2024 11:32:18 +0000 (17:02 +0530)]
ci: vs2022 x86 was only configuring, was not building
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6166>
Sebastian Dröge [Wed, 21 Feb 2024 10:53:53 +0000 (12:53 +0200)]
rtpbasedepayload: Add "extensions" property for the currently enabled extensions
This works the same way as the one from `rtpbasepayload`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6163>
Sebastian Dröge [Wed, 21 Feb 2024 11:22:30 +0000 (13:22 +0200)]
rtpbasepayload: Use `gst_value_array_append_and_take_value()` as a micro optimization
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6163>
Sebastian Dröge [Wed, 21 Feb 2024 10:55:42 +0000 (12:55 +0200)]
rtpbasepayload: Also notify "extensions" property when changing list during negotiation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6163>
Tim-Philipp Müller [Tue, 20 Feb 2024 11:55:25 +0000 (11:55 +0000)]
rtppassthroughpay: fix critical in gst-inspect
gst_segment_to_running_time() will fail noisily
if the segment has not been initialised yet.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6151>
Kamal Mostafa [Sat, 17 Feb 2024 21:19:15 +0000 (13:19 -0800)]
tests: cudafilter: actually check for cudascale
Actually check for availability of 'cudascale' instead of accidentally
checking for 'cudadownload' twice.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3327
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6158>
Stéphane Cerveau [Mon, 19 Feb 2024 13:24:51 +0000 (14:24 +0100)]
test: vkimagebufferpool: fix queue leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6143>
Nirbheek Chauhan [Tue, 20 Feb 2024 21:00:11 +0000 (02:30 +0530)]
soup: Link to libsoup in all cases on non-Linux
We have unsolvable issues on macOS because of this, and the feature
was added specifically for issues that occur on Linux distros since
they ship both libsoup 2.4 and 3.0.
Everyone else should just pick one and use it, since you cannot mix
the two in a single process anyway.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1171
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6156>
Jan Schmidt [Sat, 17 Feb 2024 12:33:26 +0000 (23:33 +1100)]
rtspsrc: Reset combined flows after a seek before restarting
After a flushing seek, rtspsrc doesn't reset the last_ret value for
streams, so might immediately shut down again when it resumes pushing
buffers to pads due to a cached `GST_FLOW_FLUSHING` result
Prevent a stored flushing value from immediately stopping
playback again by resetting pad flows before (re)starting
playback.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6137>
Tim-Philipp Müller [Sat, 28 Jan 2023 02:15:24 +0000 (02:15 +0000)]
qsv: use new plugin status message API
Minimal example.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3832>
Tim-Philipp Müller [Sat, 28 Jan 2023 01:11:45 +0000 (01:11 +0000)]
gst-inspect: print plugin error/warning/info status messages
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3832>
Tim-Philipp Müller [Fri, 27 Jan 2023 19:08:37 +0000 (19:08 +0000)]
plugin: add API for plugins to provide status info messages
This can be used to store informational messages, errors or
warnings which can later be shown to the user in gst-inspect-1.0,
which can be useful for plugins that expose elements dynamically
based on external libraries or hardware capabilities.
Status messages can then provide an indication as to why a
plugin doesn't have any elements listed, for example.
Plus unit test to make sure code paths are exercised a little.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3832>
Tim-Philipp Müller [Mon, 29 Jan 2024 19:47:11 +0000 (19:47 +0000)]
gstobject: add CONSTRUCTED flag
This can be used later by base class APIs to know whether they're
called from a subclass instance init function (where the object
isn't properly constructed yet and one should only really poke
at the instance structure but not much else) or after object
construction has been finished.
Fix up GstBin unit test for CONSTRUCTED flag addition.
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2794
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6150>
Jordan Petridis [Thu, 4 Jan 2024 12:35:45 +0000 (14:35 +0200)]
ci: Run the commit lint job as a user
Part of #2433
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5938>
Edward Hervey [Tue, 20 Feb 2024 07:54:11 +0000 (08:54 +0100)]
meta: Skip gst_meta_info_new in gir
```
gstmeta.c:500: Warning: Gst: gst_meta_info_new: return value: Invalid
non-constant return of bare structure or union; register as boxed type or (skip)
```
Skip this for now
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6147>
Seungha Yang [Mon, 19 Feb 2024 11:57:26 +0000 (20:57 +0900)]
wasapi2: Respect ringbuffer buffer/latency time
Decide buffer size based on configured buffer/latency time
if low-latency is disabled, so that ringbuffer can buffer more
than minimum required size.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2870
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6141>
Edward Hervey [Tue, 20 Feb 2024 07:47:21 +0000 (08:47 +0100)]
mpegst: Fix ownership of return value
This inherits from the same rule as gst_buffer_add_meta
```
gst-mpegtspesmetadatameta.h:98: Warning: GstMpegts:
gst_buffer_add_mpegts_pes_metadata_meta: return value: Invalid non-constant
return of bare structure or union; register as boxed type or (skip)
```
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6146>
Maksym Khomenko [Wed, 29 Nov 2023 15:43:30 +0000 (17:43 +0200)]
osxaudio: add mapping for top/left/right surround channels
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5731>
Maksym Khomenko [Wed, 29 Nov 2023 15:40:52 +0000 (17:40 +0200)]
osxaudio: correct mapping for left/right surround
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5731>
Philippe Normand [Mon, 19 Feb 2024 12:25:01 +0000 (12:25 +0000)]
protection: Document `original-media-type` caps field
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6142>
Guillaume Desmottes [Mon, 19 Feb 2024 14:55:55 +0000 (15:55 +0100)]
uridecodebin3: fix deadlock when switching input item
There was a race between urisourcebin src pad handlers.
One was starting the next item before the other was blocked.
See
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3297#note_2288799
for details.
Fix #3297
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6145>