@@ -562,13 +562,14 @@ void VideoDecoder::scanFileAndUpdateMetadataAndIndex() {
562562 if (packet->flags & AV_PKT_FLAG_DISCARD) {
563563 continue ;
564564 }
565- auto & stream = containerMetadata_.streams [streamIndex];
566- stream .minPtsFromScan =
567- std::min (stream .minPtsFromScan .value_or (INT64_MAX), packet->pts );
568- stream .maxPtsFromScan = std::max (
569- stream .maxPtsFromScan .value_or (INT64_MIN),
565+ auto & streamMetadata = containerMetadata_.streams [streamIndex];
566+ streamMetadata .minPtsFromScan = std::min (
567+ streamMetadata .minPtsFromScan .value_or (INT64_MAX), packet->pts );
568+ streamMetadata .maxPtsFromScan = std::max (
569+ streamMetadata .maxPtsFromScan .value_or (INT64_MIN),
570570 packet->pts + packet->duration );
571- stream.numFramesFromScan = stream.numFramesFromScan .value_or (0 ) + 1 ;
571+ streamMetadata.numFramesFromScan =
572+ streamMetadata.numFramesFromScan .value_or (0 ) + 1 ;
572573
573574 FrameInfo frameInfo;
574575 frameInfo.pts = packet->pts ;
@@ -578,16 +579,17 @@ void VideoDecoder::scanFileAndUpdateMetadataAndIndex() {
578579 }
579580 streams_[streamIndex].allFrames .push_back (frameInfo);
580581 }
581- for (size_t i = 0 ; i < containerMetadata_.streams .size (); ++i) {
582- auto & streamMetadata = containerMetadata_.streams [i];
583- auto stream = formatContext_->streams [i];
582+ for (size_t streamIndex = 0 ; streamIndex < containerMetadata_.streams .size ();
583+ ++streamIndex) {
584+ auto & streamMetadata = containerMetadata_.streams [streamIndex];
585+ auto avStream = formatContext_->streams [streamIndex];
584586 if (streamMetadata.minPtsFromScan .has_value ()) {
585587 streamMetadata.minPtsSecondsFromScan =
586- *streamMetadata.minPtsFromScan * av_q2d (stream ->time_base );
588+ *streamMetadata.minPtsFromScan * av_q2d (avStream ->time_base );
587589 }
588590 if (streamMetadata.maxPtsFromScan .has_value ()) {
589591 streamMetadata.maxPtsSecondsFromScan =
590- *streamMetadata.maxPtsFromScan * av_q2d (stream ->time_base );
592+ *streamMetadata.maxPtsFromScan * av_q2d (avStream ->time_base );
591593 }
592594 }
593595 int ffmepgStatus =
@@ -597,23 +599,23 @@ void VideoDecoder::scanFileAndUpdateMetadataAndIndex() {
597599 " Could not seek file to pts=0: " +
598600 getFFMPEGErrorStringFromErrorCode (ffmepgStatus));
599601 }
600- for (auto & [streamIndex, stream ] : streams_) {
602+ for (auto & [streamIndex, streamInfo ] : streams_) {
601603 std::sort (
602- stream .keyFrames .begin (),
603- stream .keyFrames .end (),
604+ streamInfo .keyFrames .begin (),
605+ streamInfo .keyFrames .end (),
604606 [](const FrameInfo& frameInfo1, const FrameInfo& frameInfo2) {
605607 return frameInfo1.pts < frameInfo2.pts ;
606608 });
607609 std::sort (
608- stream .allFrames .begin (),
609- stream .allFrames .end (),
610+ streamInfo .allFrames .begin (),
611+ streamInfo .allFrames .end (),
610612 [](const FrameInfo& frameInfo1, const FrameInfo& frameInfo2) {
611613 return frameInfo1.pts < frameInfo2.pts ;
612614 });
613615
614- for (size_t i = 0 ; i < stream .allFrames .size (); ++i) {
615- if (i + 1 < stream .allFrames .size ()) {
616- stream .allFrames [i].nextPts = stream .allFrames [i + 1 ].pts ;
616+ for (size_t i = 0 ; i < streamInfo .allFrames .size (); ++i) {
617+ if (i + 1 < streamInfo .allFrames .size ()) {
618+ streamInfo .allFrames [i].nextPts = streamInfo .allFrames [i + 1 ].pts ;
617619 }
618620 }
619621 }
0 commit comments