Commit graph

3581 commits

Author SHA1 Message Date
Sebastian Dröge
9e53c0a926 Simplify state handling
This is not too nice now as we have None values to unwrap, but the code
is at least less convoluted.
2016-12-23 17:36:14 +02:00
Sebastian Dröge
62d24efc04 WIP demuxer 2016-12-23 17:35:57 +02:00
Sebastian Dröge
ed2bcf875a Use reqwest 0.2 release
It has the needed changes now
2016-12-23 17:35:31 +02:00
Sebastian Dröge
9e2c25653f Simplify some more code 2016-11-29 20:44:35 +02:00
Sebastian Dröge
cef8d28974 Some minor buffer changes 2016-11-29 20:44:34 +02:00
Сухарик
1751b5c400 Improve readability of the code a little 2016-11-25 14:54:46 +02:00
Sebastian Dröge
eac466040e Move duplicated code into a function 2016-11-23 22:09:51 +02:00
Sebastian Dröge
20a2c7bd33 Refactor code a bit to keep amount of unsafe code to a minimum 2016-11-23 22:09:51 +02:00
Sebastian Dröge
f7148bd910 Port HTTP source from hyper to reqwest 2016-11-14 20:57:54 +02:00
Sebastian Dröge
2408edf1bf Add initial implementation of a buffer adapter 2016-09-18 10:23:14 -04:00
Sebastian Dröge
b23385e88f Add some more Buffer API and use explicit bitflags instead of magic numbers 2016-09-18 10:23:14 -04:00
Sebastian Dröge
1ef938b6ec Make ScopedBuffer a bit safer and explicit 2016-09-12 19:18:36 +02:00
Sebastian Dröge
61b5420102 Add wrapper around GstBuffer and use it in the source/sink 2016-09-12 15:00:28 +02:00
Sebastian Dröge
a2ff32d0be Update README.md with the follow-up blogpost 2016-09-08 11:49:56 +03:00
Sebastian Dröge
f9adac5f7e Never let panics propagate to C and instead convert them to error messages 2016-09-04 00:27:04 +03:00
Sebastian Dröge
95dd469fbf Make more pointers const 2016-09-03 23:49:54 +03:00
Sebastian Dröge
245d576159 Don't lock the URI mutex all the time while {Sink,Source}::{start,stop} is called but only when needed 2016-09-03 17:37:51 +03:00
Sebastian Dröge
fa855ec2b2 Move sink_render() to a more logical place 2016-09-02 01:03:31 +03:00
Sebastian Dröge
eee2653b76 Use None instead of u64::MAX for unknown/unspecified size/stop 2016-09-02 01:01:25 +03:00
Sebastian Dröge
4afdd2c985 Move thread-handling out of the actual Source/Sink implementation 2016-09-02 00:52:28 +03:00
Sebastian Dröge
af6d6f80b4 Remove local macro definition 2016-08-27 11:26:04 +03:00
Sebastian Dröge
b47d7df776 Move some extern C functions into the place where they're used 2016-08-27 11:22:55 +03:00
Sebastian Dröge
742515aac1 Properly report error / error messages and make the trait APIs more Rust-like 2016-08-27 11:16:17 +03:00
Sebastian Dröge
f7fd92750c Derive some more traits for enums 2016-08-25 00:48:53 +03:00
Sebastian Dröge
9ae934e48a Make the UriError a bit nicer 2016-08-25 00:47:56 +03:00
Sebastian Dröge
df50617c87 Add trait functions for getting back the controller 2016-08-25 00:08:06 +03:00
Sebastian Dröge
82c29d369d Properly report errors when setting the URI fails 2016-08-23 00:07:44 +03:00
Sebastian Dröge
3d83de761f Switch to cdylib crate type 2016-08-22 23:03:45 +03:00
Sebastian Dröge
6f6e56a5e3 Various further cleanups 2016-08-22 23:03:06 +03:00
Sebastian Dröge
bb8072c4d8 Various cleanups 2016-08-22 22:35:16 +03:00
Sebastian Dröge
086ec5b68d Fix up mutability
Rust assumes that there can only be a single mutable reference at any time, as
such make use of interior mutability with a mutex for all state of the
elements.
2016-08-22 22:25:58 +03:00
Sebastian Dröge
c7c2676e67 WIP 2016-08-22 21:08:26 +03:00
Sebastian Dröge
53cb35f991 Fix typo in function name between C and Rust 2016-08-10 18:31:59 +02:00
Sebastian Dröge
4eb3d879de Move FFI usage out of actual Sink/Source implementations 2016-08-10 18:27:38 +02:00
Sebastian Dröge
e1d2751fc2 Pass native GStreamer element pointer to functions
This will later be used to catch panics, convert them to GStreamer errors and
invalidate the native instance.
2016-07-20 21:06:17 +03:00
Sebastian Dröge
4e053cd6bc Add new controller objects to Source/Sink
These store a pointer to the native GstElement and will allow calling back
into it later.
2016-07-20 14:50:35 +03:00
Sebastian Dröge
8b313a752a Run C code through gst-indent 2016-07-20 11:29:27 +03:00
Sebastian Dröge
31fd26b982 Run everything through rustfmt 2016-07-20 11:28:58 +03:00
Sebastian Dröge
3db8882ce8 Pass Urls directly to the Source/Sink implementations instead of having them handle strings 2016-05-24 23:24:05 +03:00
Sebastian Dröge
84c0d4c74c Use an AtomicBool for the seekable variable as is_seekable() can be called at any time from any thread 2016-05-23 21:38:54 +03:00
Sebastian Dröge
5cc890cc04 Add comments about which Source/Sink methods are called from which threads
Source::get_size() / ::is_seekable() implementations need to be made
thread-safe still.
2016-05-23 21:35:03 +03:00
Sebastian Dröge
8514d46092 Use a Mutex to protect the URI storage
get_uri()/set_uri() can be called at any time from any thread, only
all other methods of Source/Sink are guaranteed to be called by only
a single thread at a time.
2016-05-23 20:29:01 +03:00
Jon Nordby
2d4dd7a218 README.md: Add minimal info and links 2016-05-23 20:02:12 +03:00
Sebastian Dröge
5673201400 Remove pointless cloning of URI in ::get_uri() 2016-05-22 16:29:25 +03:00
Sebastian Dröge
ca4fa82ffe Make it an requirement to implement Source::do_seek() 2016-05-22 16:23:43 +03:00
Sebastian Dröge
872e9a8ab1 Free CString memory in Rust
Using g_free() on it will likely not work.
2016-05-19 10:47:31 +03:00
Sebastian Dröge
acc7d2ea26 Use Option<&str> instead of &Option<&str> for set_uri()
This seems more ergonomic to use, and is more common in other libraries.
2016-05-18 11:39:37 +03:00
Sebastian Dröge
b8a031c29b Use Option<&str> instead of Option<String> for set_uri()
There is no reason to require a heap-allocated String here.
2016-05-18 11:29:57 +03:00
Sebastian Dröge
546d67fa5a Add license and copyright notices 2016-05-15 18:54:09 +03:00
Sebastian Dröge
ae9f292278 Add FIXME comment 2016-05-15 18:39:22 +03:00