Commit graph

602 commits

Author SHA1 Message Date
Mathieu Duponchelle
5976c9c1e4 jitterbuffer: timeouts may be called context_wait / 2 too early
Take this into account to determine what packets need sending out.
2019-09-24 15:17:27 +02:00
Mathieu Duponchelle
c5d5cdcd9d jitterbuffer: discard packets with invalid pts
When RTPJitterBuffer resets itself in caluclate_pts(), it returns
GST_CLOCK_TIME_NONE and the packet should be discarded, according
to the behaviour of the standard jitterbuffer.
2019-09-24 15:17:22 +02:00
Sebastian Dröge
e708e42dcb fallbackswitch: Allow using compressed video in the example application 2019-09-18 11:36:54 +00:00
Sebastian Dröge
a6812d852f fallbackswitch: Use DTS if existing or otherwise PTS for timestamp tracking 2019-09-18 11:36:54 +00:00
Sebastian Dröge
50ee0c1a1d fallbackswitch: Correctly handle incoming non-default segments
We need to convert buffer timestamps to the outgoing [0, -1] segment of
aggregator. This won't work correctly for negative DTS as is.
2019-09-18 11:36:54 +00:00
Sebastian Dröge
b7dba68ab9 fallbackswitch: Fix compiler warning in test 2019-09-18 11:36:54 +00:00
Sebastian Dröge
9c051083b0 fallbackswitch: Add support for non-raw caps
And in that case always wait for a keyframe before doing a pad switch.
2019-09-18 11:36:54 +00:00
Sebastian Dröge
05d379bd3d fallbackswitch: Minor cleanup 2019-09-18 11:36:54 +00:00
Sebastian Dröge
187cd9f8b1 fallbackswitch: Add simple GTK example application 2019-09-18 11:36:54 +00:00
Sebastian Dröge
7e25b4fd84 togglerecord: Use Bus::add_watch_local() for simplification 2019-09-18 11:36:54 +00:00
Sebastian Dröge
3af5552e10 lewton: Use gst_audio_decoder_error!() macro instead of the hard gst_element_error_macro!()
This allows for some decoding errors to happen.
2019-09-15 11:50:24 +03:00
Sebastian Dröge
f2264b8a1e rav1e: Use AtomicRefCell instead of a Mutex for the state
We only ever use it from the streaming thread.
2019-09-14 20:08:18 +03:00
Sebastian Dröge
d0978473d3 Add initial version of lewton based Vorbis decoder 2019-09-14 20:08:18 +03:00
Sebastian Dröge
63eab12132 fallbackswitch: Remove unnecessary base-prelude.h include
It does not exist in pre-1.16 versions of GStreamer yet.
2019-09-13 09:41:49 +00:00
Mathieu Duponchelle
ec56fee368 jitterbuffer: fix packet_spacing calculation
When encountering an unexpected gap in received seqnums, ips_pts
and ips_rtptime must be reset to avoid calculating a potentially
invalid packet spacing the next time sequential packets are
received.
2019-09-12 15:29:18 +02:00
Sebastian Dröge
7d88c014f8 fallbackswitch: Fix buffer clipping if no duration and 0/1 framerate
Instead of a division by 0, simply ignore the duration for clipping
purposes.
2019-09-11 22:04:46 +03:00
Sebastian Dröge
e7053bc046 threadshare: Don't keep timers locked while waiting for IO 2019-09-09 13:55:56 +03:00
Sebastian Dröge
5f9d649021 threadshare: Handle context-wait==0 by waiting on IO 2019-09-09 12:37:18 +03:00
Sebastian Dröge
b05fb902f9 Remove usage of subclassing feature, it's the default now 2019-09-09 10:45:06 +03:00
Sebastian Dröge
1084178e95 jitterbuffer: Minor code cleanup 2019-09-07 10:53:11 +03:00
Sebastian Dröge
83cc8104a1 Fix or silence all remaining clippy warnings
Also ignore common errors we don't care about when running clippy and
make clippy errors fail the CI.
2019-09-07 10:42:07 +03:00
Mathieu Duponchelle
2c7775125a tests/appsrc: remove unrelated jitterbuffer "tests"
This was mistakenly staged during development for !161
2019-09-06 21:13:37 +02:00
Mathieu Duponchelle
9d7e304fc6 threadshare: address clippy errors 2019-09-06 19:21:07 +02:00
Mathieu Duponchelle
202ff408e7 jitterbuffer: share context downstream
.. and execute pending futures after pushing buffers
2019-09-06 14:33:39 +00:00
Mathieu Duponchelle
5496067925 jitterbuffer: initial thread sharing support 2019-09-06 14:33:39 +00:00
Sebastian Dröge
33cb599464 threadshare/iocontext: Add custom interval timer implementation
This knows about our throttled event loop and ensures that timers are
triggered at most 1 throttle time later instead of 2.
2019-09-06 14:33:39 +00:00
Mathieu Duponchelle
b7e55836c1 WIP: thread-sharing jitterbuffer
Actual thread-sharing will follow!
2019-09-06 14:33:39 +00:00
Sebastian Dröge
120481269b gst-plugin-version-helper: Update git2 dependency to 0.10 2019-09-04 12:20:55 +03:00
Sebastian Dröge
d48b3f18fc rav1enc: Update to new rav1e frame API
And also add support for forcing keyframes.

