Commit graph

3647 commits

Author SHA1 Message Date
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
Sebastian Dröge
2cbe76c64f Implement and require Sync+Send for sinks 2016-05-15 18:26:17 +03:00
Sebastian Dröge
29965fa8a7 Add finalizer for the sink to drop the instance 2016-05-15 17:47:38 +03:00
Sebastian Dröge
400696fbf8 Minor cleanup and make mutability more restricted 2016-05-15 17:43:13 +03:00
Sebastian Dröge
e43f247be3 Fix various compiler warnings 2016-05-15 17:34:13 +03:00
Luis de Bethencourt
d6d306f916 RsFileSink writes buffers to a file 2016-05-15 17:25:54 +03:00
Sebastian Dröge
87bd914cad Some minor cleanup 2016-05-15 16:16:55 +03:00
Luis de Bethencourt
aeefcefe09 Add skeleton for RsFileSink with the new structure
Doesn't write to a file yet, just prints out a message when a buffer is
received. All the skeleton is there to implement Sink children.
2016-05-15 14:07:06 +03:00
Sebastian Dröge
79aed66914 Require Sync and Send traits to be implemented for Sources 2016-05-15 11:55:52 +03:00
Sebastian Dröge
846f4775d9 Implement seeking in HTTP source 2016-05-15 11:48:54 +03:00
Sebastian Dröge
da1f869b47 Ignore errors when printing to stderr 2016-05-15 11:48:45 +03:00
Sebastian Dröge
fdab33f01b Map do_seek()
To be used in the HTTP source at some point
2016-05-14 17:57:25 +03:00
Sebastian Dröge
0f177d8de7 Properly use the length parameter of GstBaseSrc::fill() 2016-05-14 17:43:43 +03:00
Sebastian Dröge
45a146be26 Allow registering GstPushSrc based types 2016-05-14 17:41:41 +03:00
Sebastian Dröge
2298fc3353 Some more error handling in the HTTP source 2016-05-14 17:20:51 +03:00
Sebastian Dröge
b2b8332043 Add initial HTTP source based on Hyper
No seeking yet
2016-05-14 17:04:53 +03:00
Sebastian Dröge
ec01d11393 Register types from Rust and abstract the source to be able to handle other implementations too 2016-05-14 15:47:06 +03:00
Sebastian Dröge
4d989404b0 Move stuff around into different modules 2016-05-14 14:44:49 +03:00
Sebastian Dröge
35a7cfa032 Use a Source trait instead of directly working with FileSrc 2016-05-14 13:34:50 +03:00
Sebastian Dröge
15865ab86b Implement parsing of URIs in Rust 2016-05-14 12:34:50 +03:00
Sebastian Dröge
5b6a05b548 Implement some error handling and seek support
This now works as a proper replacement of filesrc.
2016-05-14 11:31:13 +03:00
Sebastian Dröge
98c015281e Implement GstURIHandler interface and handle short reads 2016-05-14 11:09:48 +03:00
Sebastian Dröge
924b105147 Implement get_size() 2016-05-13 19:06:06 +03:00
Sebastian Dröge
99070d0a9f Initial file reading without error handling, etc 2016-05-13 19:04:10 +03:00
Sebastian Dröge
8f3d49be31 Move everything into the FileSrc implementation 2016-05-13 18:54:06 +03:00
Sebastian Dröge
76a5226f79 Fill buffer from Rust code 2016-05-13 18:38:28 +03:00
Luis de Bethencourt
ca18a73253 Add skeleton of rsfilesink 2016-05-13 18:18:04 +03:00
Sebastian Dröge
d9657423a4 Add all other needed functions 2016-05-13 18:16:49 +03:00
Sebastian Dröge
0b67ffc9c7 Add location property handling 2016-05-13 18:02:19 +03:00
Sebastian Dröge
833148cef6 Use Box::from/into_raw() 2016-05-13 17:43:32 +03:00
Sebastian Dröge
6a3a42717f Add a Rust struct and store/use it in the C code 2016-05-13 17:35:09 +03:00
Sebastian Dröge
9bb2d32c75 Initial commit 2016-05-13 16:35:48 +03:00