Commit graph

377 commits

Author SHA1 Message Date
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
Sebastian Dröge
757d7532c1 Fix various clippy warnings 2017-04-20 20:37:08 +01:00
Sebastian Dröge
154e996e2d Implement Iterator::size_hint(), ExactSizeIterator and DoubleEndedIterator for our iterators 2017-04-20 20:28:03 +01:00
Sebastian Dröge
deef22cd28 Add bindings for GstStructure 2017-04-19 20:57:33 +01:00
Sebastian Dröge
8ea9e66797 Add Tag iterator for iterating one specific tag 2017-04-19 12:26:33 +01:00
Sebastian Dröge
e45ff7241e Remove some unneeded trait bounds in the taglist bindings 2017-04-19 12:11:31 +01:00
Sebastian Dröge
1bf20bfea4 Implement ValueRef and TypedValueRef for wrapping around a unowned GValue pointer without copying
Also rename new_from*() functions to from*() for consistency.
2017-04-19 11:59:44 +01:00
Sebastian Dröge
2d97baaf96 Rewrite GValue bindings 2017-04-18 20:42:23 +01:00
Sebastian Dröge
a808c34794 Use g_strndup() instead of creating a CString and then g_strdup() it
Creating a CString involves potentially some additional allocations.
2017-04-14 12:41:39 +03:00
Sebastian Dröge
9864413be2 Run everything through new rustfmt 2017-04-12 16:46:11 +03:00
Sebastian Dröge
021de8af1f Update to slog 2.0 2017-04-12 16:44:34 +03:00
Sebastian Dröge
0cf169aa20 Fix some clippy warnings 2017-04-10 20:00:22 +03:00
Sebastian Dröge
7139551773 Port sink C code to Rust 2017-04-10 19:52:00 +03:00
Sebastian Dröge
d72f1f716b Port C code for the source to pure Rust 2017-04-10 19:52:00 +03:00
Sebastian Dröge
50829bdec9 Store GWeakRef in a Box
Its memory location is important, and having it stored directly inside
the struct allows it to possible be moved to a different address.
2017-04-10 16:59:34 +03:00
Sebastian Dröge
24a10bb614 Port everything else over to glib/gobject/gstreamer-sys 2017-04-10 00:29:07 +03:00
Sebastian Dröge
e4ababa98f Switch to gstreamer-sys crate and port buffer bindings to it 2017-04-06 15:10:22 +03:00