Commit graph

3576 commits

Author SHA1 Message Date
Albert Sjolund
06edb672d6 streamproducer: don't 'leak' hashmap objects
Release is called at the end and replaced with a pending object.
However, this object does not get released from the map and lives on.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2077>
2025-02-14 11:24:40 +00:00
Sebastian Dröge
ed8eeed746 cea608tocea708: Fix SMPTE 334-1a field flag usage
If the flag is set then this is field 0, otherwise it is field 1. The
code had this inverted. See also cece286fe8.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2076>
2025-02-14 10:25:35 +00:00
Mathieu Duponchelle
7ec9469ae3 cea608overlay: clear output on field switch
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2075>
2025-02-14 00:04:26 +00:00
Mathieu Duponchelle
805e0f66af ceax08overlay: fix field lookup for s334-1a
As stated in the spec:

> Bit b7 of the LINE value is the field number (0 for field 2;
> 1 for field 1). Bits b6 and b5 are 0. Bits b4-b0 form a 5-bit unsigned
> integer which represents the offset [..]

Here, b7 is the most significant bit, this is what both cccombiner
and ccconverter agree on.

The overlay elements previously looked at the least significant bit,
which led to garbled text when both fields were actually present
in the CC meta.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2075>
2025-02-14 00:04:26 +00:00
Guillaume Desmottes
7fa1422f9a uriplaylistbin: tests: fix eos races
Wait for each stream to EOS rather than rely on the EOS message.
Prevent races as our test files are really short, see https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4204

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2070>
2025-02-12 11:35:28 +00:00
Guillaume Desmottes
c5b37ca0bb togglerecord: drop locks before sending queries
Sending a serialized query may potentially block so best to release
locks before doing so.

Hopefully fix a dead lock I analyzed from a post mortem report.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2067>
2025-02-10 10:17:21 +00:00
Carlos Bentzen
72e641abab cdg: fix typefind error with specific file sizes
Currently, the typefind logic for cdg can cause errors on files
with all conditions below:
- size multiple of NB_WINDOWS * CDG_PACKET_SIZE (8 * 24) = 192
- size less than TYPEFIND_SEARCH_WINDOW (28800)
- extension different than .cdg

With those conditions, the cdg typefind function may be the last one to
execute and cause gsttypefindhelper.c::helper_find_peek to return
GST_FLOW_EOS, and if it's the final call will then be turned to
GST_FLOW_ERROR in typefind.

That is because cdg's typefind will perform a last call to
typefind.peek(len, CDG_PACKET_SIZE) which is outside the range of typefind
(from 0 to len - 1).

Reproducer with file from cdg tests:
```
head -n 28608 BrotherJohn.cdg > BrotherJohn_short.bit
gst-play-1.0 BrotherJohn_short.bit
```

Fix this by correcting the loop bounds in the cdg typefind
logic. Perhaps the typefind helper logic should be rewritten to avoid
such cases too.

Then the example above works and unrelated files aren't affected by this
in typefind anymore.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2059>
2025-02-05 01:05:11 +00:00
Matthew Waters
403462d64e closedcaption: fix roll up mode not always using the correct base row
The row used in roll up mode was inconsistently referenced (row vs base_row)
and could result in incorrect output being produced.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2053>
2025-01-29 00:36:39 +00:00
Matthew Waters
b36bddb058 closedcaption/608overlay: add some debug loggin when resets occur
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2053>
2025-01-29 00:36:39 +00:00
Matthew Waters
eacbda5d6e cea608overlay: ensure tha the list of lines remains sorted by line number
Otherwise, when iterating over the lines, they may be written out of order.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2053>
2025-01-29 00:36:39 +00:00
Yaakov Selkowitz
6f4a4c392f Add missing copies of license files
This should fix the crates that are missing license files.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2052>
2025-01-28 11:34:15 +00:00
Jochen Henneberg
051bea47df fmp4mux: Language and orientation are stream tags
The language tag is purely a stream specific tag and the orientation
tag can be both, stream or global scope at the same time.

