122067 Commits

Author SHA1 Message Date
Detlev Casanova
28fdf598e4 v4l2codecs: Unref the frame before leaving on error
In h264, h265 and mpeg2, make sure that dec_submit_bitstream() doesn't leak
a frame when dec_ensure_output_buffer() fails.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8794>
2025-04-09 15:43:03 +00:00
Detlev Casanova
880053c52c v4l2codecs: av1,vp9: Use temporary variable for buffer
This makes the end_picture() function handle the frame in the same way
as in vp8, which also fixes a frame leak when
gst_buffer_pool_acquire_buffer() fails.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8794>
2025-04-09 15:43:03 +00:00
Xavier Claessens
f6115efe8d Revert "va: h266 requires libva 2.22.0"
This reverts commit 8c017c79c5736c9e45e635df210e08550287646d.

1.22 was the correct pkg-config version. It's only the subproject
version that was wrong. Since we bumped libva.wrap to 2.22 version, h266
is now always available when using the subproject.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8800>
2025-04-09 09:01:22 -04:00
Mathieu Duponchelle
d1b4104cbc aggregator: expose current-level-* properties on sink pads
As aggregator internally queues data (up to latency), those properties
are helpful to monitor queue levels in the complete pipeline.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8731>
2025-04-08 17:26:34 +00:00
Víctor Manuel Jáquez Leal
4fc8773371 y4menc: fix Y41B format
This a regression of commit fb0bea8f where output info variable was swapped with
input info variable by mistake.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8786>
2025-04-08 13:10:19 +00:00
Xavier Claessens
a591dec87c libva: Update wrap to 2.22.0
It is required for h266 support.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8788>
2025-04-08 11:45:11 +00:00
Xavier Claessens
8c017c79c5 va: h266 requires libva 2.22.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8788>
2025-04-08 11:45:11 +00:00
Philippe Normand
4e0a184c2a ci: Update the ABI tag
The previous tag included the WebRTC ABI that is being reverted.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8787>
2025-04-08 09:36:31 +01:00
Philippe Normand
1a55ae2c51 Revert "webrtc: stats: Increase spec compliance for ICE candidate stats"
This reverts commit 4718fc9be72ccbbb9278c9abe7d72106e161aebf.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8787>
2025-04-08 09:35:49 +01:00
Philippe Normand
70af47ee17 Revert "webrtc: Add missing Since markers to new ICE API"
This reverts commit 601c772447b0bada8e54d097088b8ea51ecba09a.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8787>
2025-04-08 09:35:49 +01:00
Guillaume Desmottes
9b19c10f39 alphacombine: unblock when alpha sink is eos
If the alpha sink receives EOS while the other thread was waiting for a
alpha buffer it was stuck waiting forever.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8775>
2025-04-07 23:45:33 +00:00
Guillaume Desmottes
d2086675a4 alphadecodebin: use a multiqueue instead of a couple of queues
Fix gapless playback as queues are no longer stopped after the first
eos.

Co-authored-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Fix #4165

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8775>
2025-04-07 23:45:33 +00:00
Nicolas Dufresne
be63900324 ci: Update the ABI tag
This is to include the new gst_fd_allocator_alloc_full() function in
the check.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8025>
2025-04-07 16:20:36 -04:00
Jakub Adam
75517d0faf unixfdsrc: fix allocating FD memory with nonzero offsets
The element should allocate GstFdMemory large enough to fit incoming
memory's size plus its potential offset.

Fixes "gst_memory_resize: assertion 'size + mem->offset + offset <=
mem->maxsize' failed".

