-
- void schedule_original_frame(int64_t output_pts, unsigned stream_idx, int64_t input_pts);
- void schedule_interpolated_frame(int64_t output_pts, unsigned stream_idx, int64_t input_first_pts, int64_t input_second_pts, float alpha);
+ void clear_queue();
+
+ // “display_func” is called after the frame has been calculated (if needed)
+ // and has gone out to the stream.
+ void schedule_original_frame(std::chrono::steady_clock::time_point,
+ int64_t output_pts, std::function<void()> &&display_func,
+ QueueSpotHolder &&queue_spot_holder,
+ FrameOnDisk frame);
+ void schedule_faded_frame(std::chrono::steady_clock::time_point, int64_t output_pts,
+ std::function<void()> &&display_func,
+ QueueSpotHolder &&queue_spot_holder,
+ FrameOnDisk frame1, FrameOnDisk frame2,
+ float fade_alpha);
+ void schedule_interpolated_frame(std::chrono::steady_clock::time_point, int64_t output_pts,
+ std::function<void(std::shared_ptr<Frame>)> &&display_func,
+ QueueSpotHolder &&queue_spot_holder,
+ FrameOnDisk frame1, FrameOnDisk frame2,
+ float alpha, FrameOnDisk secondary_frame = {}, // Empty = no secondary (fade) frame.
+ float fade_alpha = 0.0f);
+ void schedule_refresh_frame(std::chrono::steady_clock::time_point, int64_t output_pts,
+ std::function<void()> &&display_func,
+ QueueSpotHolder &&queue_spot_holder);