diff --git a/examples/codec-info.rs b/examples/codec-info.rs new file mode 100644 index 0000000..51826fe --- /dev/null +++ b/examples/codec-info.rs @@ -0,0 +1,52 @@ +extern crate ffmpeg; + +use std::env; + +fn main() { + ffmpeg::init().unwrap(); + + for arg in env::args().skip(1) { + if let Some(codec) = ffmpeg::decoder::find_by_name(&arg) { + println!("type: decoder"); + println!("\t id: {:?}", codec.id()); + println!("\t name: {}", codec.name()); + println!("\t description: {}", codec.description()); + println!("\t medium: {:?}", codec.medium()); + + if let Ok(video) = codec.video() { + println!("\t rates: {:?}", video.rates().collect::>()); + println!("\t formats: {:?}", video.formats().collect::>()); + } + + if let Ok(audio) = codec.audio() { + println!("\t samplerates: {:?}", audio.rates().collect::>()); + println!("\t sample_formats: {:?}", audio.formats().collect::>()); + println!("\t channel_layouts: {:?}", audio.channel_layouts().collect::>()); + } + + println!("\t max_lowres: {:?}", codec.max_lowres()); + } + + if let Some(codec) = ffmpeg::encoder::find_by_name(&arg) { + println!(""); + println!("type: encoder"); + println!("\t id: {:?}", codec.id()); + println!("\t name: {}", codec.name()); + println!("\t description: {}", codec.description()); + println!("\t medium: {:?}", codec.medium()); + + if let Ok(video) = codec.video() { + println!("\t rates: {:?}", video.rates().collect::>()); + println!("\t formats: {:?}", video.formats().collect::>()); + } + + if let Ok(audio) = codec.audio() { + println!("\t samplerates: {:?}", audio.rates().collect::>()); + println!("\t sample_formats: {:?}", audio.formats().collect::>()); + println!("\t channel_layouts: {:?}", audio.channel_layouts().collect::>()); + } + + println!("\t max_lowres: {:?}", codec.max_lowres()); + } + } +}