Commit graph

157 commits

Author SHA1 Message Date
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
Sebastian Dröge 98d2175ef5 Switch back to Geal's flavors repository after all my changes are merged 2017-04-06 15:10:13 +03:00
Sebastian Dröge 1a5fede4a7 Update to reqwest 0.5 2017-04-06 15:10:13 +03:00
Sebastian Dröge 1dda357b86 Move MiniObject::is_writable() from the trait to the reference containers 2017-04-05 23:52:38 +03:00
Sebastian Dröge 2b799910fc Update to bitflags 0.8 2017-02-19 12:12:06 +02:00
Sebastian Dröge b3e01add5c Remove FlowError::NotLinked
This will never appear in Rust code as all forwarding of buffers will
happen at the C/Rust binding layer.
2017-02-16 17:54:20 +02:00
Sebastian Dröge e64facc254 Change license from LGPLv2.1+ to Apache2/MIT
https://github.com/sdroege/rsplugin/issues/7
2017-02-16 17:52:27 +02:00
Sebastian Dröge 6b7e6d8e6c Add unit test for buffers that checks the miniobject writability wrapping 2017-02-04 17:51:05 +01:00
Sebastian Dröge 9e59eff973 Fix some clippy warnings 2017-02-03 15:57:49 +01:00
Sebastian Dröge 7b5764e759 Implement GstRc/GstRef wrapper for GstMiniObject
Keeps the miniobject specific code local and provides a more similar API
to Rc/Arc. Also makes it impossible to accidentially try writing to an
unwritable miniobject.
2017-02-03 15:57:49 +01:00
Sebastian Dröge 99a9b7fedc Update to reqwest 0.4 2017-02-03 16:34:01 +02:00
Sebastian Dröge 19936e4eae Do LTO for release builds 2017-02-02 21:11:06 +02:00
Sebastian Dröge 974a689fd7 Keep amount of unsafe code a bit smaller for the GstStream* stream IDs 2017-01-23 21:17:36 +02:00
Sebastian Dröge 2ec438e5b8 Add Eq/PartialEq instances for TagList and Caps 2017-01-23 18:31:51 +02:00
Sebastian Dröge 1ee7c8b9e3 Return stream IDs directly instead of creating an owned String 2017-01-23 18:26:42 +02:00
Sebastian Dröge 7a33a4177f Improve C string handling a bit
These are always going to be valid UTF-8 or things are very wrong.
2017-01-23 14:35:16 +02:00
Sebastian Dröge e2b18a91e0 Add bindings for GstStream and GstStreamCollection
To be used in the demuxer for tracking streams and their related
information.
2017-01-22 20:13:07 +02:00
Sebastian Dröge 509810e87a Add tags support 2017-01-18 14:36:11 +02:00
Sebastian Dröge aa54f1a4e6 Use num_rational instead of home-baked (u32, u32) fractions 2017-01-15 20:56:20 +01:00
Sebastian Dröge 620cf7c5f7 Minor cleanup 2017-01-14 18:15:06 +01:00
Sebastian Dröge 3e17102166 Add API to create a Buffer from a Vec<u8> with memory reuse and use it for the Speex headers 2017-01-14 18:04:55 +01:00