Fixes an issue reproducible on Raspberry Pi 4 that results in a garbled
image on the receiver's end:

  gst-launch-1.0 libcamerasrc ! unixfdsink socket-path=/tmp/socket
  gst-launch-1.0 unixfdsrc socket-path=/tmp/socket ! autovideosink

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8025>
2025-04-07 14:51:47 +00:00
Jakub Adam
98bcd041d1 fdmemory: add gst_fd_allocator_alloc_full()
Allows allocating FD memory with offset != 0 and size != maxsize.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8025>
2025-04-07 14:51:47 +00:00
Matthew Waters
601c772447 webrtc: Add missing Since markers to new ICE API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8698>
2025-04-07 12:07:16 +00:00
Philippe Normand
4718fc9be7 webrtc: stats: Increase spec compliance for ICE candidate stats
We now fill the foundation, related-address, related-port, username-fragment and
tcp-type fields.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8698>
2025-04-07 12:07:16 +00:00
Philippe Normand
ac465ebfe1 webrtc: stats: Fill data-channel transport stats
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8698>
2025-04-07 12:07:16 +00:00
Philippe Normand
b088d53970 webrtc: nice: Add niceutils
The gst_webrtc_nice_get_candidate_server_url() function is going to be used for
stats generation purposes and also from the upcoming get_selected_candidate_pair
implementation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8698>
2025-04-07 12:07:16 +00:00
Philippe Normand
19dea1507e webrtc: nice: Make use of nice_candidate_type_to_string
This API was added in libnice 0.1.19 and we currently require 0.1.20.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8698>
2025-04-07 12:07:16 +00:00
Philippe Normand
aa15eb30ff webrtc: nice: Remove unused libnice utilities
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8698>
2025-04-07 12:07:16 +00:00
Razvan Grigore
0017384ae2 webrtcbin: add missing warning for caps missmatch
This helps debug cases when the remote is offerer and m-line does not match with already existing transceivers.
In this case, it will create new ones with sendrecv direction without any warning.
Similar with code from _create_answer_task

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8735>
2025-04-07 01:26:25 +00:00
Sebastian Dröge
883ff6caaa ci: Update to Rust 1.86 and cargo-c 0.10.12
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8783>
2025-04-05 19:56:17 +03:00
Seungha Yang
d9bbfc27fd ci: Update ABI_CHECK_TAG for h264/h265parser change
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8679>
2025-04-05 09:48:41 +00:00
Seungha Yang
740b7564ee h265parser: Make gst_h265_parser_link_slice_hdr public
... and updating h265decoder/h265ccinserter to match
the changed gst_h265_parser_link_slice_hdr method

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8679>
2025-04-05 09:48:41 +00:00
Seungha Yang
deee13a6c3 h264parser: Store associated parameter set id
Make h264parser and h265parser consistent

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8679>
2025-04-05 09:48:41 +00:00
Seungha Yang
1bd5afa460 h265parser: Store PPS id in slice header
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8679>
2025-04-05 09:48:41 +00:00
Ognyan Tonchev
6db576f033 gstrtpsession: Do not push events while holding SESSION_LOCK
Doing so can trigger deadlocks

