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
This is called with an immutable BufferRef if we're running in
passthrough mode and the element was configured to pass passthrough
buffers to transform_ip.
Previously we would've gotten a mutable reference, that then would fail
all mutable operations.