pub trait MediaTask: Send {
// Required methods
fn finished(&mut self) -> BoxFuture<'static, Result<(), MediaTaskError>>;
fn stop(&mut self) -> Result<(), MediaTaskError>;
// Provided method
fn result(&mut self) -> Option<Result<(), MediaTaskError>> { ... }
}
Expand description
MediaTasks represent a media stream being actively processed (sent or received from a peer).
They are are created by MediaTaskRunner::start
.
Typically a MediaTask will run a background task that is active until dropped or
MediaTask::stop
is called.
Required Methods§
Sourcefn finished(&mut self) -> BoxFuture<'static, Result<(), MediaTaskError>>
fn finished(&mut self) -> BoxFuture<'static, Result<(), MediaTaskError>>
Returns a Future that finishes when the running media task finshes for any reason. Should return a future that immediately resolves if this task is finished.
Sourcefn stop(&mut self) -> Result<(), MediaTaskError>
fn stop(&mut self) -> Result<(), MediaTaskError>
Stops the task normally, signalling to all waiters Ok(()). Returns the result sent to MediaTask::finished futures, which may be different from Ok(()). When this function returns, is is good practice to ensure the MediaStream that started this task is also dropped.