Commit graph

2722 commits

Author SHA1 Message Date
Dirk Van Haerenborgh
31a48c4baa Split out base object traits
This allows using this independent from GStreamer for subclassing e.g.
GIO or GTK GObjects.

Fixes https://github.com/sdroege/gst-plugin-rs/issues/28
Fixes https://github.com/sdroege/gst-plugin-rs/pull/32
2018-05-01 17:11:18 +03:00
Daniel Vilar
d667536ec6 Added pts, and offsets to gstreamer buffer 2018-04-30 10:18:17 +02:00
Daniel Vilar
bc8950303c Added field pts to buffer 2018-04-26 13:53:50 +02:00
Daniel Vilar
53c692fac5 Connect to the stream inidicated in pipeline stream-name property 2018-04-26 12:30:13 +02:00
Daniel Vilar
bf25388216 Improved logs 2018-04-25 12:42:41 +02:00
galicaster
45fcccbd31 Eurekagit statusgit status
First iteration copying memory.
2018-04-25 10:32:47 +02:00
galicaster
db5493d110 Clean code 2018-04-24 19:41:27 +02:00
Daniel Vilar
2d9feaa462 Martes 2018-04-24 14:08:06 +02:00
Daniel Vilar
d813fa5681 Try to add video data to a buffer 2018-04-23 14:12:41 +02:00
Daniel Vilar
ca4e498a0b Added NDI code 2018-04-23 13:42:38 +02:00
Daniel Vilar
491276bfbf Merge branch 'develop_rr_peite_review' into 'develop_rr_peite'
Develop Rr Peite Review
2018-04-17 10:05:45 +02:00
rubenrua
1377916b3b Add NdiInstance struct that implement Send
https://doc.rust-lang.org/book/second-edition/ch19-03-advanced-traits.html#the-newtype-pattern-to-implement-external-traits-on-external-types

