Commit 7124e05d authored by Stefan Westerfeld's avatar Stefan Westerfeld

Use larger input for speed detection for slower speeds.

Signed-off-by: Stefan Westerfeld's avatarStefan Westerfeld <stefan@space.twc.de>
parent 3b53771c
...@@ -1033,12 +1033,12 @@ public: ...@@ -1033,12 +1033,12 @@ public:
}; };
static WavData static WavData
truncate (const WavData& in_data, int seconds) truncate (const WavData& in_data, double seconds)
{ {
WavData out_data = in_data; WavData out_data = in_data;
vector<float> short_samples = in_data.samples(); vector<float> short_samples = in_data.samples();
const size_t want_n_samples = in_data.sample_rate() * in_data.n_channels() * seconds; const size_t want_n_samples = lrint (in_data.sample_rate() * seconds) * in_data.n_channels();
if (short_samples.size() > want_n_samples) if (short_samples.size() > want_n_samples)
{ {
short_samples.resize (want_n_samples); short_samples.resize (want_n_samples);
...@@ -1280,7 +1280,7 @@ window_hamming (double x) /* sharp (rectangle) cutoffs at boundaries */ ...@@ -1280,7 +1280,7 @@ window_hamming (double x) /* sharp (rectangle) cutoffs at boundaries */
void void
SpeedSync::prepare_mags (const WavData& in_data, double center, double seconds) SpeedSync::prepare_mags (const WavData& in_data, double center, double seconds)
{ {
WavData in_data_trc (truncate (in_data, seconds)); WavData in_data_trc (truncate (in_data, seconds / center));
// FIXME: can crash if SR=22050 // FIXME: can crash if SR=22050
WavData in_data_sub (resample (in_data_trc, Params::mark_sample_rate / 2 * center)); WavData in_data_sub (resample (in_data_trc, Params::mark_sample_rate / 2 * center));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment