projects
/
nihav.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rename register_all_codecs to register_all_decoders
[nihav.git]
/
nihav-duck
/
src
/
codecs
/
on2avc.rs
diff --git
a/nihav-duck/src/codecs/on2avc.rs
b/nihav-duck/src/codecs/on2avc.rs
index dc229b042514988940bee149b811e607bada779f..29ead41d3c1ec9ebf7dd3106fef30495d0e6bf23 100644
(file)
--- a/
nihav-duck/src/codecs/on2avc.rs
+++ b/
nihav-duck/src/codecs/on2avc.rs
@@
-4,8
+4,8
@@
use nihav_core::io::byteio::read_u16le;
use nihav_core::io::bitreader::*;
use nihav_core::io::codebook::*;
use nihav_core::io::intcode::*;
use nihav_core::io::bitreader::*;
use nihav_core::io::codebook::*;
use nihav_core::io::intcode::*;
-use nihav_co
re
::dsp::fft::*;
-use nihav_co
re
::dsp::mdct::IMDCT;
+use nihav_co
dec_support
::dsp::fft::*;
+use nihav_co
dec_support
::dsp::mdct::IMDCT;
use std::str::FromStr;
use std::str::FromStr;
@@
-220,7
+220,7
@@
impl AVCDecoder {
scale = br.read(7)? as i16;
first = false
} else {
scale = br.read(7)? as i16;
first = false
} else {
- scale +=
br.read_cb(&self.codebooks.scale_cb)? as i16
;
+ scale +=
i16::from(br.read_cb(&self.codebooks.scale_cb)?)
;
validate!((scale >= 0) && (scale < 128));
}
self.scales[cur_band] = scale as u8;
validate!((scale >= 0) && (scale < 128));
}
self.scales[cur_band] = scale as u8;
@@
-331,6
+331,7
@@
impl AVCDecoder {
}
Ok(())
}
}
Ok(())
}
+ #[allow(clippy::cyclomatic_complexity)]
fn synth_channel(&mut self, chno: usize, dst: &mut [f32]) {
let coeffs = &mut self.coeffs[chno];
let delay = &mut self.delay[chno];
fn synth_channel(&mut self, chno: usize, dst: &mut [f32]) {
let coeffs = &mut self.coeffs[chno];
let delay = &mut self.delay[chno];
@@
-490,12
+491,12
@@
macro_rules! synth_step0_template {
fn $name(src: &[f32], dst: &mut [f32], step: usize, off: usize, sp: &SynthParams) {
for i in 0..step {
for j in 0..sp.p0 {
fn $name(src: &[f32], dst: &mut [f32], step: usize, off: usize, sp: &SynthParams) {
for i in 0..step {
for j in 0..sp.p0 {
- dst[i] += (
(src[j] as f64
) * $tab[sp.idx][j][i]) as f32;
+ dst[i] += (
f64::from(src[j]
) * $tab[sp.idx][j][i]) as f32;
}
}
for i in 0..step {
for j in 0..sp.p1 {
}
}
for i in 0..step {
for j in 0..sp.p1 {
- dst[$size - step + i] += (
(src[sp.p0 + off + j] as f64
) * $tab[sp.idx][sp.p0 + j][i]) as f32;
+ dst[$size - step + i] += (
f64::from(src[sp.p0 + off + j]
) * $tab[sp.idx][sp.p0 + j][i]) as f32;
}
}
}
}
}
}
@@
-511,7
+512,7
@@
fn synth_step1(src: &[f32], dst: &mut [f32], size: usize, stride: usize, step: u
{
let mut pos = step - 1;
for _ in 0..off {
{
let mut pos = step - 1;
for _ in 0..off {
- let scale =
src[p0] as f64
;
+ let scale =
f64::from(src[p0])
;
p0 += 1;
pos &= size - 1;
for i in 0..pos.min(step) {
p0 += 1;
pos &= size - 1;
for i in 0..pos.min(step) {
@@
-683,7
+684,7
@@
fn synth_generic(src: &[f32], dst: &mut [f32], tmpbuf: &mut [f32; COEFFS * 2], i
(&mut dst[..size]).copy_from_slice(&src[..size]);
let mut order_idx = 0;
synth_recursive(dst, tmpbuf, size, order, &mut order_idx, false);
(&mut dst[..size]).copy_from_slice(&src[..size]);
let mut order_idx = 0;
synth_recursive(dst, tmpbuf, size, order, &mut order_idx, false);
- for
i in 0..COEFFS { dst[i]
*= 0.125; }
+ for
el in dst.iter_mut().take(COEFFS) { *el
*= 0.125; }
}
fn synth1024(dsp: &mut SynthDSP, src: &[f32], dst: &mut [f32], tmpbuf: &mut [f32; COEFFS * 2], is_40khz: bool) {
}
fn synth1024(dsp: &mut SynthDSP, src: &[f32], dst: &mut [f32], tmpbuf: &mut [f32; COEFFS * 2], is_40khz: bool) {
@@
-1048,6
+1049,12
@@
impl NADecoder for AVCDecoder {
}
}
}
}
+impl NAOptionHandler for AVCDecoder {
+ fn get_supported_options(&self) -> &[NAOptionDefinition] { &[] }
+ fn set_options(&mut self, _options: &[NAOption]) { }
+ fn query_option_value(&self, _name: &str) -> Option<NAValue> { None }
+}
+
pub fn get_decoder_500() -> Box<dyn NADecoder + Send> {
Box::new(AVCDecoder::new(500))
}
pub fn get_decoder_500() -> Box<dyn NADecoder + Send> {
Box::new(AVCDecoder::new(500))
}
@@
-1060,15
+1067,15
@@
pub fn get_decoder_501() -> Box<dyn NADecoder + Send> {
mod test {
use nihav_core::codecs::RegisteredDecoders;
use nihav_core::demuxers::RegisteredDemuxers;
mod test {
use nihav_core::codecs::RegisteredDecoders;
use nihav_core::demuxers::RegisteredDemuxers;
- use nihav_co
re
::test::dec_video::*;
- use crate::
codecs::duck_register_all_codec
s;
- use nihav_commonfmt::
demuxers::
generic_register_all_demuxers;
+ use nihav_co
dec_support
::test::dec_video::*;
+ use crate::
duck_register_all_decoder
s;
+ use nihav_commonfmt::generic_register_all_demuxers;
#[test]
fn test_avc() {
let mut dmx_reg = RegisteredDemuxers::new();
generic_register_all_demuxers(&mut dmx_reg);
let mut dec_reg = RegisteredDecoders::new();
#[test]
fn test_avc() {
let mut dmx_reg = RegisteredDemuxers::new();
generic_register_all_demuxers(&mut dmx_reg);
let mut dec_reg = RegisteredDecoders::new();
- duck_register_all_
codec
s(&mut dec_reg);
+ duck_register_all_
decoder
s(&mut dec_reg);
//let file = "assets/Duck/Cell-140.vp5";
//let file = "assets/Duck/Chocolat-500.vp5";
//let file = "assets/Duck/Cell-140.vp5";
//let file = "assets/Duck/Chocolat-500.vp5";