From e6f8f805a7224fedf90ba90ef5a3ca83d21b6c6b Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Wed, 14 Oct 2015 01:05:06 +0200 Subject: [PATCH] Fix wraparound in some timecode comparisons. --- bmusb.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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(); -- 2.39.2