]> git.sesse.net Git - bmusb/commitdiff
If we have an audio block with no video, send it on anyway (since audio continuity...
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Tue, 13 Oct 2015 20:49:41 +0000 (22:49 +0200)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Tue, 13 Oct 2015 20:49:41 +0000 (22:49 +0200)
bmusb.cpp

index fbf31dd95177c8480dca45c6579ae696b126b7d2..8b40f4997306cef972b0fd03b46c402bc6c30508 100644 (file)
--- a/bmusb.cpp
+++ b/bmusb.cpp
@@ -164,10 +164,14 @@ void BMUSBCapture::dequeue_thread_func()
                        video_frame_allocator->release_frame(pending_video_frames.front().frame);
                        pending_video_frames.pop_front();
                } else if (audio_timecode < video_timecode) {
-                       printf("Audio block 0x%04x without corresponding video block, dropping.\n",
+                       printf("Audio block 0x%04x without corresponding video block, sending blank frame.\n",
                                audio_timecode);
-                       audio_frame_allocator->release_frame(pending_audio_frames.front().frame);
+                       QueuedFrame audio_frame = pending_audio_frames.front();
                        pending_audio_frames.pop_front();
+                       lock.unlock();
+                       frame_callback(audio_timecode,
+                                      FrameAllocator::Frame(), 0, 0x0000,
+                                      audio_frame.frame, AUDIO_HEADER_SIZE, audio_frame.format);
                } else {
                        QueuedFrame video_frame = pending_video_frames.front();
                        QueuedFrame audio_frame = pending_audio_frames.front();