X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=nageru%2Fmixer.h;h=5af2016a74bae1d4a241d224f78f300e53463bca;hb=5a8cccb37e6832197fac3afa0fa39cf83283d5af;hp=b4ed76f4575ff0403b4865a470af8925d548ddd1;hpb=eeda8995329601f9f4e35047358400833eeae68e;p=nageru diff --git a/nageru/mixer.h b/nageru/mixer.h index b4ed76f..5af2016 100644 --- a/nageru/mixer.h +++ b/nageru/mixer.h @@ -456,7 +456,7 @@ private: HTTPD httpd; unsigned num_cards, num_video_inputs, num_html_inputs = 0; - QSurface *mixer_surface, *h264_encoder_surface, *decklink_output_surface; + QSurface *mixer_surface, *h264_encoder_surface, *decklink_output_surface, *image_update_surface; std::unique_ptr resource_pool; std::unique_ptr theme; std::atomic audio_source_channel{0}; @@ -541,9 +541,10 @@ private: }; std::deque new_frames; std::condition_variable new_frames_changed; // Set whenever new_frames is changed. - QueueLengthPolicy queue_length_policy; // Refers to the "new_frames" queue. + std::vector new_raw_audio; + int last_timecode = -1; // Unwrapped. JitterHistory jitter_history; @@ -578,7 +579,7 @@ private: bool is_preroll; std::chrono::steady_clock::time_point frame_timestamp; }; - OutputFrameInfo get_one_frame_from_each_card(unsigned master_card_index, bool master_card_is_output, CaptureCard::NewFrame new_frames[MAX_VIDEO_CARDS], bool has_new_frame[MAX_VIDEO_CARDS]); + OutputFrameInfo get_one_frame_from_each_card(unsigned master_card_index, bool master_card_is_output, CaptureCard::NewFrame new_frames[MAX_VIDEO_CARDS], bool has_new_frame[MAX_VIDEO_CARDS], std::vector raw_audio[MAX_VIDEO_CARDS]); InputState input_state;