Commit graph

765 commits

Author SHA1 Message Date
Arun Raghavan
4cd63e09d9 webrtcdsp: Use C++20 with MSVC if needed
The subproject fails on vs2022 builds with:

[...]agc2/input_volume_stats_reporter.cc(89): error C7555: use of designated initializers requires at least '/std:c++20'

So let's force C++20 in this case.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8270>
2025-01-26 12:30:01 -05:00
Arun Raghavan
9b647a0bbd webrtcdsp: Bump to WebRTC AudioProcessing 2.1
Keep 1.0 support around so distros can manage this bump more easily.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8270>
2025-01-24 15:53:36 -05:00
Guillaume Desmottes
0e3d6f0606 wpe: remove glFlush() when filling buffer
According to https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4162#note_2739338
it was introduced as workaround for tearing issues.
I do not experience any tearing without flushing on both nvidia and AMD
GPU, so I suppose it's no longer needed.

Slightly improve CPU usage according to my tests.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8348>
2025-01-23 14:45:57 +00:00
Seungha Yang
06afe8aa8f docs: Add nvcomp plugin docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8325>
2025-01-20 19:31:36 +00:00
Sam James
c7a7eb1eb3 lc3: tweak meson style
While this might seem a bit silly, it aids some of our infra in
packaging. Tweak for consistency with other use.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8239>
2025-01-16 20:09:06 +00:00
Stéphane Cerveau
ee7d41f76b vkh264dec: enhance interlaced content support
- Use frame_num instead of pic_num to set the long_term_pic_num
fixing 10 interlaced tests in fluster test suite: JVT-AVC_V1

- Send the slice offset only once in case of interlaced content.
Fixing 5 interlaced tests in fluster test suite: JVT-AVC_V1.

- The default value for top and bottom field flag should be 0 in the
case of a progressive content.

- Use short and long term refs helper getter method to retrieve the
reference frames according its none existing and interlaced state

- Reorganize the find_next_slot_idx code to be easier to read.

Co-authored-by: Daniel Almeida <daniel.almeida@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7854>
2025-01-16 19:18:22 +00:00
Víctor Manuel Jáquez Leal
3090cefbc5 vkh264dec: enable h264 interlaced decoding
First the slot_index shall have the same value for the first and second
fields.

Also, the reference frames are only those with both fields.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7854>
2025-01-16 19:18:22 +00:00
Víctor Manuel Jáquez Leal
f5f20ce85e vkh264dec: make GstVulkanH264Picture a reference count
Thus we could re-use the same structure for interlaced fields: a single bistream,
single output buffer and single vulkan structures.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7854>
2025-01-16 19:18:21 +00:00
Stéphane Cerveau
c38a847fe1 vkh264dec: non existing picture are not refs
The non existing picture or gap picture should not be
considered as refs for vulkan decoder.

Fix fluster tests:

MR3_TANDBERG_B
MR4_TANDBERG_C
MR5_TANDBERG_C

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7854>
2025-01-16 19:18:21 +00:00
Stéphane Cerveau
538747907d vkh264dec: support h264 extended profile
Extended is identical to main but allows FMO/ASO features to be used,
and prevent using CABAC.
Using similar logic to "baseline", assume that if we support main,
we can also do extended.

This fixes the following fluster vectors, which otherwise would fail when trying to link the parsebin pad.

