pub enum Sample {
None,
U8(Type),
I16(Type),
I32(Type),
I64(Type),
F32(Type),
F64(Type),
}Variants§
Implementations§
source§impl Sample
impl Sample
sourcepub fn name(&self) -> &'static str
pub fn name(&self) -> &'static str
Examples found in repository?
examples/transcode-audio.rs (line 20)
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
fn filter(
spec: &str,
decoder: &codec::decoder::Audio,
encoder: &codec::encoder::Audio,
) -> Result<filter::Graph, ffmpeg::Error> {
let mut filter = filter::Graph::new();
let args = format!(
"time_base={}:sample_rate={}:sample_fmt={}:channel_layout=0x{:x}",
decoder.time_base(),
decoder.rate(),
decoder.format().name(),
decoder.channel_layout().bits()
);
filter.add(&filter::find("abuffer").unwrap(), "in", &args)?;
filter.add(&filter::find("abuffersink").unwrap(), "out", "")?;
{
let mut out = filter.get("out").unwrap();
out.set_sample_format(encoder.format());
out.set_channel_layout(encoder.channel_layout());
out.set_sample_rate(encoder.rate());
}
filter.output("in", 0)?.input("out", 0)?.parse(spec)?;
filter.validate()?;
println!("{}", filter.dump());
if let Some(codec) = encoder.codec() {
if !codec
.capabilities()
.contains(ffmpeg::codec::capabilities::Capabilities::VARIABLE_FRAME_SIZE)
{
filter
.get("out")
.unwrap()
.sink()
.set_frame_size(encoder.frame_size());
}
}
Ok(filter)
}pub fn packed(&self) -> Self
pub fn planar(&self) -> Self
pub fn is_planar(&self) -> bool
pub fn is_packed(&self) -> bool
pub fn bytes(&self) -> usize
pub fn buffer(&self, channels: u16, samples: usize, align: bool) -> Buffer
Trait Implementations§
source§impl From<AVSampleFormat> for Sample
impl From<AVSampleFormat> for Sample
source§fn from(value: AVSampleFormat) -> Self
fn from(value: AVSampleFormat) -> Self
Converts to this type from the input type.
source§impl From<Sample> for AVSampleFormat
impl From<Sample> for AVSampleFormat
source§fn from(value: Sample) -> AVSampleFormat
fn from(value: Sample) -> AVSampleFormat
Converts to this type from the input type.
source§impl PartialEq for Sample
impl PartialEq for Sample
impl Copy for Sample
impl Eq for Sample
impl StructuralPartialEq for Sample
Auto Trait Implementations§
impl Freeze for Sample
impl RefUnwindSafe for Sample
impl Send for Sample
impl Sync for Sample
impl Unpin for Sample
impl UnwindSafe for Sample
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit)source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit)