1690 Commits

Author SHA1 Message Date
Jan Schmidt
c086c83ac4 rtspsrc: Prefer an empty SET_PARAMETER call for keep-alive
In RTSP 2.0, they started recommending that clients use an
empty SET_PARAMETER request as the preferred keep-alive mechanism
as all cameras must support that method. It also works
for RTSP 1.0, so use it as the preferred method unconditionally.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9577>
2025-08-28 00:46:19 +00:00
Jan Schmidt
492a420fa9 rtspsrc: Send RTSP keepalives in TCP/interleaved modes
When rtspsrc is using an interleaved connection to the camera,
it will continously receive a stream of tunnelled RTP packets
from the server, so the rtspconnection doesn't return ETIMEOUT
and trigger the keepalive. Add a check on the RTSP timer
and send the keepalive whenever we haven't sent a message to
the server in some time.

Fixes problems with some cameras that don't see the RTCP traffic
as sufficient proof of liveness, when using TCP/HTTP tunnelled
modes

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9577>
2025-08-28 00:46:19 +00:00
Vivian LEE
c4439a5b55 adaptivedemux2: fix crash due to log
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4588

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9573>
2025-08-19 07:20:13 +00:00
Adrian Perez de Castro
71619ec72b oss: Check for element types when reconfiguring
Make gst_oss_device_reconfigure_element() check whether the passed element
type matches that of the device itself before attempting to apply the new
configuration.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9558>
2025-08-14 23:54:33 +03:00
Jan Schmidt
cdf1338e6b hlsdemux2: Fix parsing of byterange and init map directives
Don't reuse the same offset and size variables when reading
the byterange out of a MAP directive, as it can overwrite
values from a pending BYTERANGE directive for the next
fragment URI.

Fixes problems where the EXT-X-MAP directive has been written
into the playlist between an EXT-X-BYTERANGE and the fragment
URI it applies to.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9533>
2025-08-12 02:47:46 +00:00
Nirbheek Chauhan
e8e12db5f4 debug: Category init should happen in class_init when possible
plugin_init() will not get called if element/feature registration
happens manually, such as when using linking only specific plugin
features with gstreamer-full. That is possible when plugins contain
static features.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9496>
2025-08-08 11:38:50 +05:30
Qian Hu (胡骞)
a626f74872 v4l2: fix memory leak for dyn resolution change
if resolution changed, old input state will not unref before
new state overwrite self->input_state

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9479>
2025-08-04 12:50:24 +00:00
Olivier Crête
f88e6781cd AUTHORS: Remove outdated files
They only contained historical contributors, the modern version is
to look at the git logs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9476>
2025-08-01 16:00:20 +00:00
Olivier Crête
668d54f8fb MAINTAINERS: Update to reflect current maintainership
Instead of listing everyone, just point to GitLab

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9476>
2025-08-01 16:00:20 +00:00
Olivier Crête
235258259d REQUIREMENTS: Remove outdated doc
They contained information which was completely outdated.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9476>
2025-08-01 16:00:19 +00:00
Nicolas Dufresne
33d0170d6e docs: Update documentation cache for new RGB 10bit support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9460>
2025-07-31 21:34:35 +00:00
Hou Qi
7b61be6c43 v4l2videodec: Fix assertion failure when acquiring drm caps
This is to fix assertion failure "assertion 'drm_info->drm_fourcc != DRM_FORMAT_INVALID' failed"
when acquiring drm caps.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8533>
2025-07-30 17:32:24 +09:00
Nirbheek Chauhan
87ed0c0e33 windows: Disable all audio device providers except wasapi2
We have too many device providers outputting duplicate device entries,
and it's not clear to people what they should be using. Let's only
keep wasapi2 around since it is PRIMARY + 1.

After the device switching work done on WASAPI2, there is no reason to
use directsound anymore.

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9326

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9438>
2025-07-30 00:21:18 +00:00
Nirbheek Chauhan
7788186a30 meson: Pass sysprof=disabled to glib
sysprof cannot be built on Windows, and this causes the build to fail
on Windows.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9438>
2025-07-30 00:21:18 +00:00
Nirbheek Chauhan
eef8ec6e47 meson: Pass python=false to libxml2
We don't need this in gstreamer anyway.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9438>
2025-07-30 00:21:18 +00:00
Nirbheek Chauhan
19a2a158fa soup: Disable range requests when talking to Python's http.server
Python's SimpleHTTP server doesn't add Accept-Ranges and also doesn't
support range requests: https://github.com/python/cpython/issues/86809

