Commit graph

2559 commits

Author SHA1 Message Date
Sebastian Dröge
4c618394b7 tutorial: Use chunks_exact/chunks_exact_mut instead of the normal chunks iterator
We always want as many items as given, no less. And this also enables
the compiler to optimize the code further.
2019-01-25 16:42:27 +02:00
François Laignel
b8d19920a8 file plugin: starting an already started element is a bug
... in the base class.

See discussion in:

https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/merge_requests/73
2019-01-24 07:49:54 +00:00
Jordan Petridis
45ebb4c629
mccparse: Refactor huge line-handling function into smaller separate functions
* The Debug category was moved to a lazy_static!.
This allowed for a couple of methods, to be implemented
directly against the State struct since the debug category
was their only dependency from MccParse.

* Log the Caps/Format change
2019-01-22 16:48:12 +02:00
Sebastian Dröge
ccc3652a1a plugin::register_static() can fail so don't let it silently fail 2019-01-21 22:13:07 +02:00
Sebastian Dröge
d7fc5ca272 Set caps on the harness in tests before pushing the first buffer
Otherwise there will be warnings about data flow before segment events,
as harness is only sending the segment event together with the caps.
2019-01-21 17:34:44 +02:00
Sebastian Dröge
8c671ed7dc Enable 1.31 test job now that 1.32 is released 2019-01-18 08:14:38 +00:00
François Laignel
f5a398b21e Update gstreamer-rs/gstreamer bool to Result changes 2019-01-18 10:00:45 +02:00
Sebastian Dröge
873d177322 threadshare: Update for GLib API changes 2019-01-16 17:30:26 +02:00
Sebastian Dröge
e1c32ecd61 flvdemux: Handle parsing errors correctly
By either skipping the broken data if we can, or otherwise if we can't
by simply erroring out.
2019-01-14 22:09:46 +02:00
Jordan Petridis
45c765fb57 closedcaption: remove unnecessary extern crate declarations
The ones for gstreamer and glib are left there to avoid importing
the macros from weird paths, since the bindings are not yet ready
for this modules system
2019-01-13 14:23:31 +02:00
Sebastian Dröge
774110ec0a closedcaption: Add closed caption plugin with an MCC parser and encoder 2019-01-13 14:23:31 +02:00
François Laignel
e930133bdf Update for gstreamer-rs MR 200
See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/merge_requests/200
2019-01-12 18:00:04 +01:00
Sebastian Dröge
abe87fae12 Remove gst-plugin and gst-plugin-simple crates
They're not used anymore.
2019-01-03 23:58:00 +02:00
Sebastian Dröge
4b4ae6d52c flvdemux: Port to new subclassing API
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/issues/49
2019-01-03 23:58:00 +02:00
Sebastian Dröge
1e39927037 httpsrc: Port to new subclassing API
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/issues/50
2018-12-30 11:32:57 +00:00
Sebastian Dröge
8ad7643ec3 filesrc: Use BaseSrc::fill() instead of ::create() 2018-12-30 12:03:10 +02:00
Sebastian Dröge
7e68f84a43 filesrc: Set format as gst::Format::Bytes in basesrc 2018-12-30 12:02:53 +02:00
Sebastian Dröge
bab4efb234 file: Always return glib::Error with domain gst::URIError from set_uri() 2018-12-30 12:02:28 +02:00
Sebastian Dröge
e77c23352a filesrc: This is a source, not a sink element 2018-12-29 11:27:18 +02:00
Sebastian Dröge
bddc4f325e flv: Fix compilation after change to Buffer::from_mut_slice()
It does not return an Option<_> anymore.
2018-12-27 10:45:59 +02:00
Sebastian Dröge
04955f61d7 Update to reqwest 0.9, rand 0.6 and parking_lot 0.7 2018-12-19 14:32:03 +02:00
Sebastian Dröge
f374d7fedf Remove unneeded ObjectSubclass::new() functions where not needed 2018-12-19 13:23:02 +02:00
Sebastian Dröge
a8215ad711 Use new GLib API for generically implementing GObject interfaces 2018-12-19 13:21:59 +02:00
Sebastian Dröge
1f8465af66 rsfilesrc: Fix typo in previous commit 2018-12-19 13:21:48 +02:00
Sebastian Dröge
5b0d79bc73 Switch to Rust 1.31 as minimum supported version
Too many dependencies switched and we can't really keep everything at an
older version.

