From: Steinar H. Gunderson Date: Tue, 13 Oct 2015 23:05:06 +0000 (+0200) Subject: Fix wraparound in some timecode comparisons. X-Git-Tag: 0.4~51 X-Git-Url: https://git.sesse.net/?p=bmusb;a=commitdiff_plain;h=e6f8f805a7224fedf90ba90ef5a3ca83d21b6c6b Fix wraparound in some timecode comparisons. --- diff --git a/bmusb.cpp b/bmusb.cpp index 8b40f49..387e042 100644 --- a/bmusb.cpp +++ b/bmusb.cpp @@ -158,12 +158,12 @@ void BMUSBCapture::dequeue_thread_func() uint16_t video_timecode = pending_video_frames.front().timecode; uint16_t audio_timecode = pending_audio_frames.front().timecode; - if (video_timecode < audio_timecode) { + 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); pending_video_frames.pop_front(); - } else if (audio_timecode < video_timecode) { + } 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); QueuedFrame audio_frame = pending_audio_frames.front();