From 60b0f01528694f7268cded374fa6903427bf5edf Mon Sep 17 00:00:00 2001 From: Fulnergy <12412020@mail.sustech.edu.cn> Date: Mon, 25 May 2026 21:14:31 +0800 Subject: [PATCH] fix test hang in win11 from issue #37400 --- modules/videoio/src/cap_msmf.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/videoio/src/cap_msmf.cpp b/modules/videoio/src/cap_msmf.cpp index a79cb19716..212db5e18b 100644 --- a/modules/videoio/src/cap_msmf.cpp +++ b/modules/videoio/src/cap_msmf.cpp @@ -1633,7 +1633,9 @@ bool CvCapture_MSMF::configureAudioFrame() chunkLengthOfBytes = bufferAudioData.size(); audioSamplePos += chunkLengthOfBytes/bytesPerSample; } - CV_Check((double)chunkLengthOfBytes, chunkLengthOfBytes >= INT_MIN || chunkLengthOfBytes <= INT_MAX, "MSMF: The chunkLengthOfBytes is out of the allowed range"); + if ((LONGLONG)bufferAudioData.size() < chunkLengthOfBytes) + chunkLengthOfBytes = (LONGLONG)bufferAudioData.size(); + CV_Check((double)chunkLengthOfBytes, chunkLengthOfBytes >= INT_MIN && chunkLengthOfBytes <= INT_MAX, "MSMF: The chunkLengthOfBytes is out of the allowed range"); copy(bufferAudioData.begin(), bufferAudioData.begin() + (int)chunkLengthOfBytes, std::back_inserter(audioDataInUse)); bufferAudioData.erase(bufferAudioData.begin(), bufferAudioData.begin() + (int)chunkLengthOfBytes); if (audioFrame.empty())