Sebastian Dröge
6ebc8988b2
threadshare: Make sure to shutdown sockets/queues without any mutexes locked
...
And make sure that the IOContext stays alive until they are fully done.
2018-11-05 13:36:20 +02:00
Sebastian Dröge
b4d1145490
threadshare: Add initial implementation of a proxysrc/sink like element
2018-11-05 13:36:20 +02:00
Sebastian Dröge
c26299277e
threadshare: Move DataQueue to its own module
2018-11-05 13:36:20 +02:00
Sebastian Dröge
811893ccf9
threadshare: Only take the current queue levels into account instead of the future ones
...
Otherwise we might never ever enqueue a single buffer if it is already
by itself going over the limits.
2018-11-05 13:36:20 +02:00
Sebastian Dröge
e03c27814b
threadshare: Implement pending futures that could be scheduled downstream as result of a push
...
This is used by the queue to schedule putting data into the queue once
it has space again.
Also implement blocking-wait in the queue on the sinkpad if there is no
IOContext upstream and generally clean up various things.
2018-11-05 13:36:20 +02:00
Sebastian Dröge
1e26ca6365
threadshare: Add a first version of a queue
2018-11-05 13:36:20 +02:00
Sebastian Dröge
21f905739f
threadshare: Implement error handling
2018-11-05 13:36:20 +02:00
Sebastian Dröge
7cd2945268
threadshare: Implement error handling for IO/data flow errors
...
Also create a proper stream id
2018-11-05 13:36:20 +02:00
Sebastian Dröge
212b00ef2f
threadshare: Move buffer handling into a separate function
2018-11-05 13:36:20 +02:00
Sebastian Dröge
613706d446
threadshare: Implement propert event/query handling
2018-11-05 13:36:20 +02:00
Sebastian Dröge
e269e51524
threadshare: Refactor
2018-11-05 13:36:20 +02:00
Sebastian Dröge
f53efc6e6f
threadshare: Implement throttling for the poll loop
2018-11-05 13:36:20 +02:00
Sebastian Dröge
6aa9f642ba
threadshare: Allow running completely single-threaded
2018-11-05 13:36:20 +02:00
Sebastian Dröge
b939607693
threadshare: Stop using reactor::Background and implement it ourselves for now
2018-11-05 13:36:20 +02:00
Sebastian Dröge
299c69185e
threadshare: WIP
2018-11-05 13:36:20 +02:00
Sebastian Dröge
0fe6fbc859
threadshare: Initial working version
2018-11-05 13:36:20 +02:00
Sebastian Dröge
1593c06595
threadshare: Initial commit
2018-11-05 13:36:20 +02:00
Thijs Vermeir
a8e16d4815
register plugin static in integration test
...
After a `cargo clean` the shared library is not yet present if the test is started with `cargo test`.
2018-11-04 20:24:20 +01:00
Thijs Vermeir
e4acf61af3
create plugin_register_static in plugin_define!
2018-11-04 20:24:20 +01:00
Thijs Vermeir
cee861f341
use BoolError for plugin registration
2018-11-04 20:24:20 +01:00
Sebastian Dröge
46f80da72e
First run lints, then tests
2018-11-04 18:52:31 +02:00
Sebastian Dröge
87f94ddcc8
Run gitlab-ci also with Rust 1.28
2018-11-04 18:52:25 +02:00
Sebastian Dröge
9a4aaa4e43
Point to the new repo location in README.md
2018-11-03 20:55:29 +02:00
Sebastian Dröge
712ea76d7d
Run everything through rustfmt again
2018-11-03 20:30:10 +02:00
Sebastian Dröge
97cc1c8458
Change all references from GitHub to freedesktop.org GitLab
2018-11-03 20:24:21 +02:00
Sebastian Dröge
ee3fc37f4c
Switch to parking_lot Mutex/Condvar for lower overhead
2018-11-01 12:45:57 +02:00
Arun Raghavan
25501233ec
Use FlowError instead of FlowReturn as error part of Result
...
This prevents the possibility of a Result that is an Err(Ok), which
would not be meaningful.
2018-10-29 19:15:38 +00:00
Arun Raghavan
20910b2415
Implement From instead of Into for FlowError -> FlowReturn
...
It is recommended to implement From as that is more flexible and
includes an implicit Into instance.
2018-10-28 12:07:19 +00:00
Arun Raghavan
c5c3726668
Update gitignore for Cargo.lock and vim files
2018-10-28 10:20:54 +00:00
Jordan Petridis
252b8498ff
CI: Add gitlab-ci config.
...
Similar to how ti was done for gstreamer-rs.
See [1] for more.
[1] https://github.com/sdroege/gstreamer-rs/pull/132
2018-10-15 16:26:28 +03:00
Sebastian Dröge
628f5099eb
Run everything through latest rustfmt
2018-10-11 13:49:48 +03:00
Sebastian Dröge
f2deb2264b
Fix various clippy warnings
2018-10-11 13:49:10 +03:00
Sebastian Dröge
162311d2f1
Remove travis cargo cache
2018-10-05 17:19:30 +03:00
Sebastian Dröge
a178945d80
Update travis to use GStreamer 1.14.3 binaries (including OpenGL library)
2018-09-21 18:37:12 +03:00
Sebastian Dröge
046a0af6a1
Update versions to 0.4.0
2018-09-10 02:02:31 +03:00
Sebastian Dröge
1379e880a7
Update CHANGELOG.md for 0.3.0
2018-09-10 02:01:50 +03:00
Sebastian Dröge
5fd1f2bcbe
Remove accidentally committed mixer module
2018-09-06 14:21:24 +03:00
Sebastian Dröge
17193e3308
Update num-rational to 0.2
2018-09-06 14:19:47 +03:00
Sebastian Dröge
5cac22d1c0
Switch gobject-subclass repository URI
2018-09-06 13:56:16 +03:00
Sebastian Dröge
5e55ed6b6c
Add support for subclassing GstAggregator and GstAggregatorPad
2018-08-01 19:13:42 +03:00
Sebastian Dröge
bf63a823cd
Use from_glib_borrow() for more vfunc parameters
2018-07-30 12:24:12 +03:00
Sebastian Dröge
d1f90d0fea
Add support for implementing GstChildProxy
2018-07-30 12:20:56 +03:00
Sebastian Dröge
0826906704
Add support for subclassing ghost pads
2018-07-30 11:22:07 +03:00
Sebastian Dröge
484c5186cd
Add support for subclassing pads
2018-07-30 11:15:29 +03:00
Sebastian Dröge
dcb3683232
Run everything through latest rustfmt
2018-07-27 13:35:58 +03:00
Sebastian Dröge
bdfc95e6e8
Get rid of send-cell dependency and fix reference cycles
2018-07-27 13:35:24 +03:00
Sebastian Dröge
6e33313b78
Make use of downcast_ref() to prevent some clones
2018-07-12 08:35:09 +03:00
Sebastian Dröge
b3089ca047
Use ObjectExt::notify() instead of the gobject-subclass variant
2018-07-11 16:12:10 +03:00
Sebastian Dröge
a9960f1fc0
Get rid of callback_guard! as unwinding through FFI is defined behaviour now and aborts
2018-06-24 14:56:11 +03:00
Sebastian Dröge
754373ba6c
Update to byte-slice-cast 0.2
2018-06-01 12:02:32 +03:00