Commit graph

3142 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