-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
Hi! Thanks for your work.
I have the following example and I am obtaining the error on the title. Could you help me finding out what's going wrong? It works pretty well with Float32I but when I change to Float32S it crashes. I already tried changing to [[f32;48];2] and [[0.0; 96]; 2] for both source and target respectively, to no avail...
let io_spec = IOSpec::new(Datatype::Float32S, Datatype::Float32S);
// upscale factor 2, one channel with all the defaults
let soxr = Soxr::create(1.0, 2.0, 2, Some(&io_spec), None, None).unwrap();
// source data, taken from 1-single-block.c of libsoxr examples.
let source: [f32; 96] = [
0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0,
0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0,
0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0,
0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0,
0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0,
0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0,
];
// create room for 2*48 = 96 samples
let mut target: [f32; 192] = [0.0; 192];
// Two runs. First run will convert the source data into target.
// Last run with None is to inform resampler of end-of-input so it can clean up
soxr.process(Some(&source), &mut target).unwrap();
soxr.process::<f32, _>(None, &mut target[0..]).unwrap();
// just print the values in target
println!("{:?}", target);
println!("{:?}", target.len());
Metadata
Metadata
Assignees
Labels
No labels