BA3_SVA_C
MR6_BT_B
MR7_BT_B
MR8_BT_B

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7854>
2025-01-16 19:18:21 +00:00
Tim-Philipp Müller
dba15a43c7 docs: add openaptx plugin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8295>
2025-01-13 19:26:26 +00:00
Mathieu Duponchelle
3de86b2b97 docs: port plugins to explicit sources
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8273>
2025-01-13 19:17:13 +01:00
Edward Hervey
eef680b441 bad: Add extra warning flags
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:46 +00:00
Edward Hervey
29217ca3f7 openni2: Ignore undef in external header
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:46 +00:00
Edward Hervey
ad79fbd744 x265: Ignore undef in external headers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:46 +00:00
Edward Hervey
074aaafa33 spandsp: Ignore undef issue in external headers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:46 +00:00
Edward Hervey
e68f99688f sctp: Convert function to avoid aggregate return
It's only used locally and only to fill an existing variable

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:46 +00:00
Edward Hervey
4fd29bd8f3 resindvd: Fix definition
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:46 +00:00
Edward Hervey
6b102baaa3 curl: Fix definitions
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:46 +00:00
Edward Hervey
5bbb14ff7a wpeaudiosink: Check error value explicitly
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:46 +00:00
Edward Hervey
3d62f5b57b dfbvideosink: Rework escape handling
Detected by a fallthrough.

* Just use if/else for clarity
* Remove 2002 fart joke

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:46 +00:00
Edward Hervey
1221a09a5d closedcaption: Use proper type for storing result
drop_ccp_from_cc_data() will return a negative value if there was an
error. Storing that in an unsigned value will cause the checks for errors to
never happen.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:45 +00:00
Edward Hervey
524bea241d cea708decoder: Remove useless checks
No need to check for the type limits

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:45 +00:00
Edward Hervey
3e83d7d0bc isacdec: Remove impossible check
WebRtcIsac_DecodePlc() never returns a negative value (confirmed by
documentation and current/historical code)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:45 +00:00
Edward Hervey
d6eebeafbf sctpdec: Remove useless check
A uint16 will always be below ... the maximum value

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:45 +00:00
Edward Hervey
21d81d25ec bad: Clearly specify fallthrough in switch/case
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229>
2025-01-13 12:51:45 +00:00
Carlos Bentzen
b83b73841d webrtc: fix duplicate payload types with RTX and multiple video codecs
Before this patch, there could be duplicate payload types in offers that
have, within a media section, multiple codecs and RTX enabled:

```
m=video 9 UDP/TLS/RTP/SAVPF 96 97 97 <-- HAS DUPLICATES
a=sendrecv
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 transport-cc
a=rtpmap:97 H264/90000
a=rtcp-fb:97 nack
a=rtcp-fb:97 nack pli
a=rtcp-fb:97 ccm fir
a=rtcp-fb:97 transport-cc
a=rtpmap:97 rtx/90000  <--------- PT IS DUPLICATE
a=fmtp:97 apt=96
```

Fix this by populating the media_mapping array with all media formats
rather than only the first one. The added test case reproduces the issue,
which fails without this patch.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8259>
2025-01-13 10:11:59 +00:00
Philippe Normand
14f6d9a53f wpevideosrc: Clear cached SHM buffers after caps re-negotiation
Otherwise buffers not corresponding to the negotiated caps might be pushed
downstream.

Fixes #4094

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8212>
2025-01-09 10:37:49 +00:00
Philippe Normand
0f667d140d wpevideosrc: Post progress messages on the bus
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8217>
2025-01-09 07:49:51 +00:00
Philippe Normand
e908d22c44 wpevideosrc: Handle latency queries
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8217>
2025-01-09 07:49:51 +00:00
Olivier Crête
33259e7ea4 analytics: Tensor dimensions are always row-major or col-major
Simplify by removing the extra fields, as this is what all
frameworks give us.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8250>
2025-01-08 21:47:52 +00:00
Tim-Philipp Müller
0cb829c589 svtjpegxsenc: add support for interlaced video
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8219>
2025-01-08 19:48:31 +00:00
Tim-Philipp Müller
661c31f0bf svtjpegxsenc: factor out encoding of codestream into separate function
Prepare for interlacing support where an interlaced image
is coded as two codestreams each representing a field.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8219>
2025-01-08 19:48:31 +00:00
Tim-Philipp Müller
306200e10e svtjpegxsdec: add support for interlaced video
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8219>
2025-01-08 19:48:31 +00:00
Tim-Philipp Müller
71aacec532 svtjpegxsdec: drop frames that had decoding errors
Follow-up to !8163

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8219>
2025-01-08 19:48:30 +00:00
Tim-Philipp Müller
a589575bd8 svtjpegxsdec: factor out decoding of codestream into separate function
Prepare for interlacing support where an interlaced image
is coded as two codestreams each representing a field.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8219>
2025-01-08 19:48:30 +00:00
Stéphane Cerveau
570c086254 vkh265dec: update only vps/sps on demand and pass pps always
As PPS can change over the stream, the pps should be always
updated to avoid missing picture parameters sets.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8124>
2025-01-08 18:50:33 +00:00
Stéphane Cerveau
73c4eb3001 vkh264dec: update only sps on demand and pass pps always
As PPS can change over the stream, the pps should be always
updated to avoid missing picture parameters sets.

