Commit graph

7936 commits

Author SHA1 Message Date
Sebastian Dröge
c6a6b75358 avcodecmap: Add support for M101 Matrox uncompressed SD video codec
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7823>
2024-11-11 08:47:41 +00:00
Diego Nieto
0d85cdafd5 exiftag: handle GST_TAG_CAPTURING_LIGHT_SOURCE tag
This exif tag allows to specify the different light conditions
when taking a picture. This tag is defined in:
https://exiftool.org/TagNames/EXIF.html#LightSource

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5571>
2024-11-10 12:57:36 +00:00
Sebastian Dröge
b5e119bbcc ccconverter: Don't override in_fps_entry when trying to take output
This allows to handle CDP streams where the framerate is not provided by the
caps and generally gives preference to the framerate inside the CDP packets over
the one in the caps.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7532>
2024-11-10 08:37:36 +00:00
Tim-Philipp Müller
7e9866844f audioresample: skip pointless loop in broken test_fft unit test
Variable f1 is never used, so just skip that loop for now.

The test has never actually tested actual resampling because of
that bug it seems, and the test fails if fixed to actually resample.

For now we just avoid the pointless 126*12 pipelines that were just
testing the same thing (nothing) over and over again.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7827>
2024-11-09 02:54:35 +00:00
Olivier Crête
65549da07e tensormeta: Add Python unit tests for the tensor meta APIs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Olivier Crête
d934ea3f7a tensormeta: Add APIs to create and access GstTensorMeta contents
Also document those APIs better.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Olivier Crête
5e73e8e1b3 tensor: Add APIs to create and access GstTensor contents
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Olivier Crête
4295386804 tensors: Use full GstTensorDataType type name in type members
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Olivier Crête
e01a3b1d79 analytics: Add APIs to add or get a GstTensorMeta
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Daniel Morin
6a5a63f051 analytics: Adding abstraction on tensor dims
Tensor can be row or col major, but it's also possible that the order by we need
to read the tensor with more than two dimension need to be described. The
reserved field in GstTensorDim is there for this purpose. If we need this we
can add  GST_TENSOR_DIM_ORDER_INDEXED, and follow an index defining order for
each dimension.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Daniel Morin
8169863f01 analytics: Make GstTensor more suitable for inline allocation
GstTensor contained two fields (data, dims) that were dynamicallay allocated. For
data it's for a GstBuffer and we have pool for efficient memory management. For
dims it's a small array to store the dimension of the tensor. The dims field
can be allocated inplace by moving it at the end of the structure. This will
allow a better memory management when GstTensor is stored in an analytics meta
which will take advantage of the _clear interface for re-use.

- New api to allocate and free GstTensor
To continue to support use-cases where GstTensor is not stored in an
analytics-meta we provide gst_tensor_alloc, gst_tensor_alloc_n and
gst_tensor_free that will facilitate memory management.
- Make GstTensor a boxed type

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Daniel Morin
7c925eae61 analytics: Move batch to GstTensor
- batch_size is required to interpret the tensor depending on the tensor format
the batch are not necessarily memory plane therefore it's preferable to keep it
inside GstTensor.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Daniel Morin
43c7e524ce analytics: Decouple GstTensor from GstTensorMeta
- To support transporting tensor as GstMeta, Analytics-Meta and Media we need to
  decouple GstTensor from GstTensorMeta.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Olivier Crête
