From: Steinar H. Gunderson Date: Sun, 8 May 2016 17:24:19 +0000 (+0200) Subject: Fix an embarrassing messup with the new ResamplingQueue formats. X-Git-Tag: 1.3.0~14 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=4fcae1818506a3df1aba45140909cb7851a0845f;p=nageru Fix an embarrassing messup with the new ResamplingQueue formats. --- diff --git a/mixer.cpp b/mixer.cpp index 1d71ac8..19cb8be 100644 --- a/mixer.cpp +++ b/mixer.cpp @@ -290,7 +290,7 @@ void Mixer::configure_card(unsigned card_index, const QSurfaceFormat &format, Ca card->frame_allocator.reset(new PBOFrameAllocator(8 << 20, WIDTH, HEIGHT)); // 8 MB. card->capture->set_video_frame_allocator(card->frame_allocator.get()); card->surface = create_surface(format); - card->resampling_queue.reset(new ResamplingQueue(OUTPUT_FREQUENCY, OUTPUT_FREQUENCY, 2)); + card->resampling_queue.reset(new ResamplingQueue(card_index, OUTPUT_FREQUENCY, OUTPUT_FREQUENCY, 2)); card->capture->configure_card(); } @@ -410,7 +410,7 @@ void Mixer::bm_frame(unsigned card_index, uint16_t timecode, if (dropped_frames > MAX_FPS * 2) { fprintf(stderr, "Card %d lost more than two seconds (or time code jumping around; from 0x%04x to 0x%04x), resetting resampler\n", card_index, card->last_timecode, timecode); - card->resampling_queue.reset(new ResamplingQueue(OUTPUT_FREQUENCY, OUTPUT_FREQUENCY, 2)); + card->resampling_queue.reset(new ResamplingQueue(card_index, OUTPUT_FREQUENCY, OUTPUT_FREQUENCY, 2)); dropped_frames = 0; } else if (dropped_frames > 0) { // Insert silence as needed. diff --git a/resampling_queue.cpp b/resampling_queue.cpp index dec8599..62c4413 100644 --- a/resampling_queue.cpp +++ b/resampling_queue.cpp @@ -147,7 +147,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;