error[E0277]: the trait bound `*mut std::os::raw::c_void: std::marker::Send` is not satisfied in `ndisrc::State`
   --> src/ndisrc.rs:276:6
       |
       276 | impl ObjectImpl<BaseSrc> for NdiSrc {
           |      ^^^^^^^^^^^^^^^^^^^ `*mut std::os::raw::c_void` cannot be sent between threads safely
               |
                   = help: within `ndisrc::State`, the trait `std::marker::Send` is not implemented for `*mut std::os::raw::c_void`
                       = note: required because it appears within the type `std::option::Option<*mut std::os::raw::c_void>`
                           = note: required because it appears within the type `ndisrc::State`
                               = note: required because of the requirements on the impl of `std::marker::Sync` for `std::sync::Mutex<ndisrc::State>`
                                   = note: required because it appears within the type `ndisrc::NdiSrc`

error[E0277]: the trait bound `*mut std::os::raw::c_void: std::marker::Send` is not satisfied in `ndisrc::State`
   --> src/ndisrc.rs:405:6
       |
       405 | impl ElementImpl<BaseSrc> for NdiSrc {
           |      ^^^^^^^^^^^^^^^^^^^^ `*mut std::os::raw::c_void` cannot be sent between threads safely
               |
                   = help: within `ndisrc::State`, the trait `std::marker::Send` is not implemented for `*mut std::os::raw::c_void`
                       = note: required because it appears within the type `std::option::Option<*mut std::os::raw::c_void>`
                           = note: required because it appears within the type `ndisrc::State`
                               = note: required because of the requirements on the impl of `std::marker::Sync` for `std::sync::Mutex<ndisrc::State>`
                                   = note: required because it appears within the type `ndisrc::NdiSrc`

error[E0277]: the trait bound `*mut std::os::raw::c_void: std::marker::Send` is not satisfied in `ndisrc::State`
   --> src/ndisrc.rs:424:6
       |
       424 | impl BaseSrcImpl<BaseSrc> for NdiSrc {
           |      ^^^^^^^^^^^^^^^^^^^^ `*mut std::os::raw::c_void` cannot be sent between threads safely
               |
                   = help: within `ndisrc::State`, the trait `std::marker::Send` is not implemented for `*mut std::os::raw::c_void`
                       = note: required because it appears within the type `std::option::Option<*mut std::os::raw::c_void>`
                           = note: required because it appears within the type `ndisrc::State`
                               = note: required because of the requirements on the impl of `std::marker::Sync` for `std::sync::Mutex<ndisrc::State>`
                                   = note: required because it appears within the type `ndisrc::NdiSrc`

error: aborting due to 3 previous errors
2018-04-16 16:53:22 +00:00
rubenrua
892eb29c3b Add ndilib.rs 2018-04-16 16:42:33 +00:00
Daniel Vilar
c25ad01561 First try to insert NDI libraries 2018-04-13 12:06:15 +02:00
Daniel Vilar
2b09a48a5c Added videocaps and commented almost audiosrc related code 2018-04-12 17:52:21 +02:00
Daniel Vilar
227d750305 Added property stream-name 2018-04-12 17:17:59 +02:00
Daniel Vilar
b0f9b7fae9 Commented unused seek 2018-04-12 16:54:36 +02:00
rubenrua
2aed66ba0f Using deps cte version 2018-04-12 15:17:02 +02:00
rubenrua
a3067f0dd5 Add prerequisites.
See https://github.com/sdroege/gstreamer-rs#installation-linux
2018-04-12 15:14:59 +02:00
Daniel Vilar
8229082cc1 Added license 2018-04-10 18:50:44 +02:00
rubenrua
1d33719744 Using RUST enums
With repr
2018-04-10 18:49:34 +02:00
rubenrua
755fda63d3 Define remaining enums 2018-04-10 18:35:39 +02:00
rubenrua
98db99924e Execute rustfmt 2018-04-10 17:53:49 +02:00
rubenrua
20b6ae5ff6 Use Default Trait
The default values must be reviewed
2018-04-10 17:49:21 +02:00
rubenrua
8d99d47f81 Using correnct default values 2018-04-10 15:25:01 +02:00
rubenrua
6239c2b6b9 Add links to tutorial based in 2018-04-09 05:56:38 +00:00
rubenrua
3a28e7a9fb Add .gitignore 2018-04-09 05:55:03 +00:00
rubenrua
337337854b Add gst-plugin-ndi 2018-04-09 05:53:04 +00:00
rubenrua
6c19cc8d9f Move example to a workspace 2018-04-09 05:32:57 +00:00
Sebastian Dröge
f2f18ebb27 Fix ElementImplExt::catch_panic_pad_function() to actually work 2018-04-05 12:16:09 +03:00
rubenrua
80dcf3c90c Finish example 2018-04-05 11:13:51 +02:00
rubenrua
683253e8e7 Create external ndilib 2018-04-05 11:10:13 +02:00
Sebastian Dröge
c7103765db Run everything through rustfmt again 2018-04-05 11:36:10 +03:00
Sebastian Dröge
40f243dfc3 Move catch_panic_pad_function() into a generic place for all element subclasses 2018-04-05 11:34:57 +03:00
rubenrua
941a500c5f Add gitignore 2018-04-05 09:56:53 +02:00
rubenrua
ef508c39d1 Print metadata recv 2018-04-05 09:56:38 +02:00
rubenrua
864e9b4520 1st commit 2018-04-04 22:22:53 +02:00
Sebastian Dröge
7bffce7a6f Fix compilation with gobject-sys changes to use plain uints for bitflags 2018-04-04 17:32:46 +03:00
Sebastian Dröge
d25b5006cb Run everything through rustfmt again 2018-04-01 12:12:39 +03:00
Sebastian Dröge
3db1c92663 Use ptr::NonNull in various places 2018-04-01 12:12:27 +03:00
Sebastian Dröge
58c1762e7d Fix travis.yml 2018-03-20 14:00:53 +02:00
Sebastian Dröge
ceab3bae8a Update travis.yml for the new 1.14 paths 2018-03-20 13:48:31 +02:00
Sebastian Dröge
f3714f6fe7 Update CHANGELOG.md for 0.1.4 2018-03-20 13:18:37 +02:00
Sebastian Dröge
bcb4617856 Implement Send+Sync for all wrapper types 2018-03-06 22:50:27 +02:00
Sebastian Dröge
24e5c435a7 Revert "Remove callback guards"
This reverts commit 75248c7f07.

Callback guards are required since 1.24.1 again but probably not in 1.25
forwards.
2018-03-02 21:35:50 +02:00
Sebastian Dröge
da433f92af Run everything through latest rustfmt-nightly 2018-02-22 11:23:34 +01:00
Sebastian Dröge
e7b12d87f9 Add second blog post about writing GStreamer elements to the README.md 2018-02-21 20:31:21 +01:00
Sebastian Dröge
17270741e7 Update to num-traits 0.2 2018-02-21 13:36:37 +01:00
Sebastian Dröge
94555afbf4 tutorials: Implement a sine wave source element 2018-02-18 21:38:51 +01:00
Sebastian Dröge
75248c7f07 Remove callback guards
Since Rust 1.24 it is safe to let panics go to the FFI boundary
2018-02-17 20:01:31 +02:00