According to the spec, this means the server may or may not support
Range requests, but we know that SimpleHTTP server doesn't, so let's
disable it. If they fix it, they will hopefully add an Accept-Ranges
header.

See also: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8505#note_2994060

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9341>
2025-07-09 13:53:57 +00:00
Haihua Hu
4e7df779df v4l2videodec: Fix alternative output format support
Some decoder have the ability to output multiple formats.
This has been supported for a while but stopped working
after commit 77744c3d638. Restore this functionality
by replacing acquired_caps with the new caps.

Fixes #4528

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8674>
2025-07-09 11:08:40 +00:00
Tim-Philipp Müller
24ee088cee Back to development after 1.27.1 2025-07-08 20:00:07 +01:00
Tim-Philipp Müller
1fa56616fb Release 1.27.1 2025-07-08 19:58:12 +01:00
Tim-Philipp Müller
336276be47 gst-plugins-good: update translations 2025-07-08 19:55:11 +01:00
Doug Nazar
63302342ff splitmuxsrc: Fix a memory leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>
2025-07-08 09:05:29 +00:00
Doug Nazar
88412c9ebf tests: rtpbin_buffer_list: unref clock after usage
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9115>
2025-07-07 13:01:34 +00:00
Enock Gomes Neto
cade54e2af qtdemux: Fix incorrect FourCC used when iterating over sbgp atoms
In qtdemux_parse_traf(), the loop over sbgp atoms used FOURCC_sgpd instead
of FOURCC_sbgp when retrieving the next sibling node. This caused the loop
to either terminate early or attempt to parse sgpd atoms as sbgp, leading
to incorrect or incomplete seig group associations.

This fix ensures that all sbgp atoms are properly parsed in sequence.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4511
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9318>
2025-07-01 12:40:33 -03:00
Doug Nazar
b490629528 rtph265pay: Fix valgrind warning about uninitialized usage
Skip NALs less than minimum size of 2.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>
2025-06-30 12:19:19 +00:00
Robert Mader
7e2b383553 matroskademux: Send tags after seeking
Similar to what qtdemux does in `gst_qtdemux_stream_update_segment()`,
in which case we want to resend tags according to our position.
By setting the changed flag for all stream tags we ensure they will all
be (re-)send as we progrees.

This notably ensures that rotation tags are not lost when video players
finish playback and jump back to the beginning of a video.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8429>
2025-06-30 08:49:21 +00:00
David Maseda Neira
188a9fa7a2 adaptivedemux2: Fixed reverse playback
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9298>
2025-06-27 12:21:51 +00:00
Matthew Waters
87666a2d3b rtph265pay: add profile-id, tier-flag, and level-id to output rtp caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9300>
2025-06-27 07:36:47 +00:00
Doug Nazar
35bceff695 gstrtspsrc: Don't emit error during close if server is EOF
During a graceful close we try to notify the server that we're
finished. There is no reason to consider it an error if the
server has already closed the connection.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9278>
2025-06-25 00:00:57 -04:00
Doug Nazar
805d532280 splitmuxsink: Only send closed message once per open fragment
We send a closed message on EOS. It's possible to receive multiple EOS
messages before opening the next fragment (from an element change state
for example).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9266>
2025-06-23 12:29:06 +00:00
Qian Hu (胡骞)
bbae7dba0a imagefreeze: fix not negotiate error when stop
when the chain is called between reset and pad deactive in base
change state, a "not negotiation" error is produced.
so, we add a judge for flushing and reset

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8916>
2025-06-23 10:28:06 +00:00
Pratik Pachange
1f5dbbbd0b v4l2object: Add support for colorimetry bt2100-pq and 1:4:5:3
Colorimetry bt2100-pq is a variant of colorspace V4L2_COLORSPACE_BT2020
where the transfer function is SMPTE 2084 which is used by HDR content.

Colorimetry 1:4:5:3 is a full-range variant of colorspace
V4L2_COLORSPACE_470_SYSTEM_BG

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9166>
2025-06-19 14:29:54 +00:00
Jakub Adam
ddd6a708cb dashdemux2: Fix seeking in a stream with gaps
When there are gaps between segments in the DASH manifest (e.g. it's a
recording of a live stream during which the camera was turned on and off
a couple times), seeking to a timestamp that belongs into a gap leads to
repeat_index calculation yielding a nonsensical negative number (because
ts < segment->start).

In such event set the playback to continue at the first repetition of
the segment that follows after the gap.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8620>
2025-06-19 07:26:49 +00:00
Nicolas Dufresne
491b72aca3 v4l2: transform: Fix pool leak on error
Also remove un-needed nul checks.

