- CaptureCard cards[MAX_VIDEO_CARDS]; // protected by <bmusb_mutex>
- AudioMixer audio_mixer;
- void get_one_frame_from_each_card(unsigned master_card_index, CaptureCard::NewFrame new_frames[MAX_VIDEO_CARDS], bool has_new_frame[MAX_VIDEO_CARDS], int num_samples[MAX_VIDEO_CARDS]);
+ CaptureCard cards[MAX_VIDEO_CARDS]; // Protected by <card_mutex>.
+ AudioMixer audio_mixer; // Same as global_audio_mixer (see audio_mixer.h).
+ bool input_card_is_master_clock(unsigned card_index, unsigned master_card_index) const;
+ struct OutputFrameInfo {
+ int dropped_frames; // Since last frame.
+ int num_samples; // Audio samples needed for this output frame.
+ int64_t frame_duration; // In TIMEBASE units.
+ };
+ 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]);