Fixes: #4328
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8695>
2025-04-05 08:43:06 +00:00
Ognyan Tonchev
ebb1d1a4ae gstrtpsession: protect recv_rtcp_segment_seqnum with a lock
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8695>
2025-04-05 08:43:05 +00:00
Ognyan Tonchev
961fc87168 gstrtpsession: use correct seqnum for the STREAM_START ans SEGMENT events
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8695>
2025-04-05 08:43:05 +00:00
dukesook
daa1ee84b9 qtdemux: Extend Uncompressed Lookup Table
- LUT now supports various subsampling, interleaves, and bit depths.

 - Replaces stride with GstVideoInfo pre_info to represent original data.

 - Simplifies gst_row_align_buffer() with gst_video_frame_copy().

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8598>
2025-04-05 07:59:32 +00:00
L. E. Segovia
0d7ea661cf cmake: Fix using pkgconf for Windows cross builds
pkgconf has its own default logic on Windows for setting up a prefix,
which does not match the default behaviour of pkg-config (blindly
respecting modules' ${prefix} variable).

See
dcf529b83d

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8768>
2025-04-05 01:15:06 +00:00
L. E. Segovia
8453993afc cmake: Fix PKG_CONFIG_PATH formatting for Windows cross-builds
The PKG_CONFIG_PATH use of semicolons must match the host system, not
the build system. This fixes calling pkg-config for Windows to Android
cross builds.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8768>
2025-04-05 01:15:06 +00:00
Daniel Morin
8af086038a analyticsoverlay: add filled-box mode
- Add filled-box-mode property, when set region where detection is happening is
  filled

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8592>
2025-04-04 22:40:58 +00:00
Olivier Crête
bf8af7ac20 bad: Update va docs, adding new elements
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>
2025-04-04 14:06:35 -04:00
Olivier Crête
00321a6daf docs: Add more va properties to non-versionned enums
These are auto-generated and creating doc for them is just too painful.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>
2025-04-04 14:06:35 -04:00
Olivier Crête
e3c3fd10cd va: Add since markers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>
2025-04-04 14:06:35 -04:00
Olivier Crête
7ed5c10751 va: Remove GstVaFeature marking as a plugin API
It's part of the libgstva library and it's documented there, no need
to duplicate it as it confuses hotdoc.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>
2025-04-04 14:06:35 -04:00
Olivier Crête
f6b3538027 va: Add doc section for vah26xlpenc and codecalpha element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>
2025-04-04 14:06:35 -04:00
Olivier Crête
afaf1723fe bad: Update wpesrc docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>
2025-04-04 14:06:35 -04:00
Olivier Crête
311343ae4b wpevideosrc: Fix typo in doc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>
2025-04-04 14:06:34 -04:00
Olivier Crête
68489f2362 bad: Update qsv docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>
2025-04-04 14:06:34 -04:00
Olivier Crête
50cebd3ba8 qsv: Add since marker to device-path property
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>
2025-04-04 14:06:30 -04:00
Olivier Crête
ecf9a035eb bad: Add onnxinference to the docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>
2025-04-04 13:05:51 -04:00
Olivier Crête
a35d9a2246 docs: Add machine-learning-analytics to sitemap
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>
2025-04-03 17:53:34 -04:00
Nirbheek Chauhan
9194e259d9 docs: Fix GstWebRTCICE* class documentation
IceStream is not an actual object, it's GstWebRTCICEStream

Some `Returns:` annotations were improperly formatted and not taking
effect.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8755>
2025-04-03 13:05:57 +00:00
Matthew Waters
0b611ce703 glcolorconvert: fix YUVA<->RGBA conversions
Alpha should not impact the YUV/RGB conversion and should simply be copied
over.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8765>
2025-04-03 07:08:51 +00:00
Seungha Yang
7d51dc615d pluginloader-win32: Fix helper executable path under devenv
lpApplicationName argument of CreateProcessW should be complete path
of executable.

Fixing regression introduced by
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8614

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8746>
2025-04-01 19:04:01 +00:00
Michael Grzeschik
3b345568bc uvcsink: Respond to control requests with proper error handling
The complete handling on the control interface is currently dead.
We return with EOPNOTSUPP for the caller to know that a response
to such requests is not valid. The host however may ask
control interface why these control requests were not available.

For this the UVC_VC_REQUEST_ERROR_CODE_CONTROL is used. As an overall
exception for the control interface we just always return 0x06 as
an response which is representing "not implemented".

This patch is a necessary feature to properly pass the UVC Functionality
Test of the USB3CV Compliance Software.

Fixes: 69c17461392d ('uvcgadget: Properly implement GET_INFO control responses')
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7524>
2025-04-01 15:57:20 +00:00
Piotr Brzeziński
50d2d1446f avfvideosrc: Guess reasonable framerate values for some 3rd party devices
For some third-party devices macOS sometimes reports silly framerates,
like 750003/6250 instead of 120/1. To avoid users having to exactly
pecify those values, we instead report the closest reasonable value in
caps. If it ends up being chosen, the additional logic in
setDeviceCaps() will reverse that process and pass the actual supported
value back to AVF, as most often the rounding causes us to fall just
outside the accepted threshold.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8745>
2025-04-01 14:44:50 +00:00