]> git.sesse.net Git - nageru/blobdiff - nageru/decklink_output.h
In DeckLinkOutput, keep a list of all the scheduled frames instead of just a count.
[nageru] / nageru / decklink_output.h
index 2c07bc72ccae0c32c8300081d473eebaf6bc7af9..f1b40f468abdd703eb8df9c1e0410d3a78696d29 100644 (file)
@@ -7,6 +7,7 @@
 #include <atomic>
 #include <chrono>
 #include <condition_variable>
+#include <deque>
 #include <memory>
 #include <mutex>
 #include <queue>
@@ -133,7 +134,8 @@ private:
        std::mutex frame_queue_mutex;
        std::queue<std::unique_ptr<Frame>> pending_video_frames;  // Under <frame_queue_mutex>.
        std::queue<std::unique_ptr<Frame>> frame_freelist;  // Under <frame_queue_mutex>.
-       int num_frames_in_flight = 0;  // Number of frames allocated but not on the freelist. Under <frame_queue_mutex>.
+       std::deque<Frame *> scheduled_frames;  // Owned by the driver, so no unique_ptr. Under <frame_queue_mutex>.
+
        std::condition_variable frame_queues_changed;
        bool playback_initiated = false, playback_started = false;
        int64_t base_pts, frame_duration;