8fa4c8f2f0 tensordecoders: Move decoder out of the ONNX plugin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Olivier Crête
03fd6fadbc analytics: Move tensor meta to the analytics library
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6000>
2024-11-08 14:58:49 +00:00
Edward Hervey
09be1ab863 urisourcebin: Also use event probe for HLS use-cases
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3957

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7822>
2024-11-08 09:14:21 +00:00
Thibault Saunier
932f0a6175 validate: flow: Fix logging upstream events
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7700>
2024-11-07 20:52:46 +00:00
Thibault Saunier
56000b91b7 validate: Add a way to force monitoring all pipelines in a .validatetest file
See documentation for more details

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7700>
2024-11-07 20:52:45 +00:00
Thibault Saunier
302797a965 validate: Add a deep-property-path parameter to the wait signal
Allowing wait actions to wait on any property of any element in the pipeline,
even for elements that might be added later in the pipeline. This also
works for pads which can be pretty useful

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7700>
2024-11-07 20:52:45 +00:00
Thibault Saunier
2c88bbf07f validate: Allow overriding features rank early in testfiles meta
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7700>
2024-11-07 20:52:45 +00:00
Thibault Saunier
f5b0f91d33 validate: launcher: Remove log files for passing tests by default
Adding an option to keep them no matter what.
Log files are often pretty large and keeping them around can be annoying,
usually people won't look at logs files for passing tests, and we do not
even print them out.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7700>
2024-11-07 20:52:45 +00:00
Thibault Saunier
0cdd22f176 validate: Remove some regex related python 3.12 warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7700>
2024-11-07 20:52:45 +00:00
Thibault Saunier
dfd5357214 validate: scenario: Add a way to make the select-streams run several times
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7700>
2024-11-07 20:52:45 +00:00
Thibault Saunier
19060b2ce0 validate: Add a way to retrieve HTTP server port in .validatetest files
By setting a `$(http_server_port)s` variable in a dedicated config file
and making sure that file can always be imported in `.validatetest`
files.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7700>
2024-11-07 20:52:45 +00:00
Tim-Philipp Müller
ea99a670e3 subprojects: add fallback_urls for json-glib and pygobject wraps
download.gnome.org seems a bit flaky and that causes problems
for the fedora/debian image rebuilds.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7852>
2024-11-07 13:43:29 +00:00
Sebastian Dröge
1a412969f1 subprojects: Update ffmpeg to 7.1
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7781>
2024-11-07 10:38:08 +00:00
L. E. Segovia
a4de777982 android: Stop including ca-certificates as compulsory
See gstreamer/cerbero#402

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7838>
2024-11-06 23:02:26 +00:00
wbartel
37ce358952 webrtcbin: fix malformed docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7847>
2024-11-06 22:47:39 +00:00
L. E. Segovia
dd1da457a6 cairo.wrap: Update to 1.18.2 and fix MSYS2 build
See 33173d9f1a

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7848>
2024-11-06 17:20:37 +00:00
Adrien De Coninck
abd9fc5635 tsdemux: validate frat before setting framerate in caps
From JPEG-XS part3 : "If the frame rate is unknown, the frat parameter is 0."

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7836>
2024-11-06 14:48:51 +00:00
Adrien De Coninck
b3e2ad498a tsdemux: use JXS_video_descriptor "frat" to set caps "framerate"
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7836>
2024-11-06 14:48:51 +00:00
Sebastian Dröge
d2d2a12aac timecodestamper: Don't fail the latency query in LTC mode if we have no framerate
Only in LTC mode we introduce additional latency that is depending on only on a
property and not on the framerate, so waiting for the framerate is not necessary.

In all other modes no latency is introduced at all and the latency query can
simply be proxied.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7831>
2024-11-06 12:52:22 +00:00
Stefan Riedmüller
39b2dd1dd1 v4l2object: Remove little endian marker on 8 bit bayer format names
There is no point in having an endian marker on 8 bit bayer format names since
it is just one byte. Thus remove it.

This also fixes an incompatibility with plugins bad where there is no endian
marker on 8 bit bayer format names as well.

Fixes: #3729
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7826>
2024-11-06 12:06:28 +00:00
Mart Raudsepp
790b12cf13 mpegtsmux: Add support for SMPTE 302M (audio/x-smpte-302m)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6530>
2024-11-06 11:16:14 +00:00
Jonas K Danielsson
20e3454c26 udpsrc: Disable allocated port reuse for unicast
The `reuse` property end up setting the SO_REUSEADDR socket option for
the UDP socket. This setting have surprising effects.

On Linux systems the man page (`socket(7)`) states:
```
SO_REUSEADDR
    Indicates that the rules used in validating addresses supplied
    in a bind(2) call should allow reuse of local addresses. For
    AF_INET sockets this means that a socket may bind, except when
    there is an active listening socket bound to the address.
```

But since UDP does not listen this ends up meaning that when an
ephemeral port is allocated (setting the `port` to `0`) the kernel is
free to reuse any other UDP port that has `SO_REUSEADDR` set.

Tests checking the likelyhood of port conflict when using multiple
`udpsrc` shows port conflicts starting to occur after ~100-300 udpsrc
with port allocation enabled. See issue #3411 for more details.

Changing the default value of a property is not a small thing we risk
breaking application that rely on the current default value. But since
the effects of having `reuse` default `TRUE` on can also have damaging
and hard-to-debug consequences, it might be worth to consider.

Having `SO_REUSEADDR` enabled for multicast, might have some use cases
but for unicast, with dynamic port allocation, it does not make sense.

When not using an multicast address we will disable port reuse if the
`port` property is set to 0 (=allocate) and warn the user that we did
so.

Closes #3411

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7841>
2024-11-06 10:21:14 +00:00
Jan Schmidt
75fcfdb12d video-converter: Set TIME segment format on appsrc
Combine the appsrc and appsink settings into one place and ensure that
the appsrc will output a TIME segment, to avoid incorrect segment format
criticals in some situations.

The D3D11 path was already setting the segment format correctly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7839>
2024-11-06 19:30:11 +11:00
Philippe Normand
1e2d488e97 rtpfunnel: Ensure segment events are forwarded after flushs
gst_rtp_funnel_forward_segment() returns early when the current_pad is set.
Without clearing current_pad a critical warning would be emitted when
attempting to chain a buffer following a flush.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7830>
2024-11-05 14:31:03 +00:00
Andoni Morales Alastruey
5a3dd943fe cocoa: fix rendering artefacts in retina displays
Set the correct contentsScale in the CALayer instead of using
the default (1.0) which causes rendering artefacts in retina
displays due to using a smaller bitamp than the display size.

See: https://developer.apple.com/documentation/quartzcore/calayer/1410746-contentsscale?language=objc