Suggested-by: Elham nikooie
Fixes: #3097
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9221>
2025-06-19 05:21:05 +00:00
Nicolas Dufresne
3c06444a90 v4l2: encoder: Fix possible internal pool leak
Also remove the unneeded null checks that have spread around.

Suggested-by: Elham nikooie
Fixes: #3097
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9221>
2025-06-19 05:21:05 +00:00
Johan Sternerup
c530453413 twcc: Fix reference timestamp wrapping (again)
With
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7527
an attempt was made to fix the wrapping of the TWCC 24-bit reference
time. Unfortunately this fix was not correct due to a late change and
the lack of unit tests to catch it. This time unit tests are provided to
make sure we have a correct fix for all the edge cases.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9051>
2025-06-18 10:43:34 +00:00
Matthew Waters
f51d9fc128 rtph265depay: output profile, tier, level in output caps
These values are very easy to provide and some cases in rtph265pay require
these values to be set.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9223>
2025-06-18 07:35:52 +00:00
Sebastian Dröge
b003b2b023 wavparse: Don't error out always when parsing acid chunks
Remove stray goto introduced in ba8fd35e72b645c5048813d1bcc58271fb72ab6c

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9230>
2025-06-18 05:51:31 +00:00
Matthew Waters
7bbff29763 rtph265depay: CRA_NUT can also start an (open) GOP
https://datatracker.ietf.org/doc/html/rfc7798#section-3.1.1 says that a CRA_NUT
can start a GOP so add that to the list of nal types where VPS/SPS/PPS can be
inserted.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9217>
2025-06-18 01:29:10 +00:00
Matthew Waters
9f4f426a89 rtph265depay: fix codec_data generation
When producing the profile_teir_level() struct, account for emulation
prevention bytes (0x0, 0x0, 0x3) in the source SPS.  Also copy from the correct
starting point in the source SPS and don't put the NAL header into codec_data.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9205>
2025-06-17 11:40:23 +00:00
César Alejandro Torrealba Vázquez
49e53cb09e qtmux: Update chunk offsets when converting stco to co64 with faststart
When creating a faststart file, qtmux has to take into account that
any 32 bit stco atom may need to be converted into its 64 bit version
due to the offset that is added before the mdat data by the moov atom,
the extra atoms and the mdat header. If a stco atom is converted into
co64, the chunk offset of all stco and co64 atoms has to be increased,
which in turn may also cause that other stco atoms need to be converted
into co64, modifying the chunk offsets again.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9102>
2025-06-17 07:02:47 +00:00
Sebastian Dröge
48cfd3a6e4 aacparse: Add test for correctly parsing the number of channels from codec_data
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9074>
2025-06-17 04:12:15 +00:00
changyong.ahn
163e9e8df4 aacparse: Fix counting audio channels in program_config_element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9074>
2025-06-17 04:12:15 +00:00
changyong.ahn
300ff38178 gstaacparse: Fix counting audio channels in program_config_element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9074>
2025-06-17 04:12:15 +00:00
Piotr Brzeziński
fa44cfdaaa imagefreeze: Handle EOS from send_event()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9191>
2025-06-11 13:13:18 +02:00
Matthew Waters
9f055e1eeb qml6gloverlay: support directly passing a QQuickItem for QML the render tree
This is provided in addition to the text description in the qml-scene.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9180>
2025-06-11 11:55:51 +10:00
Víctor Manuel Jáquez Leal
82a71a7739 gstreamer-vaapi: remove subproject
It's almost superseded by va plugin in gst-plugins-bad.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9200>
2025-06-10 17:32:46 +00:00
Doug Nazar
09a0a6a9d5 rtpjpeg: fix copying of quant data if it spans memory segments
rtpjpeg no longer joins all memory segments before encoding. Ensure
we copy the data from the correct segments.

Re-arrange test data so it's not correctly ordered and add test.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5533>
2025-06-09 10:36:07 +00:00
Elliot Chen
0f7ee14a1d adaptivedemux2: free cancellable when freeing transfer task
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8610>
2025-06-07 12:17:27 +00:00
Pratik Pachange
0e78a6c5aa v4l2object: Make extra-controls property mutable in playing state
Certain encoder user controls as well as codec controls can be
changed while the pipeline is in playing state.
e.g. Codec controls like video_bitrate, frame_ltr_index,
use_ltr_frames, etc. and user controls like horizontal_flip,
vertical_flip can be changed while the pipeline is running.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9168>
2025-06-06 14:06:50 +00:00
Thibault Saunier
450f2343cf doc: Add some explanation about the logic of when to post navigation message in code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9130>
2025-06-03 15:59:12 +00:00