Commit graph

152 commits

Author SHA1 Message Date
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
Sebastian Dröge 745a6a3c17 Implement From<_> for Value to simplify code a lot 2017-01-13 21:45:23 +01:00
Sebastian Dröge ac9ba47403 Move Value code into its own module 2017-01-13 19:16:12 +02:00
Sebastian Dröge 93f09c8a4a Add support for Speex to FLV demuxer
... and arrays of values in caps while at the same time refactoring the
Value code a bit.
2017-01-13 19:04:51 +02:00
Sebastian Dröge 2ce9aa7b58 Update to reqwest 0.3 (hyper 0.10) 2017-01-12 11:07:39 +02:00
Sebastian Dröge 3b299f3fb6 Simplify caps a bit by using slices instead of IntoIterator
IntoIterator did not work as expected anyway and would require usage of
AsRef, which then breaks type inference for empty slices for example.
2017-01-09 20:55:10 +02:00