1extern crate ffmpeg_rs;
2use std::env;
3
4fn main() {
5 ffmpeg_rs::init().unwrap();
6
7 for arg in env::args().skip(1) {
8 if let Some(codec) = ffmpeg_rs::decoder::find_by_name(&arg) {
9 println!("type: decoder");
10 println!("\t id: {:?}", codec.id());
11 println!("\t name: {}", codec.name());
12 println!("\t description: {}", codec.description());
13 println!("\t medium: {:?}", codec.medium());
14 println!("\t capabilities: {:?}", codec.capabilities());
15
16 if let Some(profiles) = codec.profiles() {
17 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
18 } else {
19 println!("\t profiles: none");
20 }
21
22 if let Ok(video) = codec.video() {
23 if let Some(rates) = video.rates() {
24 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
25 } else {
26 println!("\t rates: any");
27 }
28
29 if let Some(formats) = video.formats() {
30 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
31 } else {
32 println!("\t formats: any");
33 }
34 }
35
36 if let Ok(audio) = codec.audio() {
37 if let Some(rates) = audio.rates() {
38 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
39 } else {
40 println!("\t rates: any");
41 }
42
43 if let Some(formats) = audio.formats() {
44 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
45 } else {
46 println!("\t formats: any");
47 }
48
49 if let Some(layouts) = audio.channel_layouts() {
50 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
51 } else {
52 println!("\t channel_layouts: any");
53 }
54 }
55
56 println!("\t max_lowres: {:?}", codec.max_lowres());
57 }
58
59 if let Some(codec) = ffmpeg_rs::encoder::find_by_name(&arg) {
60 println!();
61 println!("type: encoder");
62 println!("\t id: {:?}", codec.id());
63 println!("\t name: {}", codec.name());
64 println!("\t description: {}", codec.description());
65 println!("\t medium: {:?}", codec.medium());
66 println!("\t capabilities: {:?}", codec.capabilities());
67
68 if let Some(profiles) = codec.profiles() {
69 println!("\t profiles: {:?}", profiles.collect::<Vec<_>>());
70 }
71
72 if let Ok(video) = codec.video() {
73 if let Some(rates) = video.rates() {
74 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
75 } else {
76 println!("\t rates: any");
77 }
78
79 if let Some(formats) = video.formats() {
80 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
81 } else {
82 println!("\t formats: any");
83 }
84 }
85
86 if let Ok(audio) = codec.audio() {
87 if let Some(rates) = audio.rates() {
88 println!("\t rates: {:?}", rates.collect::<Vec<_>>());
89 } else {
90 println!("\t rates: any");
91 }
92
93 if let Some(formats) = audio.formats() {
94 println!("\t formats: {:?}", formats.collect::<Vec<_>>());
95 } else {
96 println!("\t formats: any");
97 }
98
99 if let Some(layouts) = audio.channel_layouts() {
100 println!("\t channel_layouts: {:?}", layouts.collect::<Vec<_>>());
101 } else {
102 println!("\t channel_layouts: any");
103 }
104 }
105
106 println!("\t max_lowres: {:?}", codec.max_lowres());
107 }
108 }
109}