if (uint16_less_than_with_wraparound(video_timecode, audio_timecode)) {
printf("Video block 0x%04x without corresponding audio block, dropping.\n",
video_timecode);
- video_frame_allocator->release_frame(pending_video_frames.front().frame);
+ QueuedFrame video_frame = pending_video_frames.front();
pending_video_frames.pop_front();
+ lock.unlock();
+ video_frame_allocator->release_frame(video_frame.frame);
} else if (uint16_less_than_with_wraparound(audio_timecode, video_timecode)) {
printf("Audio block 0x%04x without corresponding video block, sending blank frame.\n",
audio_timecode);