Commit graph

3193 commits

Author SHA1 Message Date
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
Sebastian Dröge b25e612458 Remove some boilerplate 2017-09-25 15:29:39 +03:00
Sebastian Dröge f322395918 Rename ObjectClassStruct to ObjectClass 2017-09-25 13:49:53 +03:00
Sebastian Dröge cd23c993ae Rename panic_to_error2() to panic_to_error()
No usage of the other one left.
2017-09-24 23:22:58 +03:00
Sebastian Dröge 0423264fea Hack around floating references
By unsetting the floating flag in our virtual method trampolines if it
was set, and resetting it at the end of the function again if it was
set.

Otherwise we can't safely use any bindings, as the assumptions about
floating references are invalid then and things just crash.
2017-09-24 23:21:15 +03:00
Sebastian Dröge 395a002f4a Store type ids in a static BTreeMap
static variables inside generic functions are shared between all
instances of the function, we can't use that for storing our generated
type id.
2017-09-24 22:47:14 +03:00
Sebastian Dröge 1260dc42bb Port sink over to new infrastructure 2017-09-24 22:28:28 +03:00
Sebastian Dröge 6e1c89d1df Add GstBaseSink bindings 2017-09-24 22:22:20 +03:00
Sebastian Dröge 1f880caee1 Port Source over to the new infrastructure 2017-09-24 22:18:12 +03:00
Sebastian Dröge 540011a4a0 Add some more boilerplate for impl trait inheritance
This needs some macros added.
2017-09-23 19:58:18 +03:00
Sebastian Dröge b7c396d70b Complete basesrc subclassing infrastructure 2017-09-23 19:54:36 +03:00
Sebastian Dröge a0bac4a722 Add interface infrastructure and GstURIHandler support 2017-09-23 19:20:23 +03:00
Sebastian Dröge 4ee8b12e66 Add infrastructure for installing various kinds of properties
From both the subclass and the implementation
2017-09-23 12:57:15 +03:00
Sebastian Dröge 1c997c171d Make some unnecessarily mutable variables immutable 2017-09-22 14:37:15 +03:00
Sebastian Dröge 950a7d5b0d Mark the abstract base types as actually abstract
Without implementation they can't be instantiated
2017-09-22 14:08:45 +03:00
Sebastian Dröge 0d22579297 Get rid of demuxer wrapper
It was just an unneeded layer of indirection now after all the
refactoring
2017-09-22 13:49:19 +03:00
Sebastian Dröge cda23d5c41 Implement generic object subclass creation in a more... generic... way
That actually works for subclasses of subclasses too without too much
boilerplate, and also keeps the GObject boilerplate in a single file
instead of having it for every single subclass.
2017-09-22 13:35:17 +03:00
Sebastian Dröge 8d253fd46a Minor cleanup 2017-09-19 16:05:21 +03:00
Sebastian Dröge 62a237ff0c Implement a generic Element implementation infrastructure
And implement the Demuxer base class on top of that, with no unsafe code
left whatsoever
2017-09-19 14:56:04 +03:00
Sebastian Dröge 2781e0b3d8 Port demuxer to plain Rust 2017-09-18 21:29:42 +03:00
Sebastian Dröge 7e7433037d Port everything over to gstreamer-rs
And remove all unneeded code and unused external crates.
2017-09-16 20:35:01 +03:00
Sebastian Dröge 5ae66e191c Run everything through latest rustfmt-nightly 2017-09-15 11:54:38 +03:00
Sebastian Dröge 71dcb979c7 Fix various compiler warnings in demuxer C code 2017-09-10 14:02:46 +03:00
Sebastian Dröge 338f2dcb92 Remove versions of git dependencies 2017-09-09 00:51:19 +03:00
Sebastian Dröge 6c28d5b194 Remove Cargo.lock 2017-09-09 00:51:06 +03:00
Sebastian Dröge 782fe5dcc9 Add travis.yml 2017-08-18 13:09:25 +03:00
Sebastian Dröge 37a673ce24 Use muldiv crate for timestamp calculations 2017-08-18 12:55:24 +03:00
Sebastian Dröge d68effa8e4 Update all kinds of dependencies 2017-08-18 12:52:17 +03:00
Sebastian Dröge 09f3a9ae9b Ship Cargo.lock in git 2017-08-02 11:35:45 +03:00
Sebastian Dröge 81e3900da1 Fix typo in README.md 2017-08-01 19:19:00 +03:00
Michal Budzynski 8045c74520 updated Makefile to use cargo build all 2017-08-01 19:15:27 +03:00
Michal Budzynski 1ee8d79d45 Removed self.logger.clone() in filesink/filesrc with split borrows 2017-08-01 19:15:27 +03:00
Sebastian Dröge e38c079c9e Update README.md to mention the application-side bindings, the license and contributions 2017-08-01 19:15:10 +03:00
Sebastian Dröge dd5af12ebe Rename used crates (gst -> gst_ffi, etc) and import gstreamer code 2017-07-31 23:26:52 +01:00
Sebastian Dröge 6f04ddf797 Run everything through rustfmt-nightly 2017-07-31 14:36:35 +01:00
Sebastian Dröge 3c27685e38 Update gst-plugin-http to reqwest 0.7 2017-07-31 14:29:11 +01:00
Sebastian Dröge 94016c39b0 Update to nom 3.0, bitflags 0.9 2017-06-06 13:29:19 +03:00
Sebastian Dröge 340e8836bb Update to reqwest 0.6 2017-05-10 11:26:45 +02:00
Sebastian Dröge d962acc8c3 Update to released versions of glib-sys/gstreamer-sys 2017-05-10 11:25:17 +02:00
Sebastian Dröge 52981968f6 Use raw pointers instead of &'static references
&'static is wrong here is the pointers are only valid for the lifetime
of the surrounding struct.

Also place a PhantomData<T> inside the structs as conceptually we own a
T, see std::ptr::Unique and
https://github.com/rust-lang/rfcs/blob/master/text/0769-sound-generic-drop.md#phantom-data

Need to add the PhantomData<T> elsewhere too.
2017-04-27 12:33:28 +03:00
Sebastian Dröge c6addbfe48 Remove From<&T> impls for GstRc<T>
Instead of this, ToOwned should be used.
2017-04-24 17:28:26 +03:00
Sebastian Dröge 139c9be958 Minor cleanup 2017-04-24 10:13:32 +01:00
Sebastian Dröge 9b593136da Rewrite MiniObject bindings
These now use references were applicable and GstRef became useless
2017-04-24 10:06:38 +01:00
Sebastian Dröge 2232af41b6 Refactor Structure bindings and allow getting Structures from Caps 2017-04-21 22:04:08 +01:00
Sebastian Dröge df51424631 Structure/Caps API improvements 2017-04-21 12:18:41 +01:00