X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=resampling_queue.cpp;h=ef7b73511ff596f7e93894fd703038ad370c8841;hb=6ffaabac0a523617b686f40c154a25cb548cc561;hp=a1a2395533ae168abf1efe2a737cf710a9722e0a;hpb=1ddeee498397ab599d0ee131f7896f543486d0ad;p=nageru diff --git a/resampling_queue.cpp b/resampling_queue.cpp index a1a2395..ef7b735 100644 --- a/resampling_queue.cpp +++ b/resampling_queue.cpp @@ -60,7 +60,11 @@ void ResamplingQueue::add_input_samples(steady_clock::time_point ts, const float a1.good_sample = good_sample; if (a0.good_sample && a1.good_sample) { current_estimated_freq_in = (a1.input_samples_received - a0.input_samples_received) / duration(a1.ts - a0.ts).count(); - assert(current_estimated_freq_in >= 0.0); + if (!(current_estimated_freq_in >= 0.0)) { + fprintf(stderr, "%s: PANIC: Input audio clock going backwards, ignoring.\n", + spec_to_string(device_spec).c_str()); + current_estimated_freq_in = freq_in; + } // Bound the frequency, so that a single wild result won't throw the filter off guard. current_estimated_freq_in = min(current_estimated_freq_in, 1.2 * freq_in);