Skip to content

Commit 223b1d0

Browse files
committed
Update minPtsFromScan and maxPtsFromScan
1 parent 553e74a commit 223b1d0

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

src/torchcodec/_core/Metadata.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ struct StreamMetadata {
3434

3535
// More accurate duration, obtained by scanning the file.
3636
// These presentation timestamps are in time base.
37-
std::optional<int64_t> minPtsFromScan;
38-
std::optional<int64_t> maxPtsFromScan;
37+
std::optional<int64_t> beginStreamPtsFromContent;
38+
std::optional<int64_t> endStreamPtsFromContent;
3939
// These presentation timestamps are in seconds.
4040
std::optional<double> beginStreamSecondsFromContent;
4141
std::optional<double> endStreamSecondsFromContent;

src/torchcodec/_core/SingleStreamDecoder.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -236,10 +236,11 @@ void SingleStreamDecoder::scanFileAndUpdateMetadataAndIndex() {
236236
// record its relevant metadata.
237237
int streamIndex = packet->stream_index;
238238
auto& streamMetadata = containerMetadata_.allStreamMetadata[streamIndex];
239-
streamMetadata.minPtsFromScan = std::min(
240-
streamMetadata.minPtsFromScan.value_or(INT64_MAX), getPtsOrDts(packet));
241-
streamMetadata.maxPtsFromScan = std::max(
242-
streamMetadata.maxPtsFromScan.value_or(INT64_MIN),
239+
streamMetadata.beginStreamPtsFromContent = std::min(
240+
streamMetadata.beginStreamPtsFromContent.value_or(INT64_MAX),
241+
getPtsOrDts(packet));
242+
streamMetadata.endStreamPtsFromContent = std::max(
243+
streamMetadata.endStreamPtsFromContent.value_or(INT64_MIN),
243244
getPtsOrDts(packet) + packet->duration);
244245
streamMetadata.numFramesFromContent =
245246
streamMetadata.numFramesFromContent.value_or(0) + 1;
@@ -265,13 +266,14 @@ void SingleStreamDecoder::scanFileAndUpdateMetadataAndIndex() {
265266
streamMetadata.numFramesFromContent =
266267
streamInfos_[streamIndex].allFrames.size();
267268

268-
if (streamMetadata.minPtsFromScan.has_value()) {
269+
if (streamMetadata.beginStreamPtsFromContent.has_value()) {
269270
streamMetadata.beginStreamSecondsFromContent =
270-
*streamMetadata.minPtsFromScan * av_q2d(avStream->time_base);
271+
*streamMetadata.beginStreamPtsFromContent *
272+
av_q2d(avStream->time_base);
271273
}
272-
if (streamMetadata.maxPtsFromScan.has_value()) {
274+
if (streamMetadata.endStreamPtsFromContent.has_value()) {
273275
streamMetadata.endStreamSecondsFromContent =
274-
*streamMetadata.maxPtsFromScan * av_q2d(avStream->time_base);
276+
*streamMetadata.endStreamPtsFromContent * av_q2d(avStream->time_base);
275277
}
276278
}
277279

0 commit comments

Comments
 (0)