Language tags in global scope are considered to be stream scope.

Orientation tags are also set in TKHD but combined with the global
orientation tag if available.

And switched to GStreamer API for image orientation tag storage and
handling and added the flip transformations.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2033>
2025-01-22 09:01:16 +00:00
Sebastian Dröge
b70ad7895f mpegtslivesrc: Handle zero-byte adaption fields
Simply skip over them instead of handling them as parse error.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2048>
2025-01-21 13:50:46 +00:00
Tim-Philipp Müller
0b0c1cbf50 rtp: ac3: validate depayloaded AC-3 data in unit tests
Check for valid frame header.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2046>
2025-01-20 19:32:48 +00:00
Tim-Philipp Müller
6292916f94 rtp: tests: add run_test_pipeline variants with data validation
So we can actually check the content of depayloaded buffers too.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2046>
2025-01-20 19:32:48 +00:00
Tim-Philipp Müller
82167453b4 rtpac3depay2: fix handling of non-fragmented payloads
The frames of a non-fragmented payload would contain
an extra two bytes before the frame sync and then
missing two bytes at the end which which would cause
decoding errors on the last block and/or frame crc
check failures.

This happened because we didn't take into account
the 2-byte packet payload header when creating output
sub-buffers, as the offsets we were using were in
relation to the payload data after the headers.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/645

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2046>
2025-01-20 19:32:47 +00:00
Sebastian Dröge
148608e1d5 rtp: basepay: Only forward buffers if we have a segment
If there are pending buffers without a segment then they must come from
the caps only and should be forwarded at a later time, if any.

Also reject any incoming buffers if no segment was received.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2042>
2025-01-15 18:10:39 +00:00
Sebastian Dröge
49d6b9b1c2 rtp: basedepay: Only forward buffers if we have a segment
If there are pending buffers without a segment then they must come from
the caps only and should be forwarded at a later time, if any.

Also reject any incoming buffers if no segment was received.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2042>
2025-01-15 18:10:39 +00:00
Jochen Henneberg
207196a033 fmp4mux: Fix state cleanup on flush
State cleanup was incomplete. If a flush happens we do not have any
buffers anymore so all buffer queue related settings must be cleared
on the state. Flush action has been moved into state impl.

The GstAggregatorPad flush() was implemented as well as the pad flush
handler - with different implementations. Unify it.

Fixes #636

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1968>
2025-01-10 09:00:38 +00:00
Guillaume Desmottes
dec6cb5c3a uriplaylistbin: add caching
Add optional caching feature preventing to re-download playlist items
for each iteration.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2030>
2025-01-08 09:26:50 +01:00
Robert Mader
1a090b6551 meson: Set gtk_v4_16 feature
So builds using Meson use GtkGraphicsOffload::black-background as well.