Fix: #3942
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7828>
2024-11-05 13:40:23 +00:00
Sebastian Dröge
78b5b798d0 avcodecmap: Use avcodec_get_supported_config() instead of struct fields
The struct fields are deprecated.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7824>
2024-11-05 11:34:33 +00:00
Sebastian Dröge
b501022ab8 avdemux: Combine upstream and local tags
Otherwise whatever caps appear last are going to override the others instead of
extending them.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7366>
2024-11-05 07:33:25 +00:00
Sebastian Dröge
b86bf6d9c0 avdemux: Set correct taglist scope for global vs. stream tags
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7366>
2024-11-05 07:33:25 +00:00
L. E. Segovia
ce35c07639 mpg123audiodec: Fix dependence on off_t breaking Meson wrap-based builds
Using the mpg123_*_64 functions requires API level 48 i.e. mpg123 >= 1.32.
The mpg123_*64 functions are available before then, but still depend on
off_t (and as such introduce the bug in builds against distro provided
mpg123).

See https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1568#note_2624024

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7732>
2024-11-04 21:57:25 +00:00
Tim-Philipp Müller
95eca6d919 meson: bail out earlier in docs subdir if docs are disabled
The gst_dep.get_variable('libexecdir') may fail in some scenarios
(e.g. building a module alone inside an uninstalled devenv) and
it shouldn't really be reached in the first place if docs are
disabled via options.

Also to avoid confusing meson messages when cross-compiling or
doing a static build.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7818>
2024-11-04 19:14:10 +00:00
Seungha Yang
80831f77f3 d3d12swapchainsink: Add support for GstColorBalance interface
... and adding hue, saturation, brightness, and contrast properties

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7817>
2024-11-03 21:33:37 +00:00
Seungha Yang
c051070121 d3d12convert: Add support for GstColorBalance interface
... and adding hue, saturation, brightness, and contrast properties

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7817>
2024-11-03 21:33:37 +00:00
Seungha Yang
dc414415a5 d3d12videosink: Add support for GstColorBalance interface
... and adding hue, saturation, brightness, and contrast properties

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7817>
2024-11-03 21:33:37 +00:00
Seungha Yang
f94c84c828 d3d12converter: Add support for colorbalance
Adding support for hue, saturation, brightness, and contrast adjustment

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7817>
2024-11-03 21:33:37 +00:00
Tim-Philipp Müller
8b8caa0c87 gst-plugins-ugly: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7819>
2024-11-03 17:45:29 +00:00
Tim-Philipp Müller
c9ef35d3a6 gst-plugins-bad: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7819>
2024-11-03 17:45:29 +00:00
Tim-Philipp Müller
e931a004ee gst-plugins-good: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7819>
2024-11-03 17:45:29 +00:00
Tim-Philipp Müller
620410a7a2 gst-plugins-base: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7819>
2024-11-03 17:45:29 +00:00
Tim-Philipp Müller
5debf58615 gstreamer: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7819>
2024-11-03 17:45:28 +00:00
Seungha Yang
0c6e7e7f1a d3d11converter: Fix constant buffer update
Fixing regression of
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6434

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7814>
2024-11-02 16:36:27 +00:00
Sebastian Dröge
2cc32434ad rtph264depay, rtph265depay: various parameter-set string handling fixes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7804>
2024-11-01 15:44:20 +00:00
L. E. Segovia
126a9cec06 android: Port over to the CMake Cerbero SDK module
Also ensure the library's exports are properly declared, instead of
relying on `-fvisibility=default` implicitly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7794>
2024-11-01 14:44:53 +00:00
L. E. Segovia
410e77be6c cmake: Add Find Module to support Android and iOS consumers
This commit adds a Find Module implementing the necessary logic to link
against GStreamer, while implementing some extra bits to enhance the
compatibility.

The first addition is the `mobile` target, which implements the
monolithic `gstreamer_android` library, and which here gains
compatibility with Apple's operating systems.

The second addition is the handling of the basic GStreamer libraries as
`--whole-archive` when statically linked, which was ported from the
ndk-build project in Cerbero. This is not easy to do, as CMake suffers
from several issues that impede its proper usage of pkg-config:

- It cannot differentiate between system/compiler specific libraries
  e.g. `-lm`, `-ldl`, but especially `-framework Cocoa`.
- It does not support `--whole-archive` natively until 3.27
- It attempts to reorder flags blindly by separating them with spaces,
  thus requiring the use of `-Wl,` wrapping or (in the case of Apple
  frameworks) manual framework lookup

The third addition is the port of the Fontconfig and ca-certificates
bundling logic.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6881>
2024-11-01 10:44:43 +00:00
Andreas Wittmann
41ad50fb48 qmlgloverlay: make depth buffer optional
allow dropping depth/stencil buffer for
qmlgloverlay element. Shows considerable
drop in memory bandwidth consumption of
the element on windows platforms.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7677>
2024-11-01 02:37:57 +00:00
Albert Sjolund
ae6ac2a659 appsrc: Fix use-after-free when making buffer / buffer-lists writable
make_writable can cause a reallocation of the buffer, meaning that obj
would point to an invalid object, both for buffer and for bufferlist.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7803>
2024-11-01 00:03:48 +00:00
Jan Alexander Steffens (heftig)
6ddd51c239 h264parse: Fix pic_timing SEI replacement
The calculated position was off. I'm not sure of the exact cause;
possibly because we're in AU-aligned byte-stream mode, which means
`transform` is true.

