has_video: bool,
has_audio: bool,
video_str: u32,
+ force_vstr: Option<u32>,
audio_str: u32,
+ force_astr: Option<u32>,
sc_size: ScaleSize,
vthreads: usize,
has_video: false,
has_audio: false,
video_str: 0,
+ force_vstr: None,
audio_str: 0,
+ force_astr: None,
sc_size: ScaleSize::Auto,
vthreads: 3,
debug_log!(self; {format!(" stream {} - {} {}", i, s, info.get_name())});
let str_id = s.get_id();
if info.is_video() {
+ if self.force_vstr.is_some() && self.force_vstr != Some(str_id) {
+ continue;
+ }
if video_dec.is_none() && self.play_video {
#[cfg(feature="hwaccel")]
if info.get_name() == "h264" && self.use_hwaccel {
}
}
} else if info.is_audio() {
+ if self.force_astr.is_some() && self.force_astr != Some(str_id) {
+ continue;
+ }
if audio_dec.is_none() && self.play_audio {
if let Some(decfunc) = decfunc {
let mut dec = (decfunc)();
"-ignosd" => {
player.show_osd = None;
},
+ "-vstr" => {
+ if let Some(arg) = aiter.next() {
+ if arg == "auto" || arg == "-1" {
+ player.force_vstr = None;
+ } else if let Ok(str_id) = arg.parse::<u32>() {
+ player.force_vstr = Some(str_id);
+ } else {
+ println!("invalid stream number");
+ }
+ }
+ },
+ "-astr" => {
+ if let Some(arg) = aiter.next() {
+ if arg == "auto" || arg == "-1" {
+ player.force_astr = None;
+ } else if let Ok(str_id) = arg.parse::<u32>() {
+ player.force_astr = Some(str_id);
+ } else {
+ println!("invalid stream number");
+ }
+ }
+ },
_ => {
window = player.play(window, arg, seek_time);
if player.end { break; }