Commit graph

2744 commits

Author SHA1 Message Date
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
rubenrua
227080e32d Add comment about Newtek NDI times resolution
See: https://github.com/FFmpeg/FFmpeg/blob/master/libavdevice/libndi_newtek_common.h#L27

From NDI SDK Documentation:
This is the timecode of this frame in 100ns intervals. This is generally not used internally by the SDK, but is passed
through to applications who may interpret it as they wish. When sending data, a value of
NDIlib_send_timecode_synthesize can be specified (and should be the default), the operation of this value is
documented in the sending section of this documentation. NDIlib_send_timecode_synthesize will yield UTC
time in 100ns intervals since the Unix Time Epoch 1/1/1970 00:00. When interpreting this timecode a receiving
application may choose to localise the time of day based on time zone offset which can optionally be communicated by
the sender in connection metadata. Since timecode is stored in UTC within NDI, communicating timecode time of day for
non UTC time zones requires a translation
2018-09-27 10:18:54 +02:00
rubenrua
cb1ea2195f Fix rust fmt 2018-09-25 16:04:00 +02:00
rubenrua
8a81ca526b Use "cargo build --release" in README. Fix #4
Waiting for use a distro package.
2018-09-25 15:55:54 +02:00
Ruben Gonzalez
c93f7d41dc
Merge pull request #6 from sdroege/compare-factory-name
Compare element factory names to distinguish video source from audio …
2018-09-25 15:44:29 +02:00
Ruben Gonzalez
d1cec10925
Merge pull request #7 from teltek/travis
Add Travis
2018-09-25 15:19:28 +02:00
rubenrua
00df152210 Update travis with slomo GStreamer version
Copy from https://github.com/sdroege/gst-plugin-rs/blob/master/.travis.yml
2018-09-25 13:50:49 +02:00
Sebastian Dröge
a8c9d78bff Compare element factory names to distinguish video source from audio source
We could also go via the glib::Type but that requires more steps unless
we also add a getter from the registered type to the audio/video source
modules.
2018-09-25 13:37:59 +03:00
rubenrua
1a4f146318 Add License and Acknowledgments
License: https://choosealicense.com/licenses/lgpl-3.0/

Thank you @sdroege for your work with GStreamer and with Rust.
2018-09-25 12:07:55 +02:00
Daniel Vilar
6ff3cb8e74
Merge pull request #3 from teltek/fix_ndi_audio
Fix audio interleave with NDIlib_util_audio_to_interleaved_16s_v2
2018-09-25 11:57:41 +02:00
rubenrua
b2ec1da345 Fix audio interleave with NDIlib_util_audio_to_interleaved_16s_v2 2018-09-25 11:52:41 +02:00
rubenrua
22c7240bad Add debug info about latency 2018-09-24 18:15:33 +02:00
Ruben Gonzalez
f80a8ce18e
Merge pull request #2 from teltek/fix_latency
Fix latency
2018-09-24 17:47:09 +02:00
rubenrua
90b5fa8937 Fix video latency 2018-09-24 17:46:15 +02:00
Daniel Vilar
72bd822525 Added latency query 2018-09-24 15:46:36 +02:00
Daniel Vilar
86cdb6e5a2
Merge pull request #1 from teltek/fix_audio_offset
Fix ndiaudiosrc offset
2018-09-24 10:17:05 +02:00
rubenrua
c94727c872 Fix ndiaudiosrc offset
A buffer can also have one or both of a start and an end offset. These are media-type specific. For video buffers, the start offset will generally be the frame number. For audio buffers, it will be the number of samples produced so far. For compressed data, it could be the byte offset in a source or destination file. Likewise, the end offset will be the offset of the end of the buffer. These can only be meaningfully interpreted if you know the media type of the buffer (the preceding CAPS event). Either or both can be set to GST_BUFFER_OFFSET_NONE.

https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBuffer.html
2018-09-24 10:02:01 +02:00
rubenrua
533cc1148b Update .gitignore with gitignore.io 2018-09-22 09:53:36 +02:00
rubenrua
56befc7f08 Delete packages not locale in trusty: libgstrtspserver-1.0-dev 2018-09-22 09:50:58 +02:00
Ruben Gonzalez
02f3b84bb3 Fix bug added with clippy refactor 2018-09-21 20:11:54 +02:00
rubenrua
d1ded51a96 Add dependencies
copy ndi lib from https://github.com/Palakis/obs-ndi/blob/master/CI/install-dependencies-xenial.sh
2018-09-21 18:00:07 +02:00
rubenrua
104509fb79 Add Travis CI
Thank you @greyblake for https://youtu.be/SNpJ3h8R4ks
2018-09-21 17:46:34 +02: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
Daniel Vilar
440a353f93 Publish code in Github 2018-09-18 13:39:34 +02:00
Daniel Vilar
a41f33ae08 Clean comments 2018-09-18 13:25:24 +02:00