Replacing the math that calculates the NALU positions with code more
similar to what is already in use for `idr_pos` seems to have fixed it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7318>
2024-10-31 20:29:37 +00:00
Jan Alexander Steffens (heftig)
04238d3b3c h264parse, h265parse: Support drop frame codes with counting_type 6
Tested with an Ateme Kyrion CM5000, which uses 6 when it drops 4 frames
from the code for 1080p@59.94.

Apply the same change to h265parse, with reference to the spec.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7316>
2024-10-31 19:34:53 +00:00
Sebastian Dröge
4ea16ff146 flvmux: Consider timestamps before segment start to map to segment start
Instead of mapping them to running time 0, which is wrong if e.g. the segment
base is not equal to 0.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7780>
2024-10-31 18:08:05 +00:00
Sebastian Dröge
356aca593d flvmux: Use first running time on the initial header instead of 0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7780>
2024-10-31 18:08:05 +00:00
Seungha Yang
d33f5a1de9 d3d12videosink: Add support for mouse scroll events
Handle WM_MOUSEHWHEEL and WM_MOUSEWHEEL events

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7774>
2024-10-31 15:57:43 +00:00
Víctor Manuel Jáquez Leal
cb73cb57ab gstreamer-vaapi: warn about project deprecation
Both at configuration for compilation and gst-inspect-1.0

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7771>
2024-10-31 14:09:55 +00:00
Thibault Saunier
cbf204e4ae multiqueue: Do not unref the query we get in pad->query
We do not own any ref to queries when running them.

If we end up processing the query from the streaming thread, it means that it was
a serialized query, and the query is being waited to be processed on the sinkpad
streaming thread, thread which owns the reference.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7767>
2024-10-31 11:04:00 +00:00
Edward Hervey
0942dc57dd mpegts: Fix bit-depth storage for jpeg-xs
As per ISO/IEC 21122-3 2019:

> Sample_Bitdepth code shall specify directly the bitdepth of the components
minus 1

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7775>
2024-10-31 10:02:01 +00:00
Edward Hervey
fb16abcd73 mpegts: Fix JPEG-XS Extension Descriptor handling
The initial specification for the descriptor (from H.222.0 06/21) was wrong and
introduced duplicate descriptor_tag/descriptor_length field.

This was later corrected in H.222.0 (2021) Amendment 1 (12/22)

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7775>
2024-10-31 10:02:01 +00:00
Edward Hervey
35e19134d1 srt: Don't attempt to reconnect on authentication failures
This is a fatal issue which can't be recovered

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7776>
2024-10-31 09:11:55 +00:00
Tim-Philipp Müller
bf00524c41 rtppassthrough: fix rtp-stats message compatibility with GstRTPBasePayload
"clock-rate" and "pt" are G_TYPE_UINT in the base class, so let's
keep them like that here too, since the entire purposes of the
passthrough element is to fake being a payloader. The types in the
message don't have to be consistent with the types in the caps.

Reverts part of commit a6fa53b7 of !7526

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7552#note_2576653

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7783>
2024-10-31 03:03:56 +00:00
Edward Hervey
36b32de831 validate: Fix leaks in ssim components
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7782>
2024-10-31 01:39:19 +00:00
Tim-Philipp Müller
4767e069fb Revert "gst-examples: update to gradle 8.3"
This reverts commit 06f5d15549.

Seems to break cerbero android examples ci.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7799>
2024-10-31 04:03:55 +05:30
Jan Schmidt
06f5d15549 gst-examples: update to gradle 8.3
Update the gradle for the Android player example

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7743>
2024-10-30 14:05:25 +00:00
Jan Schmidt
70f628c117 androidmedia: Add more pixel format mappings
Add missing pixel format constants, and mappings for
P010, packed variants of 420 and RGBA layouts to GStreamer
buffer formats. This fixes problems with android decoders
refusing to output raw video frames with decoders that
announce support for these common pixel formats and
only allowing the 'hardware surfaces output' path.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7743>
2024-10-30 14:05:24 +00:00
Jan Schmidt
13c3d397a2 androidmedia: Add extra H.26[45] profile mappings
Update the android headers and add missing mappings for H.264/H.265
profiles that have been added in newer android releases

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7743>
2024-10-30 14:05:24 +00:00
Johan Sternerup
c830f87a32 twcc: Handle wrapping of reference time
Previously the wrapping of the 24-bit reference time was not handled
correctly when transforming it into GstClockTime. Given the unit of 64ms
the span that could be represented by 24 bits is 12 days and depending
on the start value we could get a wrapping problem anytime within this
time frame. This turned out to be particularly problematic for the GCC
algorithm in gst-plugins-rs which tried to evict old packages based on
the "oldest" timestamp, which due to wrapping problems could be in the
future. Thus, the container managing the packets could grow without
limits for a long time thereby creating both CPU and memory problems.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7527>
2024-10-30 12:35:48 +00:00
Mathieu Duponchelle
99441e14f3 cea608mux: expose force-live property
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7765>
2024-10-30 10:40:45 +00:00
Jan Schmidt
c02d41c259 subtitleoverlay: Check for memory capsfeature on video/x-raw
Don't assume that video/x-raw caps means buffers are mappable
or can be processed by videoconvert and friends. Only plug
those converters for real system memory, and treat other
memory capsfeatures as hardware surfaces

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7741>
2024-10-30 06:13:23 +00:00
Matthew Waters
9046e60aa7 decklink: reinstate some hardcoded colorimetry handling
Needed when we don't yet have an open device and are doing negotiation.

