Commit graph

2637 commits

Author SHA1 Message Date
Sebastian Dröge
73d0615f10 Send force-keyunit events later
We must not unlock the main stream's mutex until everything is handled
correctly, otherwise the other streams might continue in an inconsistent
state.

As a side-effect, this will only ever request a keyframe if there
currently isn't one.
2017-12-10 13:18:43 +02:00
Sebastian Dröge
86d1676a67 Request a keyframe whenever we're going to wait for a keyframe 2017-12-10 12:38:18 +02:00
Sebastian Dröge
9250ca4ccc Improve togglerecord example UI a bit 2017-12-10 12:38:18 +02:00
Sebastian Dröge
c6800e8a26 Fixes/simplifications for GStreamer API changes 2017-12-09 19:41:54 +02:00
Sebastian Dröge
63380e023a Add read-only "recording" property to togglerecord
This signals whether we are actually recording currently or not.
2017-12-06 14:21:12 +02:00
Sebastian Dröge
8873821340 Fix build after gstreamer-rs API changes 2017-12-05 23:34:01 +02:00
Sebastian Dröge
39b4d89790 The either crate is only a dependency for the togglerecord test 2017-12-05 19:30:23 +02:00
Sebastian Dröge
b25309a66a Add gst-plugin-togglerecord 2017-12-05 09:56:58 +02:00
Sebastian Dröge
cea5d4d03e Require fallback value in Element::catch_panic() to be given as closure 2017-12-04 21:49:27 +02:00
Sebastian Dröge
ac09ae7d73 Never fail downwards state changes
This causes bugs in GStreamer and leads to crashes and deadlocks
2017-12-04 21:45:03 +02:00
Sebastian Dröge
083371866a Add helper function that allows to catch panics and poison the element 2017-12-04 21:30:10 +02:00
Sebastian Dröge
b3725312c4 Update to lazy_static 1.0 2017-12-04 11:12:32 +02:00
Sebastian Dröge
2fb3952aa2 Element::request_new_pad() is (transfer none) in the return value
Which is effectively unsafe, but nothing we can do about that right now
without leaking all pads.

https://bugzilla.gnome.org/show_bug.cgi?id=791193
2017-12-04 11:08:16 +02:00
Sebastian Dröge
a271b18c09 Take ownership of any floating references in Bin::add/remove_element() 2017-11-27 17:26:43 +02:00
Sebastian Dröge
3f1eb96da9 Add support for creating Pipeline subclasses 2017-11-27 15:08:24 +02:00
Sebastian Dröge
b55a24c929 Add support for creating Bin subclasses 2017-11-27 15:08:24 +02:00
Sebastian Dröge
22ab56895d Remove Rs prefix from everything
We have proper namespaces in Rust
2017-11-20 13:23:30 +02:00
Sebastian Dröge
656dc990f8 Require a get_type() function for boxed/object properties
Otherwise storing the properties in a static array is not possible
2017-11-20 12:30:21 +02:00
Sebastian Dröge
323bf3ea08 Update to latest gstreamer-rs master API changes 2017-11-11 13:02:55 +01:00
Sebastian Dröge
768b68f94a Fix up Adapter's WouldBlock error message
With the correct values of requested and available bytes.
2017-11-06 23:25:09 +02:00
Thibault Saunier
9158c2c8e1 adapter: Implement the Read trait 2017-11-06 11:51:04 +02:00
Sebastian Dröge
bf360ebce8 Fix typo in crate/repo name 2017-10-30 10:51:56 +02:00
Sebastian Dröge
d4138cb566 Update to reqwest 0.8 2017-10-25 14:58:41 +02:00
Sebastian Dröge
d8dbe8414c Fixes for gstreamer-rs API changes 2017-10-21 10:06:28 +02:00
Sebastian Dröge
176e07bf0a Move properties code to a separate file 2017-10-19 11:06:19 +02:00
Sebastian Dröge
83388c8322 audioecho: Don't unnecessarily mark variable as mutable 2017-10-19 11:06:01 +02:00
Sebastian Dröge
443abffa73 Run everything through latest rustfmt-nightly 2017-10-17 12:21:53 +03:00
Sebastian Dröge
4b97d56949 Fix compilation after GstRc<T>::get_mut() API fixes in gstreamer-rs 2017-10-12 18:03:06 +03:00
Sebastian Dröge
393cd6236a Move simple Source/Sink/Demuxer traits to a separate crate
Fixes https://github.com/sdroege/gst-plugin-rs/issues/20
2017-10-11 13:32:44 +03:00
Sebastian Dröge
89b44e6081 Don't have to store the size of the slice twice 2017-10-07 13:14:18 +03:00
Sebastian Dröge
16b6d61e10 Improve release configuration a bit 2017-10-07 12:43:38 +03:00
Sebastian Dröge
7cf784a9fc Some more RingBufferIterator cleanup 2017-10-07 11:38:35 +03:00
Sebastian Dröge
20f1666bc9 Run everything through rustfmt again 2017-10-07 05:01:04 +03:00
Sebastian Dröge
97ad0c0bc2 Simplify audioecho code a bit 2017-10-07 05:01:04 +03:00
Sebastian Dröge
80341fd90e Add audiofx plugin with audioecho element 2017-10-07 01:04:33 +03:00
Sebastian Dröge
c241a65555 Add BaseTransform support 2017-10-05 18:08:15 +03:00
Sebastian Dröge
2c0388b06d Fix BaseSink::event() signature
The event's ownership is transfered to the function, not only borrowed.
In BaseSrc::event() it is borrowed.
2017-10-05 10:23:47 +02:00
Sebastian Dröge
dda3b5ff1a Fix build with latest gstreamer-rs 2017-10-01 16:19:43 +02:00
Sebastian Dröge
6a7da572f0 Use our own reimplementation of mopa for our use cases
We had to replicate the mopafy! macro already anyway and poke into the
internals of the mopa implementation.
2017-09-26 13:54:55 +03:00
Sebastian Dröge
e97f4fb8c1 Fix some unused parameter warnings 2017-09-26 13:45:19 +03:00
Sebastian Dröge
60e25bcc91 Add lots more virtual method for basesrc 2017-09-26 13:39:34 +03:00
Sebastian Dröge
dc231937d7 Add more virtual methods to ElementImpl 2017-09-26 13:11:52 +03:00
Sebastian Dröge
91df8f991e Add lots of missing virtual methods to BaseSink 2017-09-26 11:58:26 +03:00
Sebastian Dröge
cba662934c Get rid of various clippy warnings 2017-09-26 01:58:19 +03:00
Sebastian Dröge
515f58da02 Remove obsolete FIXME comment 2017-09-26 01:52:35 +03:00
Sebastian Dröge
ec1903a571 Make overriding of vfuncs safer
It can only be called from the correct class_init() now
2017-09-26 01:50:56 +03:00
Sebastian Dröge
41d6343682 Make calls into the parent class struct safer and use more useful object wrapper type (T) for virtual methods 2017-09-26 01:43:56 +03:00
Sebastian Dröge
a354116336 Make ObjectImpl and subtraits generic over T: ObjectType 2017-09-26 00:25:03 +03:00
Sebastian Dröge
f45723c04e Remove redundant ObjectType::RsType associated type
It's supposed to be the same as Self
2017-09-25 23:40:17 +03:00
Sebastian Dröge
5e9f42e7f8 Remove some more boilerplate 2017-09-25 15:35:27 +03:00