Struct OutputSession

Source
pub struct OutputSession { /* private fields */ }
Expand description

One output process for each uninterrupted run of a PCM format.

A natural track transition reuses the process. The caller should call abort when seeking or skipping, because ffplay may have queued samples from the old track. finish closes its input and waits for the last audio to drain. Dropping an active session stops its child process.

Implementations§

Source§

impl OutputSession

Source

pub fn new() -> Self

Use ffplay from the local executable search path.

Source

pub fn format(&self) -> Option<OutputFormat>

The format currently accepted by the process, if any.

Source

pub fn process_id(&self) -> Option<u32>

Process identifier used by the terminal transport controls.

Source

pub fn prepare( &mut self, format: OutputFormat, ) -> Result<OutputChange, OutputError>

Reuse matching output or drain and reopen it for a new format.

Source

pub fn close_input(&mut self)

Close the input while allowing the process to play queued samples.

Source

pub fn poll_finished(&mut self) -> Result<bool, OutputError>

Return true after a successful child exit, or an error for failure.

Source

pub fn finish(&mut self) -> Result<(), OutputError>

Close the input and wait for the output process to drain normally.

Source

pub fn abort(&mut self) -> Result<(), OutputError>

Discard queued output and stop the process after a transport change.

Trait Implementations§

Source§

impl Default for OutputSession

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Drop for OutputSession

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl Write for OutputSession

Source§

fn write(&mut self, bytes: &[u8]) -> Result<usize>

Writes a buffer into this writer, returning how many bytes were written. Read more
Source§

fn flush(&mut self) -> Result<()>

Flushes this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
1.36.0 · Source§

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

Like write, except that it writes from a slice of buffers. Read more
Source§

fn is_write_vectored(&self) -> bool

🔬This is a nightly-only experimental API. (can_vector)
Determines if this Writer has an efficient write_vectored implementation. Read more
1.0.0 · Source§

fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

Attempts to write an entire buffer into this writer. Read more
Source§

fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

🔬This is a nightly-only experimental API. (write_all_vectored)
Attempts to write multiple buffers into this writer. Read more
1.0.0 · Source§