colorimetry=bt601 is only actually supported by decklink for PAL and NTSC
formats. All other formats use bt709 or above.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7742>
2024-10-30 03:47:14 +00:00
Matthew Waters
2832aab78a decklink: only expose HDR colorimetry if 2020 colorspace is supported
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7742>
2024-10-30 03:47:13 +00:00
Matthew Waters
19a60f341c decklinkvideosrc: ignore HDR metadata consisting of all zeros
In some cases decklinkvideosink may produce such stream when the
information is unknown.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7742>
2024-10-30 03:47:13 +00:00
Matthew Waters
06c344d43a decklinkvideosink: provide default values when HDR metadata is not available
Some file format standards don't require mastering-display-info
and content-light-level values to be provided.

Decklink however requires the static HDR metdata for the PQ transfer
function which we may not have.

CTA-861-G mentions that in this case, 0 may provided as an 'unknown'
value which is what we use here.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7742>
2024-10-30 03:47:13 +00:00
Matthew Waters
a509a1fd40 decklinkvideosink: fix incorrect EOTF value
Checking for mastering-display-info twice is incorrect.  One of the
checks should be for the content-light-level.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7742>
2024-10-30 03:47:13 +00:00
Nicolas Dufresne
30c6f2c163 wayland: Add NV15 support
This format, which maps to NV12_10LE40 in GStreamer is produced by Rockchip
video decoders when decoding 4:2:0 10 bit content.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7569>
2024-10-30 02:27:12 +00:00
Seungha Yang
7f9be72e72 vp8decoder: Fix resolution change handling
Do not store resolution in set_format() so that resolution change
can be detected on keyframe as intended.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3928
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7710>
2024-10-29 20:19:15 +00:00
Sebastian Dröge
8f5dca9611 rtmp2sink: Initialize base_ts / last_ts with the actual first observed timestamp
Initializing it with zero can falsely trigger the overflow / underflow detection
code if the first observed timestamp is a big integer.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7745>
2024-10-29 17:27:42 +00:00
Víctor Manuel Jáquez Leal
899792a5ef va{av1,vp9}enc: fix return value
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7773>
2024-10-29 15:29:51 +00:00
Thibault Saunier
a1081d08c1 meson: Remove c_std=gnu99 in validate and python
This is not needed and causes warning with latest meson

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7766>
2024-10-29 13:58:09 +00:00
Xavier Claessens
468dcbe9b7 Revert "unixfd: disable flaky test_unixfd_segment for now"
This reverts commit 06cd4e2457.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6765>
2024-10-29 12:12:26 +00:00
Xavier Claessens
9b946098df unixfd: Fix racy unit test by adding wait-for-connection property
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6765>
2024-10-29 12:12:26 +00:00
Sebastian Dröge
5da635c2da play: Improve play message API inconsistencies
* Consistently name parse functions according to their message type and
    deprecate the misnamed ones,
  * Add missing parse functions,
  * Check for the correct message type when parsing
  * Use correct field name for warning message details

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7754>
2024-10-29 10:14:56 +00:00
Mathieu Duponchelle
eb825574f4 aggregator: fix start time selection first with force-live
When force-live is true, we don't want to wait for a first buffer
to select a start time.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7752>
2024-10-29 08:52:40 +00:00
Víctor Manuel Jáquez Leal
ff16221df5 ges-structured-interface: fix double free
This was introduced in commit 6233eb0f
2024-10-29 05:22:25 +00:00
Julian Bouzas
04af62b70f lcevch264enc: Set 'byte-stream' format and 'au' alignment in output caps
This is because the LCEVC EIL SDK from V-Nova always outputs encoded video in
that format. This also avoids using the parser in some scenarios.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7750>
2024-10-29 03:00:11 +00:00
Ognyan Tonchev
03b6226772 rtpmanager: skip RTPSources which are not ready in the RTCP generation
If a stream has an 'irregular' frame rate (e.g. metadata) RTCP SR
may be generated way too early, before the RTPSource has received
the first packet after Latency was configured in the pipeline.
We skip such RTPSources in the RTCP generation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7740>
2024-10-29 02:10:47 +00:00
Thibault Saunier
ec2b3cb200 discoverer: Fix typos
discovererd / discoverered -> discovered

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7733>
2024-10-29 00:17:58 +00:00
Thibault Saunier
5ed2af5083 discoverer: Fix serializing tags StreamInfo on disc
When `use-cache` is used, we were serializing the StreamInfo **before**
_ensure_info_tags was called, meaning we were always missing that information.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7733>
2024-10-29 00:17:58 +00:00
Pablo García
6bbddc683d d3d11: implement mouse wheel events
Adittion of d3d11 support for WM_MOUSEWHEEL and WM_MOUSEHWHEEL events,
which are triggered when the mouse is scrolled vertically or horizontally
respectively.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7705>
2024-10-28 22:23:41 +00:00
Thibault Saunier
ba94af0285 queue: Send the notify signals on queue level changes
This is documented as:

