pending_audio_frames.pop_front();
lock.unlock();
audio_format.id = audio_frame.format;
+
+ // Use the video format of the pending frame.
+ QueuedFrame video_frame = pending_video_frames.front();
+ VideoFormat video_format;
+ decode_video_format(video_frame.format, &video_format);
+
frame_callback(audio_timecode,
- FrameAllocator::Frame(), 0, VideoFormat(),
+ FrameAllocator::Frame(), 0, video_format,
audio_frame.frame, AUDIO_HEADER_SIZE, audio_format);
} else {
QueuedFrame video_frame = pending_video_frames.front();
decoded_video_format->frame_rate_den = 1;
return false;
}
+
+map<uint32_t, VideoMode> BMUSBCapture::get_available_video_modes() const
+{
+ // The USB3 cards autodetect, and seem to have no provision for forcing modes.
+ VideoMode auto_mode;
+ auto_mode.name = "Autodetect";
+ auto_mode.autodetect = true;
+ return {{ 0, auto_mode }};
+}
+
+uint32_t BMUSBCapture::get_current_video_mode() const
+{
+ return 0; // Matches get_available_video_modes().
+}
+
+void BMUSBCapture::set_video_mode(uint32_t video_mode_id)
+{
+ assert(video_mode_id == 0); // Matches get_available_video_modes().
+}