Disable tiles in the test for now because of https://github.com/xiph/rav1e/issues/1611
2019-08-30 09:46:37 +03:00
Sebastian Dröge
9581a3695d rav1enc: Fix build with latest rav1e API 2019-08-27 14:22:28 +03:00
Sebastian Dröge
6aa09149b9 fallbackswitch: Fix remaining GType name conflicts between bundled and gstbase aggregator
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/issues/67
2019-08-27 11:30:35 +03:00
Sebastian Dröge
183f197d32 fallbackswitch: Add some tests 2019-08-19 15:59:02 +00:00
Sebastian Dröge
b401b2f243 fallbackswitch: New plugin providing a fallbackswitch element
Allows having a live input stream and falling back to another input
stream after a configurable timeout without any buffers received on the
main input.
2019-08-19 15:59:02 +00:00
Sebastian Dröge
064cb52d0b rav1e: Fix for rav1e API changes
The colorimetry enum values are now in sync with the spec.
2019-08-19 18:57:37 +03:00
Sebastian Dröge
b17773a574 rav1e: Fix build after videoencoder API changes 2019-08-14 22:12:26 +03:00
ahamedsajeer.15
9119349c08 reqwesthttpsrc: add timeout 2019-08-13 17:41:06 +03:00
François Laignel
0e11ac87d3 Update for new {Value, StructureRef}::get signature
See https://github.com/gtk-rs/glib/pull/513
and https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/merge_requests/310
2019-08-13 15:29:28 +02:00
Mathieu Duponchelle
da2332d814 ts-queue: Make PendingQueue a proper struct 2019-08-09 11:44:47 +00:00
Mathieu Duponchelle
892c812669 ts-queue: split up enqueue_item
This is far from a full refactoring, but it makes the current
implementation slightly easier to understand
2019-08-09 11:44:47 +00:00
ahamedsajeer.15
f2dca12de6 reqwesthttpsrc: add http auth 2019-08-09 12:23:23 +05:30
Ray Tiley
ccd607707d threadsharing/udpsrc: Fix build on Windows 2019-08-08 10:32:19 -04:00
ahamedsajeer.15
923f6e3a5c reqwesthttpsrc: add is-live property 2019-08-07 19:20:48 +00:00
Sebastian Dröge
1e71767b40 cdg: Update to image 0.22 and cdg_renderer 0.3 2019-08-07 15:52:50 +03:00
ahamedsajeer.15
324b205926 reqwesthttpsrc: add user-agent header to request 2019-08-06 08:04:16 +00:00
Philippe Normand
0fcc0cb2d3 reqwest: Rename again reflecting the crate name
rshttp is too generic, so rename the plugin in a similar fashion as most other
GStreamer Rust plugins in this repository.
2019-08-02 16:34:53 +01:00
Charlie Turner
a844d765da reqwesthttpsrc: name lib the same as plugin name
Otherwise it won't be discoverable by gst-inspect-1.0 or registry
lookup.
2019-08-02 10:45:17 +01:00
Charlie Turner
7137d3d389 rav1enc: PixelRange::Unspecified was removed.
1f8f62a04dca13302ccef6371ec5211a001ed356 in rav1e removed this
enumeration. They changed the default value from Unspecified to
Limited, so that's what I've done here as well.
2019-08-02 10:13:14 +01:00
ahamedsajeer.15
4b4a2798b6 reqwesthttpsrc: Set offset field on outgoing buffers 2019-07-24 11:17:14 +00:00
ahamedsajeer.15
367ca9b996 reqwesthttpsrc: Map error response codes to the correct error messages 2019-07-24 11:17:14 +00:00
ahamedsajeer.15
542f68dd07 reqwesthttpsrc: Add a seeking test 2019-07-24 11:17:14 +00:00