Commit graph

3642 commits

Author SHA1 Message Date
Sebastian Dröge
bccf3805a1 Ignore stop failures
stop should only really fail if everything is broken, but we can always
recover somehow here.
2016-12-25 12:20:44 +01:00
Sebastian Dröge
961d6ce115 Add .gitignore 2016-12-25 12:16:39 +01:00
Sebastian Dröge
8ee1f72184 Add support for logging via slog 2016-12-25 12:16:12 +01:00
Sebastian Dröge
89b0220e26 Build each component into its own GStreamer plugin 2016-12-23 19:04:32 +02:00
Sebastian Dröge
e25f644f30 Refactor plugin registration 2016-12-23 18:11:48 +02:00
Sebastian Dröge
19c8caee1e Minor cleanup 2016-12-23 17:36:14 +02:00
Sebastian Dröge
78450a035d Create GStreamer plugin from Rust and have the plugin entry point written in Rust 2016-12-23 17:36:14 +02:00
Sebastian Dröge
cc183ea92e Properly convert the f64 framerate to a fraction 2016-12-23 17:36:14 +02:00
Sebastian Dröge
f9cd9e128d Add support for more codecs
Only Speex, AAC and H264 are missing now, which require a little bit
more work.
2016-12-23 17:36:14 +02:00
Sebastian Dröge
7ef2679cb5 Implement metadata handling 2016-12-23 17:36:14 +02:00
Sebastian Dröge
d804590106 Further cleanup and refactoring of the FLV demuxer 2016-12-23 17:36:14 +02:00
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