Commented out for now until stable becomes 1.32.
2018-12-19 13:21:48 +02:00
Sebastian Dröge
fb741f26f3 Update for glib property API changes 2018-12-18 11:23:45 +02:00
François Laignel
7d1f6b0bd4 gst-plugin-file: port filesink to new subclass architecture 2018-12-15 14:28:04 +01:00
Sebastian Dröge
d770cbf839 Remove some historical cruft from the README.md 2018-12-13 20:07:24 +02:00
Sebastian Dröge
0792fe4f1a ts-appsrc: Fix deadlock during shutdown
The IO Context has to be alive longer than the other parts
of the state. Otherwise a deadlock can happen between shutting down
the IO context (thread join while the state lock is held) and stuff
happening on the IO context (which might take the state lock).
2018-12-13 17:13:40 +02:00
Sebastian Dröge
6bd4931120 tutorial: Add identity element based directly on GstElement 2018-12-13 15:04:19 +02:00
Sebastian Dröge
10da397d9b tutorial: Improve documentation comments a bit 2018-12-13 12:02:38 +02:00
Sebastian Dröge
44da5074bd togglerecord: Don't call override_vfuncs()
It's called automatically for us already.
2018-12-13 12:02:38 +02:00
Ruben Gonzalez
127dbca2f5
Merge pull request #17 from teltek/new_glib_subclassing
Port to new glib subclassing API
2018-12-12 12:21:37 +01:00
Daniel Vilar
b85fcdf649 Cast correctly audio data in buffer from *mut u8 to *mut i16 2018-12-12 12:00:33 +01:00
Daniel Vilar
d3ba5efff8 Port to new glib subclassing API #13 2018-12-11 17:47:03 +01:00
Ruben Gonzalez
c12f216b59
Merge pull request #16 from teltek/fix_initial_timestamps
Improved timestamps calculation
2018-12-11 17:35:54 +01:00
Daniel Vilar
6116729c5d Fixed timestamps 2018-12-11 16:42:27 +01:00
Daniel Vilar
3e38042d7f Improve logging #14 2018-12-11 12:26:50 +01:00
Daniel Vilar
9a2b647443 Updated descriptions of element properties 2018-12-10 17:29:30 +01:00
Daniel Vilar
678c5876de Improved timestamps calculation
Due to the possibility to connect to two or more streams simultaneously with different clocks synchronization It's necessary to improve the timestamps calculation to detect this.

Prior to this commit, we saved the first timestamp that arrive and use it to calculate the running time of the stream for the rest of frames (pts field in gstreamer buffer) in all of the streams. This lead to problems when connecting to multiple streams in multiple computers and the clocks were not correctly synchronized.

To fix this, now we save a different initial timestamp for each stream.
2018-12-10 13:27:23 +01:00
François Laignel
4812884453 CI: fix fmt 2018-12-09 16:03:27 +01:00
Sebastian Dröge
e64a9b4a1a Port threadshare plugin to new subclassing API 2018-12-06 13:03:04 +02:00
Daniel Vilar
f06ac8c035
Merge pull request #11 from teltek/loss_threshold_param
Added parameter to adjust threshold when detecting that a stream was closed
2018-12-05 17:35:46 +01:00
Daniel Vilar
b0b3316616
Merge pull request #12 from teltek/fix_audio_multichannel
Fix issues with multichanel audio
2018-12-05 17:35:34 +01:00
Daniel Vilar
9df0a01a0c If param loss_threshold is 0, we don't close the stream connection when receiving a NDIlib_frame_type_none 2018-12-05 16:13:36 +01:00
Daniel Vilar
e68bb9b4aa Fix issues with multichanel audio 2018-12-05 15:22:01 +01:00
Daniel Vilar
192253ab05 A new parameter was added to adjust the threshold when detecting that a stream was closed 2018-12-05 12:55:01 +01:00
Sebastian Dröge
4d87c11293 Run everything through latest rustfmt again 2018-12-04 19:01:40 +02:00
Sebastian Dröge
3026e56cfb ts-udpsrc: Creating a gio::Socket from a raw fd/socket is unsafe
So put it into an unsafe block.
2018-12-03 13:02:35 +02:00
Sebastian Dröge
9750195caa ts-udpsrc: Dup the socket so that both tokio and GIO can take ownership of it
Otherwise both would be closing the same socket, which a) breaks the
second user of the socket if any and b) could on the second close cause
a completely unrelated socket to be closed.

Windows part of the code is untested.
2018-11-30 19:39:39 +02:00