From b17e5363d6b7938f6b86a376817cf2830bc276e5 Mon Sep 17 00:00:00 2001 From: Molly Xu Date: Mon, 17 Nov 2025 10:36:24 -0800 Subject: [PATCH] Ensure SingleStreamDecoder is robust against numFrames = 0 Summary: Ensure SingleStreamDecoder is robust against numFrames = 0 Reviewed By: NicolasHug Differential Revision: D87109526 --- src/torchcodec/_core/SingleStreamDecoder.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/torchcodec/_core/SingleStreamDecoder.cpp b/src/torchcodec/_core/SingleStreamDecoder.cpp index 32d6f9d99..0b30f1fff 100644 --- a/src/torchcodec/_core/SingleStreamDecoder.cpp +++ b/src/torchcodec/_core/SingleStreamDecoder.cpp @@ -288,6 +288,14 @@ void SingleStreamDecoder::scanFileAndUpdateMetadataAndIndex() { streamMetadata.numFramesFromContent = streamInfos_[streamIndex].allFrames.size(); + // This ensures that we are robust in handling cases where + // we are decoding in exact mode and numFrames is 0. The current metadata + // validation logic assumes that these values should not be None + if (streamMetadata.numFramesFromContent.value() == 0) { + streamMetadata.beginStreamPtsFromContent = 0; + streamMetadata.endStreamPtsFromContent = 0; + } + if (streamMetadata.beginStreamPtsFromContent.has_value()) { streamMetadata.beginStreamPtsSecondsFromContent = ptsToSeconds( *streamMetadata.beginStreamPtsFromContent, avStream->time_base);