]> git.sesse.net Git - nageru/blobdiff - mixer.h
Delete streams when they are closed (prevents memory leak on disconnecting clients).
[nageru] / mixer.h
diff --git a/mixer.h b/mixer.h
index 27ba586a7837b646e3933221d430f417d44ec157..061b38243c1adca511de97f119778da3e32c85f1 100644 (file)
--- a/mixer.h
+++ b/mixer.h
@@ -256,6 +256,8 @@ public:
                cards[card_index].capture->set_video_mode(mode);
        }
 
+       void start_mode_scanning(unsigned card_index);
+
 private:
        void configure_card(unsigned card_index, const QSurfaceFormat &format, CaptureInterface *capture);
        void bm_frame(unsigned card_index, uint16_t timecode,
@@ -382,6 +384,12 @@ private:
        std::mutex audio_mutex;
        std::condition_variable audio_task_queue_changed;
        std::queue<AudioTask> audio_task_queue;  // Under audio_mutex.
+
+       // For mode scanning.
+       bool is_mode_scanning[MAX_CARDS]{ false };
+       std::vector<uint32_t> mode_scanlist[MAX_CARDS];
+       unsigned mode_scanlist_index[MAX_CARDS]{ 0 };
+       timespec last_mode_scan_change[MAX_CARDS];
 };
 
 extern Mixer *global_mixer;