]> git.sesse.net Git - nageru/blobdiff - resampling_queue.cpp
Release Nageru 1.3.3.
[nageru] / resampling_queue.cpp
index 9e8fb7d58da6d85049c3a895780c9bc2eed8578b..c1945d27ab2a2f304edf7292d34334e00d8416e2 100644 (file)
@@ -63,6 +63,7 @@ void ResamplingQueue::add_input_samples(double pts, const float *samples, ssize_
 
 bool ResamplingQueue::get_output_samples(double pts, float *samples, ssize_t num_samples)
 {
+       assert(num_samples > 0);
        if (first_input) {
                // No data yet, just return zeros.
                memset(samples, 0, num_samples * 2 * sizeof(float));
@@ -95,8 +96,8 @@ bool ResamplingQueue::get_output_samples(double pts, float *samples, ssize_t num
                }
                total_consumed_samples -= delay_samples_to_add;  // Equivalent to increasing k_a0 and k_a1.
                err += delay_samples_to_add;
-               first_output = false;
        }
+       first_output = false;
 
        // Compute loop filter coefficients for the two filters. We need to compute them
        // every time, since they depend on the number of samples the user asked for.
@@ -147,7 +148,8 @@ bool ResamplingQueue::get_output_samples(double pts, float *samples, ssize_t num
                vresampler.inp_count = num_input_samples;
                vresampler.inp_data = inbuf;
 
-               vresampler.process();
+               int err = vresampler.process();
+               assert(err == 0);
 
                size_t consumed_samples = num_input_samples - vresampler.inp_count;
                total_consumed_samples += consumed_samples;