Commit graph

150 commits

Author SHA1 Message Date
Dirk Van Haerenborgh
31a48c4baa Split out base object traits
This allows using this independent from GStreamer for subclassing e.g.
GIO or GTK GObjects.

Fixes https://github.com/sdroege/gst-plugin-rs/issues/28
Fixes https://github.com/sdroege/gst-plugin-rs/pull/32
2018-05-01 17:11:18 +03:00
Sebastian Dröge
f2f18ebb27 Fix ElementImplExt::catch_panic_pad_function() to actually work 2018-04-05 12:16:09 +03:00
Sebastian Dröge
c7103765db Run everything through rustfmt again 2018-04-05 11:36:10 +03:00
Sebastian Dröge
40f243dfc3 Move catch_panic_pad_function() into a generic place for all element subclasses 2018-04-05 11:34:57 +03:00
Sebastian Dröge
7bffce7a6f Fix compilation with gobject-sys changes to use plain uints for bitflags 2018-04-04 17:32:46 +03:00
Sebastian Dröge
d25b5006cb Run everything through rustfmt again 2018-04-01 12:12:39 +03:00
Sebastian Dröge
3db1c92663 Use ptr::NonNull in various places 2018-04-01 12:12:27 +03:00
Sebastian Dröge
f3714f6fe7 Update CHANGELOG.md for 0.1.4 2018-03-20 13:18:37 +02:00
Sebastian Dröge
bcb4617856 Implement Send+Sync for all wrapper types 2018-03-06 22:50:27 +02:00
Sebastian Dröge
24e5c435a7 Revert "Remove callback guards"
This reverts commit 75248c7f07.

Callback guards are required since 1.24.1 again but probably not in 1.25
forwards.
2018-03-02 21:35:50 +02:00
Sebastian Dröge
da433f92af Run everything through latest rustfmt-nightly 2018-02-22 11:23:34 +01:00
Sebastian Dröge
75248c7f07 Remove callback guards
Since Rust 1.24 it is safe to let panics go to the FFI boundary
2018-02-17 20:01:31 +02:00
Sebastian Dröge
a0a01f3013 Fix BaseSrc::unlock_stop() calling unlock(), and BaseSink 2018-02-12 17:44:33 +02:00
Sebastian Dröge
2996eaf287 Add tutorial to README.md 2018-02-05 10:29:48 +02:00
Sebastian Dröge
d98c666bd9 Catch panics during plugin initialization and log them 2018-01-18 18:54:15 +02:00
Sebastian Dröge
9375503296 Update CHANGELOG.md for 0.1.3 2018-01-15 10:45:39 +02:00
Sebastian Dröge
3f8adff757 Add BaseTransform::transform_ip_passthrough()
This is called with an immutable BufferRef if we're running in
passthrough mode and the element was configured to pass passthrough
buffers to transform_ip.

Previously we would've gotten a mutable reference, that then would fail
all mutable operations.
2018-01-15 10:35:18 +02:00
Sebastian Dröge
e7cd12bf8a Also update version in the plugin metadata to 1.8 2018-01-15 10:29:08 +02:00
Sebastian Dröge
714301d584 Don't require GStreamer 1.10
We're working just fine with 1.8 too
2018-01-15 09:34:53 +02:00
Sebastian Dröge
fc5e2ae03a Update CHANGELOG.md for 0.1.2 2018-01-03 17:51:15 +02:00
Sebastian Dröge
b9f6d9dc34 Pass caps by reference to BaseTransform::transform_caps() 2018-01-03 17:49:46 +02:00
Sebastian Dröge
8a41656f40 Also the default BaseTransform::transform_caps() should not take the caps parameter owned 2018-01-03 17:48:59 +02:00
Sebastian Dröge
8df8b68555 Update CHANGELOG.md for 0.1.1 2018-01-03 17:13:26 +02:00
Sebastian Dröge
3aa3d826c3 Add CHANGELOG.md to gst-plugin 2018-01-03 17:13:17 +02:00
Sebastian Dröge
43d38d0951 Caps in BaseTransform::transform_caps() are not owned 2018-01-02 19:28:43 +02:00
Aleksey Ivanov
67edf375f3 [Close #24] Update repository link 2017-12-22 23:39:22 +02:00
Sebastian Dröge
000da42b5c Fix documentation URL 2017-12-22 16:29:51 +02:00
Sebastian Dröge
2decd553d7 Update README.md and include it in the gst-plugin crate too 2017-12-22 15:56:48 +02:00
Sebastian Dröge
723409e05a Update gst-plugin Cargo.toml with lots of metadata 2017-12-22 15:41:24 +02:00
Sebastian Dröge
3fe6e1ab18 Add support for adding signals/action-signals 2017-12-20 22:22:19 +02:00
Sebastian Dröge
c1ca7902f1 Don't panic when getting a property failed 2017-12-20 21:57:25 +02:00
Sebastian Dröge
bda421d218 Move more things into gst-plugin-simple 2017-12-20 21:53:43 +02:00
Sebastian Dröge
22c5f93d3b Fix various clippy warnings 2017-12-20 21:36:50 +02:00
Sebastian Dröge
07ce2d64b8 Use the Into trait instead of custom into_*() functions 2017-12-20 20:13:31 +02:00
Sebastian Dröge
80a2c5033f Use ErrorMessage from gstreamer bindings 2017-12-20 20:05:04 +02:00
Sebastian Dröge
cbfb30c7b5 Run everything through rustfmt again 2017-12-20 19:30:32 +02:00
Sebastian Dröge
8e1428c047 Implement Error/Display for AdapterError 2017-12-20 19:18:32 +02:00
Sebastian Dröge
a99522150b Remove unused utils module 2017-12-20 19:16:14 +02:00
Sebastian Dröge
841252c5f7 Fix compilation after gstreamer-rs API changes 2017-12-16 17:42:32 +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
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