]> git.sesse.net Git - nageru/blobdiff - mixer.cpp
Remove an unused member variable.
[nageru] / mixer.cpp
index b7e720d2feb6dbaffb3ead7ac17689620bee4e42..04a35530cc7af36d7681d1aca2ebef695be960e0 100644 (file)
--- a/mixer.cpp
+++ b/mixer.cpp
 #include <movit/flat_input.h>
 #include <movit/image_format.h>
 #include <movit/resource_pool.h>
+#include <movit/util.h>
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/time.h>
 #include <time.h>
-#include <util.h>
 #include <algorithm>
 #include <cmath>
 #include <condition_variable>
@@ -267,8 +267,7 @@ void Mixer::bm_frame(unsigned card_index, uint16_t timecode,
                        // Insert silence as needed.
                        fprintf(stderr, "Card %d dropped %d frame(s) (before timecode 0x%04x), inserting silence.\n",
                                card_index, dropped_frames, timecode);
-                       vector<float> silence;
-                       silence.resize(silence_samples * 2);
+                       vector<float> silence(silence_samples * 2, 0.0f);
                        for (int i = 0; i < dropped_frames; ++i) {
                                card->resampling_queue->add_input_samples(local_pts / double(TIMEBASE), silence.data(), silence_samples);
                                // Note that if the format changed in the meantime, we have
@@ -316,6 +315,7 @@ void Mixer::bm_frame(unsigned card_index, uint16_t timecode,
                        card->new_data_ready = true;
                        card->new_frame = RefCountedFrame(FrameAllocator::Frame());
                        card->new_frame_length = frame_length;
+                       card->new_frame_interlaced = false;
                        card->new_data_ready_fence = nullptr;
                        card->dropped_frames = dropped_frames;
                        card->new_data_ready_changed.notify_all();
@@ -415,6 +415,7 @@ void Mixer::bm_frame(unsigned card_index, uint16_t timecode,
                        card->new_frame = new_frame;
                        card->new_frame_length = frame_length;
                        card->new_frame_field = field;
+                       card->new_frame_interlaced = interlaced;
                        card->new_data_ready_fence = fence;
                        card->dropped_frames = dropped_frames;
                        card->new_data_ready_changed.notify_all();
@@ -461,6 +462,7 @@ void Mixer::thread_func()
                                card_copy[card_index].new_frame = card->new_frame;
                                card_copy[card_index].new_frame_length = card->new_frame_length;
                                card_copy[card_index].new_frame_field = card->new_frame_field;
+                               card_copy[card_index].new_frame_interlaced = card->new_frame_interlaced;
                                card_copy[card_index].new_data_ready_fence = card->new_data_ready_fence;
                                card_copy[card_index].dropped_frames = card->dropped_frames;
                                card->new_data_ready = false;
@@ -491,6 +493,7 @@ void Mixer::thread_func()
                }
 
                if (audio_level_callback != nullptr) {
+                       unique_lock<mutex> lock(r128_mutex);
                        double loudness_s = r128.loudness_S();
                        double loudness_i = r128.integrated();
                        double loudness_range_low = r128.range_min();
@@ -741,7 +744,10 @@ void Mixer::process_audio_one_frame(int64_t frame_pts_int, int num_samples)
        vector<float> left, right;
        deinterleave_samples(samples_out, &left, &right);
        float *ptrs[] = { left.data(), right.data() };
-       r128.process(left.size(), ptrs);
+       {
+               unique_lock<mutex> lock(r128_mutex);
+               r128.process(left.size(), ptrs);
+       }
 
        // Send the samples to the sound card.
        if (alsa) {