@@ -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