Commit graph

560 commits

Author SHA1 Message Date
Sebastian Dröge d52f1d49dd threadshare: Add a sample appsrc-like element plus test 2018-11-05 13:36:20 +02:00
Sebastian Dröge f5b3e9481f threadshare: Run everything through rustfmt 2018-11-05 13:36:20 +02:00
Sebastian Dröge ab22d81f12 threadshare: Integrate new tokio-timer into the IOContext 2018-11-05 13:36:20 +02:00
Sebastian Dröge 82cc63551c threadshare: Don't set a fallback reactor
This should not be needed and fails if we have multiple contexts
2018-11-05 13:36:20 +02:00
Sebastian Dröge 13e706f678 threadshare: Fix queue time level calculation 2018-11-05 13:36:20 +02:00
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