comparison dsp/rateconversion/TestResampler.cpp @ 364:01d7da967123

Save extra samples from one process to next (+ other fixes and debug out)
author Chris Cannam <c.cannam@qmul.ac.uk>
date Mon, 14 Oct 2013 08:15:51 +0100
parents 2fe2ab316c8e
children ce50eef47bdf
comparison
equal deleted inserted replaced
363:2fe2ab316c8e 364:01d7da967123
39 int n, 39 int n,
40 double *in, 40 double *in,
41 int m, 41 int m,
42 double *expected) 42 double *expected)
43 { 43 {
44 //!!! to be useful, this should provide the input in varying-size chunks 44 // Here we provide the input in chunks (of varying size)
45 45
46 Resampler r(sourceRate, targetRate); 46 Resampler r(sourceRate, targetRate);
47 int latency = r.getLatency(); 47 int latency = r.getLatency();
48 std::cerr << "latency = " << latency << std::endl; 48 std::cerr << "latency = " << latency << std::endl;
49 49
60 60
61 for (int i = 0; i < m1; ++i) { 61 for (int i = 0; i < m1; ++i) {
62 outPadded[i] = -999.0; 62 outPadded[i] = -999.0;
63 } 63 }
64 64
65 int got = r.process(inPadded, outPadded, n1); 65 int chunkSize = 1;
66 int got = 0;
67 int i = 0;
66 68
67 std::cerr << n1 << " in, " << got << " out" << std::endl; 69 while (true) {
70 std::cerr << "i = " << i << ", n1 = " << n1 << ", chunkSize = " << chunkSize << std::endl;
71 got += r.process(inPadded + i, outPadded + got, chunkSize);
72 i = i + chunkSize;
73 chunkSize = chunkSize + 1;
74 if (i + 1 >= n1) {
75 break;
76 } else if (i + chunkSize >= n1) {
77 chunkSize = n1 - i;
78 }
79 }
80
81 // int got = r.process(inPadded, outPadded, n1);
82 std::cerr << i << " in, " << got << " out" << std::endl;
68 83
69 BOOST_CHECK_EQUAL(got, m1); 84 BOOST_CHECK_EQUAL(got, m1);
70 85 /*
71 std::cerr << "results including latency padding:" << std::endl; 86 std::cerr << "results including latency padding:" << std::endl;
72 for (int i = 0; i < m1; ++i) { 87 for (int i = 0; i < m1; ++i) {
73 std::cerr << outPadded[i] << " "; 88 std::cerr << outPadded[i] << " ";
74 if (i % 6 == 5) std::cerr << "\n"; 89 if (i % 6 == 5) std::cerr << "\n";
75 } 90 }
76 std::cerr << "\n"; 91 std::cerr << "\n";
77 92 */
78 for (int i = latency; i < m1; ++i) { 93 for (int i = latency; i < m1; ++i) {
79 BOOST_CHECK_SMALL(outPadded[i] - expected[i-latency], 1e-8); 94 BOOST_CHECK_SMALL(outPadded[i] - expected[i-latency], 1e-8);
80 } 95 }
81 delete[] outPadded; 96 delete[] outPadded;
82 delete[] inPadded; 97 delete[] inPadded;