Struct rustdct::DCTplanner [] [src]

pub struct DCTplanner<T> { /* fields omitted */ }

The DCT planner is used to make new DCT algorithm instances.

RustDCT has several DCT algorithms available for each DCT type; For a given DCT type and problem size, the FFTplanner decides which of the available DCT algorithms to use and then initializes them.

// Perform a DCT Type 4 of size 1234
use std::sync::Arc;
use rustdct::DCTplanner;

let mut input:  Vec<f32> = vec![0f32; 1234];
let mut output: Vec<f32> = vec![0f32; 1234];

let mut planner = DCTplanner::new();
let dct4 = planner.plan_dct4(1234);
dct4.process(&mut input, &mut output);
 
// The DCT instance returned by the planner is stored behind an `Arc`, so it's cheap to clone
let dct4_clone = Arc::clone(&dct4);

If you plan on creating multiple DCT instances, it is recommnded to reuse the same planner for all of them. This is because the planner re-uses internal data across DCT instances wherever possible, saving memory and reducing setup time. (DCT instances created with one planner will never re-use data and buffers with DCT instances created by a different planner)

Each DCT instance owns Arcs to its shared internal data, rather than borrowing it from the planner, so it's perfectly safe to drop the planner after creating DCT instances.

Methods

impl<T: DCTnum> DCTplanner<T>
[src]

[src]

[src]

Returns a DCT Type 1 instance which processes signals of size len. If this is called multiple times, it will attempt to re-use internal data between instances

[src]

Returns a DCT Type 2 instance which processes signals of size len. If this is called multiple times, it will attempt to re-use internal data between instances

[src]

Returns DCT Type 3 instance which processes signals of size len. If this is called multiple times, it will attempt to re-use internal data between instances

[src]

Returns a DCT Type 4 instance which processes signals of size len. If this is called multiple times, it will attempt to re-use internal data between instances

[src]

[src]

Returns a MDCT instance which processes inputs of size len * 2 and produces outputs of size len.

window_fn is a function that takes a size and returns a Vec containing size window values. See the window_fn module for provided window functions.

If this is called multiple times, it will attempt to re-use internal data between instances

[src]

[src]

Returns an IMDCT instance which processes input of size len and produces outputs of size len * 2.

window_fn is a function that takes a size and returns a Vec containing size window values. See the window_fn module for provided window functions.

If this is called multiple times, it will attempt to re-use internal data between instances

[src]

Trait Implementations

Auto Trait Implementations

impl<T> !Send for DCTplanner<T>

impl<T> !Sync for DCTplanner<T>