fn write_fmt(&mut self, args: Arguments<'_>) -> Result<(), Error>

Writes a formatted string into this writer, returning any error encountered. Read more
1.0.0 · Source§

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Creates a “by reference” adapter for this instance of Write. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<S> FromSample<S> for S

§

fn from_sample_(s: S) -> S

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<F, T> IntoSample<T> for F
where T: FromSample<F>,

§

fn into_sample(self) -> T

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

§

fn to_sample_(self) -> U

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<W> WriteBytesExt for W
where W: Write + ?Sized,

§

fn write_u8(&mut self, n: u8) -> Result<(), Error>

Writes an unsigned 8 bit integer to the underlying writer. Read more
§

fn write_i8(&mut self, n: i8) -> Result<(), Error>

Writes a signed 8 bit integer to the underlying writer. Read more
§

fn write_u16<T>(&mut self, n: u16) -> Result<(), Error>
where T: ByteOrder,

Writes an unsigned 16 bit integer to the underlying writer. Read more
§

fn write_i16<T>(&mut self, n: i16) -> Result<(), Error>
where T: ByteOrder,

Writes a signed 16 bit integer to the underlying writer. Read more
§

fn write_u24<T>(&mut self, n: u32) -> Result<(), Error>
where T: ByteOrder,

Writes an unsigned 24 bit integer to the underlying writer. Read more
§

fn write_i24<T>(&mut self, n: i32) -> Result<(), Error>
where T: ByteOrder,

Writes a signed 24 bit integer to the underlying writer. Read more
§

fn write_u32<T>(&mut self, n: u32) -> Result<(), Error>
where T: ByteOrder,

Writes an unsigned 32 bit integer to the underlying writer. Read more
§

fn write_i32<T>(&mut self, n: i32) -> Result<(), Error>
where T: ByteOrder,

Writes a signed 32 bit integer to the underlying writer. Read more
§

fn write_u48<T>(&mut self, n: u64) -> Result<(), Error>
where T: ByteOrder,

Writes an unsigned 48 bit integer to the underlying writer. Read more
§

fn write_i48<T>(&mut self, n: i64) -> Result<(), Error>
where T: ByteOrder,

Writes a signed 48 bit integer to the underlying writer. Read more
§

fn write_u64<T>(&mut self, n: u64) -> Result<(), Error>
where T: ByteOrder,

Writes an unsigned 64 bit integer to the underlying writer. Read more
§

fn write_i64<T>(&mut self, n: i64) -> Result<(), Error>
where T: ByteOrder,

Writes a signed 64 bit integer to the underlying writer. Read more
§

fn write_u128<T>(&mut self, n: u128) -> Result<(), Error>
where T: ByteOrder,

Writes an unsigned 128 bit integer to the underlying writer.
§

fn write_i128<T>(&mut self, n: i128) -> Result<(), Error>
where T: ByteOrder,

Writes a signed 128 bit integer to the underlying writer.
§

fn write_uint<T>(&mut self, n: u64, nbytes: usize) -> Result<(), Error>
where T: ByteOrder,

Writes an unsigned n-bytes integer to the underlying writer. Read more
§

fn write_int<T>(&mut self, n: i64, nbytes: usize) -> Result<(), Error>
where T: ByteOrder,

Writes a signed n-bytes integer to the underlying writer. Read more
§

fn write_uint128<T>(&mut self, n: u128, nbytes: usize) -> Result<(), Error>
where T: ByteOrder,

Writes an unsigned n-bytes integer to the underlying writer. Read more
§

fn write_int128<T>(&mut self, n: i128, nbytes: usize) -> Result<(), Error>
where T: ByteOrder,

Writes a signed n-bytes integer to the underlying writer. Read more
§

fn write_f32<T>(&mut self, n: f32) -> Result<(), Error>
where T: ByteOrder,

Writes a IEEE754 single-precision (4 bytes) floating point number to the underlying writer. Read more
§

fn write_f64<T>(&mut self, n: f64) -> Result<(), Error>
where T: ByteOrder,

Writes a IEEE754 double-precision (8 bytes) floating point number to the underlying writer. Read more
§

impl<W> WriteSamples for W
where W: Write + ?Sized,

§

fn write_sample<T>(&mut self, sample: &T) -> Result<(), Error>
where T: BytesSample,

Write a single sample to the underlying writer. Read more
§

fn write_number<T>( &mut self, value: <T as BytesSample>::NumericType, ) -> Result<(), Error>
where T: BytesSample,

Write a single sample from a numeric type to the underlying writer. Read more
§

fn write_converted<T, U>(&mut self, value: U) -> Result<bool, Error>
where T: RawSample + BytesSample, U: FloatCore + ToPrimitive,

Write a single converted sample to the underlying writer. Read more
§

fn write_all_samples<T>(&mut self, samples: &[T]) -> Result<(), Error>
where T: BytesSample,

Write multiple samples to the underlying writer. Read more
§

fn write_all_numbers<T>( &mut self, values: &[<T as BytesSample>::NumericType], ) -> Result<(), Error>
where T: BytesSample,

Write multiple samples from a numeric slice to the underlying writer. Read more
§

fn write_all_converted<T, U>(&mut self, values: &[U]) -> Result<usize, Error>
where T: RawSample + BytesSample, U: FloatCore + ToPrimitive,

Write multiple converted samples from a float slice to the underlying writer. Read more
§

impl<T> ZByteWriterTrait for T
where T: Write,

§

fn write_bytes(&mut self, buf: &[u8]) -> Result<usize, ZByteIoError>

Write some bytes into the sink returning number of bytes written or an error if something bad happened Read more
§

fn write_all_bytes(&mut self, buf: &[u8]) -> Result<(), ZByteIoError>

Write all bytes to the buffer or return an error if something occurred Read more
§

fn write_const_bytes<const N: usize>( &mut self, buf: &[u8; N], ) -> Result<(), ZByteIoError>

Write a fixed number of bytes and error out if we can’t write the bytes Read more
§

fn flush_bytes(&mut self) -> Result<(), ZByteIoError>

Ensure bytes are written to the sink. Read more
§

fn reserve_capacity(&mut self, _: usize) -> Result<(), ZByteIoError>

A hint to tell the implementation how big of a size we expect the image to be An implementation like in memory Vec can use this to reserve additional memory to prevent reallocation when encoding Read more
§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,