Mathieu Duponchelle
ab01fc6143
onvifaggregator: refactor to support duration-less media buffers
...
For instance when dealing with a variable framerate media stream,
input media buffers may not hold a duration, in which case we try
to calculate one by waiting for the following buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/765 >
2022-05-25 17:35:04 +00:00
Mathieu Duponchelle
77260a8442
onvifaggregator: implement proper EOS support
...
We could otherwise busy loop in aggregate forever when the meta
sink pad received EOS.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/765 >
2022-05-25 17:35:04 +00:00
Jan Alexander Steffens (heftig)
68c55ca413
fallbackswitch: Recheck active_sinkpad after schedule_timeout
...
`schedule_timeout` can synchronously call `handle_timeout` and change the
active pad. We need to update `is_active` afterwards.
After calling `schedule_timeout` with `end_running_time`, we used to
assume there was no pad switch and reset `switched_pad` immediately. If
the pad actually got switched, this would make us miss a sticky events
update.
2022-05-25 17:53:55 +02:00
Sebastian Dröge
d77929252a
deny: Update for removed duplicated dependencies
2022-05-24 10:08:57 +03:00
Guillaume Desmottes
351453c132
add snapshotting tracer
...
Convenient tracer to dump all the existing pipelines when receiving the
SIGUSR1 Unix signal.
2022-05-23 13:52:52 +02:00
Sebastian Dröge
d18270a391
deny: Update
2022-05-22 16:35:09 +03:00
Sebastian Dröge
a0455b5e00
spotifyaudiosrc: Update to librespot 0.4
2022-05-22 16:28:59 +03:00
Sebastian Dröge
d6fa921822
fmp4mux: Use saturing_sub() in more places
...
On unclean input, PTS/DTS might go backwards a bit and in those cases
calculate a duration of 0 instead of panicking.
2022-05-20 15:03:06 +03:00
Sebastian Dröge
6bca5a9962
fmp4mux: Implement interleaving based on start timestamps instead of accumulated durations
...
Durations might accumulate rounding errors and streams might not
actually start at the same time. For that reason also start with the
stream that has the lowest timestamp.
2022-05-20 15:03:06 +03:00
Sebastian Dröge
d7bd4c1c93
fmp4mux: Implement handling of GAP events
2022-05-20 15:03:04 +03:00
Sebastian Dröge
987e4efc02
fmp4mux: In live pipelines use the current fragment end time as timeout
...
This allows muxing even if some streams are sparse or have big gaps.
2022-05-20 15:02:46 +03:00
Sebastian Dröge
ffea0e2d2d
fmp4mux: Add support for ONVIF timed XML metadata
2022-05-19 17:55:07 +03:00
Sebastian Dröge
e4634ca2fe
fmp4mux: Add ONVIF variant with support for additional codecs
...
This variant supports H264/5, JPEG, alaw, mulaw and G726.
2022-05-19 17:55:07 +03:00
Sebastian Dröge
0206178279
fmp4mux: Check for force-keyunit events on both pads in the multistream test
2022-05-19 17:55:07 +03:00
Sebastian Dröge
4bc0ae09fa
fmp4mux: Use saturing subtraction to calculate sample durations
...
PTS/DTS might go backwards if the input is borderline broken but that
shouldn't cause a panic.
2022-05-13 10:54:23 +00:00
Sebastian Dröge
dcad6ffe34
rtponvifdepay: Set caps on the source pad
...
The RTP depayloader base class does not take care of this in any way and
it has to be done manually.
2022-05-13 13:34:30 +03:00
Sebastian Dröge
b9bc331ebc
ci: Generate coverage report also for crates with external dependencies
2022-05-12 18:32:04 +03:00
Sebastian Dröge
50980a0b3e
fmp4mux: Add to default workspace members
2022-05-12 18:31:22 +03:00
Sebastian Dröge
cfb59100d6
fmp4mux: Add test for muxing of multiple streams
2022-05-12 18:31:02 +03:00
Sebastian Dröge
e06665b92d
fmp4mux: Add support for multiple input streams
2022-05-12 18:31:02 +03:00
Sebastian Dröge
31a32a7e2e
fmp4mux: Add support for writing out multiple tracks in the serialization code
...
Not yet exposed from the element.
2022-05-12 18:31:02 +03:00
Sebastian Dröge
c09b7b9e41
fmp4mux: Port to aggregator as base class as preparation for supporting multiple streams
2022-05-12 18:31:02 +03:00
Sebastian Dröge
23cc00ce4b
fmp4mux: Write sample flags in tfhd
if there's only a single sample
...
Instead of declaring them to be in the `tfhd` but not writing them into
the `tfhd` but also not the `trun`.
2022-05-12 18:31:02 +03:00
Jan Alexander Steffens (heftig)
d27e279272
fallbackswitch: Move active_sinkpad out of State into its own Mutex
...
As described in issue #200 , we hold the srcpad's stream lock in some
situations where we notify the `active-pad` property.
If there's a handler installed it will most likely attempt to read the
property, which had to take the `state` lock. Another thread could
already be holding this lock and attempting to obtain the srcpad's
stream lock. This resulted in a deadlock.
To avoid this, move the `active_sinkpad` field into its own Mutex, which
we never hold for long.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/200
2022-05-12 16:52:07 +02:00
Arun Raghavan
557917b92a
dav1ddec: Write src_query() in match syntax for easier extensibility
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/698 >
2022-05-11 10:02:27 -04:00
Arun Raghavan
2c3514a5a1
dav1ddec: Deal with the possibilty of 0/1 fps in latency math
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/698 >
2022-05-11 10:02:10 -04:00
Arun Raghavan
7eb67de34c
dav1ddec: Use sink_pad() convenience accessor
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/698 >
2022-05-11 10:01:51 -04:00
Arun Raghavan
3250675e78
dav1ddec: Move state to Mutex from Arc
...
This is needed because we may now access state concurrently with and
outside of the streaming thread during a LATENCY query.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/698 >
2022-05-11 10:01:51 -04:00
Arun Raghavan
5d01bfcb79
dav1ddec: Move decoder init from start() to set_format()
...
We need a successful LATENCY query to be able to correctly initialise
max frame delay, so let's defer decoder init until we know upstream is
readier for it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/698 >
2022-05-11 10:01:51 -04:00
Arun Raghavan
05258756ce
dav1ddec: Report latency based on frame delay
...
This is not strictly correct as we might not use the same mechanism that
dav1d is using to detect the number of CPUs. We can drop the num_cpus
based approach once
https://code.videolan.org/videolan/dav1d/-/merge_requests/1407 is merged
upstream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/698 >
2022-05-11 08:29:48 -04:00
Arun Raghavan
7d681c5ce4
dav1ddec: Expose a couple of decoder settings as properties
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/698 >
2022-05-11 08:29:16 -04:00
Arun Raghavan
ea98a0b596
dav1ddec: Bump dependency for dav1d 1.0.0
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/698 >
2022-05-11 08:29:15 -04:00
Mathieu Duponchelle
943a138d49
ts-jitterbuffer: set jbuf delay when instantiating it
...
The internal (C) jitterbuffer needs to know about the configured
latency when calculating a PTS, as it otherwise may consider that
the packet is too late, trigger a resync and cause the element to
discard the packet altogether.
I could not identify when this was broken, but the net effect was
that in the current state, ts-jitterbuffer was discarding up to
half of all the incoming packets.
2022-05-11 06:29:22 +00:00
Mathieu Duponchelle
05ece5560e
tttocea608: expose roll-up timeout property
...
In roll-up mode, when no more timed text comes in, the closed
captions may remain displayed on screen indefinitely (unless the
decoder implements a timeout, but that is not mandatory).
Expose a property to erase the display memory after a configurable
amount of time has elapsed instead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/754 >
2022-05-11 01:47:52 +02:00
Mathieu Duponchelle
6b80fdc270
cea608overlay: handle CLEAR status
...
+ log errors
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/754 >
2022-05-10 18:52:56 +02:00
Mathieu Duponchelle
7425b31173
onvifaggregator: always push current media buffer on timeout
...
Even when aggregator.meta_frames is empty
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/751 >
2022-05-10 14:35:50 +00:00
Sebastian Dröge
e93544cfc6
tutorial/sinesrc: Use pushsrc as direct superclass in the glib::wrapper macro too
2022-05-10 10:05:48 +00:00
Jordan Petridis
a4aa45d27f
ci: remove the david checkot after install
...
Makes the docker image slightly smaller
2022-05-10 12:34:03 +03:00
Sebastian Dröge
ce50a3003c
textahead: PadTemplate::caps()
returns a caps reference now
2022-05-08 13:31:10 +03:00
Sebastian Dröge
2f16b5dd3e
threadshare: Use into_glib_ptr()
instead of into_ptr()
2022-05-08 13:31:10 +03:00
Sebastian Dröge
817231b4d0
hlssink3: PadTemplate::name_template()
returns a &str
now instead of Option<String>
2022-05-08 13:31:10 +03:00
Sebastian Dröge
92c66be943
onvifaggregator: Update for minor PadTemplate
API changes
...
`PadTemplate::caps()` returns a reference to the caps now instead of a
new strong reference, so keeping the template in scope as long as the
caps reference is required.
2022-05-08 13:31:03 +03:00
Mathieu Duponchelle
a4a5caec53
net/onvif: implement ONVIF metadata processing elements
...
- RTP payloader and depayloader
- Aggregator to pair per-frame metadata with media frames
- Overlay to render detected shapes
2022-05-06 11:17:04 +03:00
Sebastian Dröge
4a2c93299e
mccparse/sccparse: Don't log gst::FlowError::Flushing or Eos as error to the debug logs
2022-05-03 15:32:07 +03:00
Julien Vary
f908cbaffd
fmp4mux: adding headers when data resumes after EOS
2022-04-28 11:39:55 -04:00
Tim-Philipp Müller
90c203857a
threadshare: fix build on Windows
2022-04-27 00:13:46 +01:00
Philippe Normand
5aa1b7cd3b
README: Mention the colordetect element
2022-04-26 14:59:45 +01:00
Sebastian Dröge
3e10efa134
rusoto: Update to crc 3 and rusoto 0.48
2022-04-26 11:22:24 +03:00
Sebastian Dröge
5feca3f74b
deny: Update
2022-04-22 13:18:26 +00:00
Sebastian Dröge
ae32cc7f2b
closedcaption: Update to uuid 1.0
2022-04-22 13:18:26 +00:00