X-Git-Url: https://git.nihav.org/?p=nihav.git;a=blobdiff_plain;f=nihav-core%2Fsrc%2Fscale%2Frepack.rs;h=8cdb8ea91b164df63ecb22409fd196bdef12b4cf;hp=a9d354a8a2381c4e396a3cd603231907916dcac4;hb=25e0bf9a974b1bb5a8f8b38e23b4a7e91db3eab0;hpb=d0d21988dc679ac5d87968da01a55ec3dc375fee diff --git a/nihav-core/src/scale/repack.rs b/nihav-core/src/scale/repack.rs index a9d354a..8cdb8ea 100644 --- a/nihav-core/src/scale/repack.rs +++ b/nihav-core/src/scale/repack.rs @@ -33,7 +33,7 @@ impl PackKernel { } impl Kernel for PackKernel { - fn init(&mut self, in_fmt: &ScaleInfo, dest_fmt: &ScaleInfo) -> ScaleResult { + fn init(&mut self, in_fmt: &ScaleInfo, dest_fmt: &ScaleInfo, _options: &[(String, String)]) -> ScaleResult { self.ncomps = in_fmt.fmt.components.min(dest_fmt.fmt.components) as usize; for i in 0..self.ncomps { let ichr = in_fmt.fmt.comp_info[i].unwrap(); @@ -120,7 +120,16 @@ impl UnpackKernel { } impl Kernel for UnpackKernel { - fn init(&mut self, in_fmt: &ScaleInfo, dest_fmt: &ScaleInfo) -> ScaleResult { + fn init(&mut self, in_fmt: &ScaleInfo, dest_fmt: &ScaleInfo, options: &[(String, String)]) -> ScaleResult { + let mut debug = false; + for (name, value) in options.iter() { + match (name.as_str(), value.as_str()) { + ("debug", "") => { debug = true; }, + ("debug", "true") => { debug = true; }, + _ => {}, + } + } + self.ncomps = in_fmt.fmt.components.min(dest_fmt.fmt.components) as usize; let mut chr: Vec> = Vec::with_capacity(MAX_CHROMATONS); for i in 0..self.ncomps { @@ -146,7 +155,9 @@ impl Kernel for UnpackKernel { df.comp_info[..self.ncomps].clone_from_slice(&chr[..self.ncomps]); df.components = self.ncomps as u8; df.palette = false; -println!(" [intermediate format {}]", df); + if debug { + println!(" [intermediate format {}]", df); + } let res = alloc_video_buffer(NAVideoInfo::new(in_fmt.width, in_fmt.height, false, df), 3); if res.is_err() { return Err(ScaleError::AllocError); } Ok(res.unwrap()) @@ -256,7 +267,16 @@ impl DepalKernel { } impl Kernel for DepalKernel { - fn init(&mut self, in_fmt: &ScaleInfo, _dest_fmt: &ScaleInfo) -> ScaleResult { + fn init(&mut self, in_fmt: &ScaleInfo, _dest_fmt: &ScaleInfo, options: &[(String, String)]) -> ScaleResult { + let mut debug = false; + for (name, value) in options.iter() { + match (name.as_str(), value.as_str()) { + ("debug", "") => { debug = true; }, + ("debug", "true") => { debug = true; }, + _ => {}, + } + } + //todo select output more fitting for dest_fmt if possible self.ncomps = in_fmt.fmt.components as usize; let mut chr: Vec> = Vec::with_capacity(MAX_CHROMATONS); @@ -276,7 +296,9 @@ impl Kernel for DepalKernel { let mut df = in_fmt.fmt; df.palette = false; df.comp_info[..self.ncomps].clone_from_slice(&chr[..self.ncomps]); -println!(" [intermediate format {}]", df); + if debug { + println!(" [intermediate format {}]", df); + } let res = alloc_video_buffer(NAVideoInfo::new(in_fmt.width, in_fmt.height, false, df), 3); if res.is_err() { return Err(ScaleError::AllocError); } Ok(res.unwrap())