> you can query how many buffers are queued by reading the
> #gstqueue:current-level-buffers property. you can track changes
> by connecting to the notify::current-level-buffers signal (which
> like all signals will be emitted from the streaming thread). the same
> applies to the #gstqueue:current-level-time and
> #gstqueue:current-level-bytes properties.

... but was not implemented.

This also respects the `notify::silent` property for the notify signals
to be less intrusive.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7486>
2024-10-28 20:45:37 +00:00
Thibault Saunier
319439a1c0 queue: Cleanup properties are installed caching the pspecs in an array
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7486>
2024-10-28 20:45:36 +00:00
Víctor Manuel Jáquez Leal
9a71fa1f4b vaapipostproc: remove dmabuf from sink caps template
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7708>
2024-10-28 17:30:36 +01:00
Víctor Manuel Jáquez Leal
9108aeb34c vaapiencode: don't register dmabuf sink caps template
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7708>
2024-10-28 17:30:36 +01:00
Víctor Manuel Jáquez Leal
544829382c vaapipluginutil: use a static map format-chroma
Instead of registering the whole list of formats associated to a chroma, our
experience with GstVA tells that entry points only handles one color format per
supported chroma, and they are reflected in the static table.

This avoids exposing unsupported color formats for negotiation.

Fixes: #3914
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7708>
2024-10-28 17:30:36 +01:00
Víctor Manuel Jáquez Leal
d993b8636f vaapipluginutil: ignore dmabuf type when building caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7708>
2024-10-28 17:30:36 +01:00
Víctor Manuel Jáquez Leal
16d4624058 vaapi: demote encoders ranks to none
Now that we have va encoders and these aren't actively maintained.

Fixes #3917

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7708>
2024-10-28 17:30:36 +01:00
Sebastian Dröge
128dd3d82c buffer: Don't copy reference timestamp meta if the destination buffer already has the same
GstRtpBaseDepayload and other places already had such de-duplication code, so
it's probably better to solve this at the root.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7747>
2024-10-28 12:35:57 +00:00
Edward Hervey
39c770af90 playback: Improve stream list search
There is the possibility than an element/code/helper creates an identical
`GstStream` (same type and stream-id) instance instead of re-using a previous
one.

For those cases, when detecting whether a `GstStream` is already present in a
collection, we need to do more checks than just comparing the pointer.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7716>
2024-10-28 10:09:47 +00:00
Edward Hervey
0fda426656 urisourcebin: Aggregate collections from multiple parsebin
In the case where multiple parsebin are present (ex: from rtsp sources), we want
to aggregate the collections provided by the different parsebin and expose a
single "unified" collection.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7716>
2024-10-28 10:09:47 +00:00
Edward Hervey
a26984a72b parsebin: Store caps on parsepad as early as possible
When analyzing a new pad, we can store the updated caps on the GstStream if they
are fixed.

If they are not fixed, this function will be called again once the element will
provide them.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7716>
2024-10-28 10:09:47 +00:00
Edward Hervey
3fdfef15a1 parsebin: Don't store bogus caps on GstStream
If we can't get the current caps when receiving a stream-start, that's fine,
they can/will be provided by other means at a later time.

What we definitely should not do is provide the starting caps of the chain,
which are potentially completely different from the end ones (like for example
`application/x-rtp`)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7716>
2024-10-28 10:09:47 +00:00
Edward Hervey
1814aec0d5 parsebin: Minor debug statement updates
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7716>
2024-10-28 10:09:47 +00:00
Tim-Philipp Müller
4c19c9243a subprojects: update glib wrap to 2.82.2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7434>
2024-10-26 14:33:11 +03:00
Philippe Normand
cec3c15fc5 encodebasebin: Fix parser selection
If an encoder supports multiple codecs (a bin wrapping/auto-plugging encoders)
then its src pad template caps might list the supported codecs. Without this
patch the selected parser would be the one corresponding to the first codec,
leading to caps negotiation error later on. The proposed fix is to check the
media type on the parser candidates sink pad templates according to the
requested encoded format.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7670>
2024-10-26 09:50:42 +00:00
Philippe Normand
080b94b5e6 encodebasebin: Fix parser cleanup
When removing the parser from the stream group, it might not be linked to a
combiner so this needs to be checked.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7670>
2024-10-26 09:50:42 +00:00
Guillermo E. Martinez
1c58b34345 udp: Update documentation for `timeout' property
This patch is meant to update the time units description of `timeout' property
for the `udpsrc` element from milliseconds to nanoseconds according to the
implementation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7748>
2024-10-26 08:48:23 +00:00
Diego Nieto
fe61bc3cee video-format: reduce the number of memcpy if possible
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7694>
2024-10-26 07:02:50 +00:00
Tim-Philipp Müller
b3245eb7bd validate: skip curlhttpsrc test_get_range when running in valgrind
Seems to reliably fail (timeout) when running in valgrind
on the post-F40 CI.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7753>
2024-10-26 02:10:37 +01:00
Tim-Philipp Müller
bf5b0283a2 validate: add srtp test_roc to valgrind exclude list
Consistently fails on CI after F40 upgrade.

