diff --git a/lib/src/decoder/stateful.rs b/lib/src/decoder/stateful.rs index a6b18ca..d2e2e8d 100644 --- a/lib/src/decoder/stateful.rs +++ b/lib/src/decoder/stateful.rs @@ -25,6 +25,7 @@ use log::{debug, error, info, trace}; use std::{ convert::TryFrom, io, + os::fd::{AsRawFd, RawFd}, path::Path, sync::{atomic::AtomicUsize, mpsc, Arc}, task::Wake, @@ -536,6 +537,15 @@ where > as OutputQueueableProvider<'a, OP>>::Queueable; } +impl AsRawFd for Decoder +where + S: DecoderState, +{ + fn as_raw_fd(&self) -> RawFd { + self.device.as_raw_fd() + } +} + #[derive(Debug, Error)] pub enum GetBufferError { #[error("error while dequeueing buffer")] diff --git a/lib/src/encoder.rs b/lib/src/encoder.rs index 0286f2f..f0c7d9e 100644 --- a/lib/src/encoder.rs +++ b/lib/src/encoder.rs @@ -25,6 +25,7 @@ use log::warn; use std::{ any::Any, io, + os::{fd::AsRawFd, unix::prelude::RawFd}, path::Path, sync::{atomic::AtomicUsize, Arc}, task::Wake, @@ -465,6 +466,15 @@ where } } +impl AsRawFd for Encoder +where + S: EncoderState, +{ + fn as_raw_fd(&self) -> RawFd { + self.device.as_raw_fd() + } +} + struct EncoderThread where P: HandlesProvider,