See CABA3_TOSHIBA_E.264 in fluster resources.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8124>
2025-01-08 18:50:33 +00:00
Samuel Thibault
727424452a meson: Fix build with gtk3 but not wayland
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8222>
2025-01-08 07:53:36 +00:00
Daniel Morin
0a343fa738 analytics: remove batch-size
- Batch-size will be the outer-most dimension. Presence of batch dimension can
  be identified using `dims` and `id`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8191>
2025-01-03 23:14:39 +00:00
Albert Sjolund
97a3bba629 webrtc: add new post-rtp-aux-sender signal
Adds a new signal to webrtcbin, to allow for placement
of an object after rtp, before sendbin. This is usable for
objects such as congestion control elements, that don't want
to be burdened by the synchronization requirements of rtpsession.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7940>
2025-01-01 19:34:55 +00:00
Tim-Philipp Müller
a3cdfc06b5 srtpdec: fix build when libsrtp1 is being used
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8204>
2024-12-23 21:38:35 +00:00
Philippe Normand
d4bfbdcfb4 wpe: Fix build for version 2.44
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8203>
2024-12-23 18:54:28 +01:00
Philippe Normand
7152d5c07a srtpdec: Fix a use-after-free buffer issue
The gst_srtp_dec_decode_buffer() function modifies the input buffer after making
it writable, so the pointer might change as well, depending on the refcount of
the buffer.

This issue was detected using a netsim element upstream of the decoder in a
WebRTC pipeline.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8198>
2024-12-22 15:00:07 +01:00
Hosang Lee
228dd25a0a mssdemux: Use gsturi structure to form fragment urls
We can use gst_uri_from_string_with_base () to join base url
and the fragment url path.
The previous method of forming base url in update_base_url(),
by looking for the string 'manifest' or 'Manifest' is insufficient.
A query may include these string in their paths and thus an invalid
base url string will be kept.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8193>
2024-12-21 10:29:48 +00:00
Stéphane Cerveau
2a19805f7d dash: handle 0 duration in gst_xml_helper_set_prop_duration
Add dash_mpdparser_check_mpd_client_set_period_to_0
unit test to demonstrate it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8114>
2024-12-20 12:55:51 +00:00
Tim-Philipp Müller
f4733d0af7 svtjpegxsdec: handle decode errors more gracefully
Use GST_VIDEO_DECODER_ERROR instead of just erroring out
unconditionally, so that the error handling behaviour is
determined by the "max-errors" property and we'll just
continue after decoding errors now instead of erroring out.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8163>
2024-12-19 15:47:13 +00:00
Guillaume Desmottes
219bf89159 wpe: enable console message with WPE2
Looks like the WebKitConsoleMessage API is now available in WPE2 as well:
https://webkitgtk.org/reference/webkitgtk-web-process-extension/stable/signal.WebPage.console-message-sent.html

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8169>
2024-12-18 09:13:22 +00:00
Emil Ljungdahl
f28a7b6ef3 webrtcbin: Tear down src and sink bins before removing them from webrtc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7900>
2024-12-17 09:48:46 +00:00
Emil Ljungdahl
df8b8f9692 webrtcbin: Fix potential deadlock on bin elements cleanup
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7900>
2024-12-17 09:48:46 +00:00