See #3939

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7753>
2024-10-26 02:09:44 +01:00
Tim-Philipp Müller
f64cf9998f validate: launcher: add --fair-sched=try to valgrind args
Enables fairer scheduling of threads in valgrind, possibly
at cost of performance though.

Hopefully helps with valgrind core/base jobs deadlocking or
timing out when runners are not under load.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7753>
2024-10-26 00:23:01 +01:00
Jordan Petridis
22ec1d8e4e ci: add suppressions for OpenSSL false positives
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:20 +00:00
Jordan Petridis
bc666db5fe gst-plugins-bad.supp: Remvoe gssdp leaks that have been fixed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:20 +00:00
Edward Hervey
36e999b5f5 vacompositor: Add since marker
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:20 +00:00
Edward Hervey
8bc8aedc62 codecparsers: Fix gtk-doc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:20 +00:00
Edward Hervey
fb2077061f bad: Mark more types as plugin API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:19 +00:00
Edward Hervey
33fd7251d0 docs: Update symbols for new old features
These are features that were present before this release, or cannot be tied to
any release since they are dynamic features (dependent on the underlying
library)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:19 +00:00
Edward Hervey
908fc15411 docs: Fix av1parser symbols
Don't use un-named structures

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:19 +00:00
Edward Hervey
cb87d7b129 plugins_cache: Update for fedora 40 build
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:19 +00:00
Edward Hervey
f28a7e9611 gstreamer: Make dlopen leak suppression more generic
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:19 +00:00
Jordan Petridis
bf467d4987 gstreamer: add duktape suppression
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:19 +00:00
Jordan Petridis
14c1bedb45 gstvafilter: Add back missing property comments
In b1cda4439b the property comments
were removed, even though these are marked as public api.

Add back the comments, and a Since version for interpolation-method.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7455>
2024-10-25 13:55:18 +00:00
Edward Hervey
5ac43063b6 tests: Blacklist more netsim test
They are know to be racy/failing

See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/792

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7736>
2024-10-25 10:44:24 +00:00
Edward Hervey
38c07a2d01 all: Fix closure annotations
This was misused almost everywhere.

See
https://gi.readthedocs.io/en/latest/annotations/giannotations.html#support-for-gobject-closures

and: https://www.bassi.io/articles/2023/02/20/bindable-api-2023/

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7725>
2024-10-25 08:58:29 +00:00
Sebastian Dröge
f3e707c71c rtsp-server: Remove pointless assertions that can happen if client provides invalid rates
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3731
Fixes CVE-2024-44331

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7731>
2024-10-25 06:41:20 +00:00
Diego Nieto
43c9c3a020 debugutils: videocodectestsink: support GRAY8 and GRAY10_LE{16,32}
Add support for:
    * GST_VIDEO_FORMAT_GRAY8
    * GST_VIDEO_FORMAT_GRAY10_LE16
    * GST_VIDEO_FORMAT_GRAY10_LE32

These formats are used by Fraunhofer VVC encoder and decoder.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7706>
2024-10-25 05:53:22 +00:00
Carlos Falgueras García
561ca94916 video: Add GRAY10_LE16 support
This adds a 10-bit variant of grayscale packed into 16 bits little-endian
words. The MSB 6 bits are padding and should be ignored. This format is
used by Fraunhofer VVC encoder and decoder libraries.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7706>
2024-10-25 05:53:22 +00:00
Peter Stensson
06d4629521 codectimestamper: Fix gint wraparound in pts_compare_func
The diff between compared timestamps might be outside the gint range
resulting in wrong sorting results. This patch corrects that by
comparing the timestamps and then returning -1, 0 or 1 depending on the
result.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7726>
2024-10-25 01:49:10 +00:00
Andoni Morales Alastruey
e8ab9349f5 vtdec: add support for level 6 6.1 and 6.2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7729>
2024-10-24 21:45:32 +00:00
Edward Hervey
276de73efe validate: Ignore flaky dash playbin3 issue
It was already ignored for legacy dashdemux. The return value is slightly
different with new demuxers

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7724>
2024-10-24 19:49:04 +00:00
Jordan Yelloz
bcaf72ba62 mpegtsmux: Schedule PMT update on stream removal
Following the behavior of tsmux_program_add_stream(), this ensures that a PMT
update will also be caused by removal of a stream from a program.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7719>
2024-10-24 16:08:12 +00:00
Sebastian Dröge
493f8e440a mpegtsdemux: Handle PTS/DTS wraparound with ignore-pcr=true
The wraparound handling code assumes that the PCR gets updated regularly for
being able to detect wraparounds. With ignore-pcr=true that was not the case and
it stayed initialized at 1h forever.