Fixes: 38044858 ("gtk4: Enable GtkGraphicsOffload::black-background property when building with GTK 4.16")
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2023>
2025-01-04 13:12:06 +00:00
Sebastian Dröge
862aefecd6 Update CHANGELOG.md for 0.13.4 2024-12-24 15:47:19 +02:00
Sebastian Dröge
12a22b98af Update versions to 0.13.4 2024-12-24 15:36:59 +02:00
Sebastian Dröge
36cdb85e77 mpegtslivesrc: Parse PES packets and check for reasonable PTS/DTS
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2011>
2024-12-24 11:30:23 +00:00
Sebastian Dröge
f610a0c9d8 mpegtslivesrc: Refactor section parser
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2011>
2024-12-24 11:30:23 +00:00
Edward Hervey
0a7d2406f0 cea708mux: Always pad cea708
Instead of pushing gaps, we should send out valid (empty) cea708 buffers
downstream, like we do in most other caption element

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2009>
2024-12-24 10:34:20 +00:00
Thibault Saunier
a825428857 tracers: buffers-lateness: Add a signal to force writing log file
This way applications can write the queue levels info whenever it wants
and does not need to wait for the application to quite.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2008>
2024-12-24 09:34:37 +00:00
Thibault Saunier
280f58afe9 tracers: queue-levels: Add a signal to force writing log file
This way applications can write the queue levels info whenever it wants
and does not need to wait for the application to quite.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2008>
2024-12-24 09:34:37 +00:00
Matthew Waters
13a860c56c cea708mux: make sure to empty the stored pending codes
Fixes some captions being truncated if multiple of the same service is
received in the same input buffer.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2014>
2024-12-23 22:36:28 +00:00
Matthew Waters
b348f17a07 cea708overlay: clear more things on caption timeout
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2013>
2024-12-23 21:54:59 +00:00
Sebastian Dröge
ff547205ea mpegtslivesrc: Reset rate to 1/1 on disconts and flush observations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2010>
2024-12-23 19:59:06 +00:00
Sanchayan Maity
6a5c952f7c Add s3putobjectsink to README
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1928>
2024-12-23 17:26:31 +00:00
Sanchayan Maity
e871e5f74d aws: Add next-file support to putobjectsink
Add `next-file` support to `awss3putobjectsink` on similar lines to
the `next-file` support in `multifilesink`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1928>
2024-12-23 17:26:31 +00:00
Sebastian Dröge
f5a87faa87 ci: Move cargo invocations to shell scripts
And pass RUST_VERSION to the scripts too.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2007>
2024-12-23 18:44:07 +02:00
Sebastian Dröge
d79eac417d cea608tott: Fix expected test output with cea608-types 0.1.4
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2007>
2024-12-23 18:42:44 +02:00
Matthew Waters
f88da03f11 cea608overlay: fix rendering when roll up base row is at the top
We were ensuring that the base row was one too large for the number of roll up
rows and causing the first row to unable to be written to.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2007>
2024-12-23 18:41:54 +02:00
Mathieu Duponchelle
612279f421 gst_plugins_cache.json: generate tracer objects documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2007>
2024-12-23 18:37:55 +02:00
Sebastian Dröge
fa482cbed0 gtk4: Allow unused import for now
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2007>
2024-12-23 18:35:10 +02:00
Sebastian Dröge
feb1f45836 raptorqdec: Stop using deprecated API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2007>
2024-12-23 18:31:07 +02:00
Sebastian Dröge
230afc11ea Fix / silence various new Rust 1.83 clippy warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2007>
2024-12-23 18:27:38 +02:00
Sebastian Dröge
24ebe1e2af ci: Don't consider no runnable tests an error
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2007>
2024-12-23 18:19:18 +02:00
Sebastian Dröge
c84c6ba4ed deny: Add override for duplicated aws-smithy-json dependency
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2007>
2024-12-23 18:15:31 +02:00
Sebastian Dröge
f0ab59c6bb deny: Add override for duplicated aws-smithy-json dependency
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2007>
2024-12-23 18:14:17 +02:00
Sebastian Dröge
5413e67586 deny: Remove obsolete entries
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2007>
2024-12-23 18:14:04 +02:00
Sebastian Dröge
07d5fa3a09 deny: Update
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2007>
2024-12-23 18:13:50 +02:00
Sebastian Dröge
a29780750d deny: Update
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2007>
2024-12-23 18:13:33 +02:00
Sebastian Dröge
2d6b123f6b Update Cargo.lock
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2007>
2024-12-23 18:12:04 +02:00
Sanchayan Maity
6e67e7c378 docs: Fix CI failure due to missing GRAY10_LE16 entry
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2007>
2024-12-23 16:42:44 +02:00
Thibault Saunier
e0bef7d179 docs: Allow updating the plugins_cache.json files without generating documentation
There is no dependencies between the 2 things, and it is often useful to be able
to update the cache even if we are not generating the documentation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2000>
2024-12-20 10:51:25 +02:00
Thibault Saunier
4764058efa webrtcsrc: Add a 'connect-to-first-producer' property
This is an helper property which allows to avoid requiring to know
peer IDs, which is very useful during development.

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/386
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2000>
2024-12-20 10:51:25 +02:00