To avoid this problem, update the fake PCR whenever the PTS advanced by more
than 5s, and also detect wraparounds in these fake PCRs.

Problem can be reproduced with

  $ gst-launch-1.0 videotestsrc pattern=black ! video/x-raw,framerate=1/5 ! \
    x264enc speed-preset=ultrafast tune=zerolatency ! mpegtsmux ! \
    tsdemux ignore-pcr=true ! fakesink

which restarts timestamps at 0 after around 26h30m.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7588>
2024-10-24 15:09:15 +00:00
François Laignel
0f7be28eb1 rtspsrc: client-managed MIKEY KeyMgmt
Some servers (e.g. Axis cameras) expect the client to propose the encryption
key(s) to be used for SRTP / SRTCP. This is required to allow re-keying so
as to evade cryptanalysis. Note that the behaviour is not specified by the
RFCs. By setting the 'client-managed-mikey-mode' property to 'true', rtspsrc
acts as follows:

* For a secured profile (RTP/SAVP or RTP/SAVPF), any media in the SDP
  returned by the server for which a MIKEY key management applies is
  elligible for client managed mode. The MIKEY from the server is then
  ignored.
* rtspsrc sends a SETUP with a MIKEY payload proposed by the user. The
  payload is formed by calling the 'request-rtp-key' signal for each
  elligible stream. During initialisation, 'request-rtcp-key' is also
  called as usual. The keys returned by both signals should be the same
  for a single stream, but the mechanism allows a different approach.
* The user can start re-keying of a stream by calling SET_PARAMETER.
  The convenience signal 'set-mikey-parameter' can be used to build a
  'KeyMgmt' parameter with a MIKEY payload.
* After the server accepts the new parameter, the user can call
  'remove-key' and prepare for the new key(s) to be served by signals
  'request-rtp-key' & 'request-rtcp-key'.
* The signals 'soft-limit' & 'hard-limit' are called when a key
  reaches the limits of its utilisation.

This commit adds support for:

* client-managed MIKEY mode to srtpsrc.
* Master Key Index (MKI) parsing and encoding to GstMIKEYMessage.
* re-keying using the signals 'set-mikey-parameter' & 'remove-key' and
  then by serving the new key via 'request-rtp-key' & 'request-rtcp-key'.
* 'soft-limit' & 'hard-limit' signals, similar to those provided by srtpdec.

See also:

* https://www.rfc-editor.org/rfc/rfc3830
* https://www.rfc-editor.org/rfc/rfc4567

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7587>
2024-10-24 12:43:11 +00:00
Nirbheek Chauhan
efaaa6d888 ci: Add a gdk-pixbuf file-based wrap for gtk4
gtk4 ships a git wrap, which causes our CI to fail when GNOME gitlab
has downtime.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7728>
2024-10-24 15:52:15 +05:30
Seungha Yang
8c3d516a14 d3d12: Additional fixes for MinGW build
Various fixes for GCC build, including actual bug fixes

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7722>
2024-10-24 06:54:30 +09:00
Mathieu Duponchelle
5e8359d407 aggregator: fix live query when force-live is TRUE
When force-live is TRUE, aggregator will correctly change its state with
NO_PREROLL, but unless something upstream is live did not previously set
live to TRUE on the latency query.

Fix this by or'ing force_live into the result.

Also improve debug

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7718>
2024-10-23 18:52:54 +00:00
Robert Rosengren
ff6ad49557 Revert "gstnetclockclient: signal lost sync if remote time resets"
This reverts commit 779e715b6c.

Since the introduced corrupt clock state for when discovering a time
server restart, this resulted in previous similar check as done in
this patch became ignored/jumped over (in case of the corrupt state
has been noticed).

Reference: df41d11a7d
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7664>
2024-10-23 16:13:44 +00:00
Robert Rosengren
3f6bde317e netclientclock: send clock sync signal upon corrupted
Clients that already gotten a signal for synced clock, may rely on
getting the same when marked as corrupted to take appropriate action. So
send clock signal indicating no sync at identified corrupted state.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7664>
2024-10-23 16:13:44 +00:00
Corentin Damman
339e6e0069 validate: use real_main instead of main in run_test_from_file
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7704>
2024-10-23 13:43:03 +00:00
Sebastian Dröge
073831128b uridecodebin3: Remove "source" property
There is not necessarily a single urisourcebin inside uridecodebin3 so having a
single source property makes little sense. Additionally, this property was never
hooked up at all and always returned NULL.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7712>
2024-10-23 12:29:06 +00:00
James Cowgill
8cf0d5a65c exiftag: Check the result of gst_date_time_new_local_time
Fixes a critical warning when parsing a JPEG containing a malformed
`DateTime` tag (like `0000:00:00 00:00:00`).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7709>
2024-10-23 05:34:30 +00:00
Seungha Yang
703cc1783e d3d12: Fix MinGW build with installed DirectX-Headers
Required for cerbero MinGW build

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7154>
2024-10-22 21:25:11 +00:00
Daniel Morin
db78446576 tensordecoder: Correct Klass, for ssd TD
Tensor decoder need a specific klass to be able to auto-plug them

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7698>
2024-10-22 20:23:32 +00:00