@@ -1060,11 +1060,16 @@ FileInformation::FileInformation (SignalServer* signalServer, const QString &Fil
1060
1060
QObject::connect (m_mediaParser, &QAVPlayer::audioFrame, m_mediaParser, [this ](const QAVAudioFrame &frame) {
1061
1061
qDebug () << " audio frame came from: " << frame.filterName () << frame.stream () << frame.stream ().index ();
1062
1062
1063
- if (frame.filterName () == astats && frame.stream ().index () < Stats.size ()) {
1064
- auto stat = Stats[frame.stream ().index ()];
1063
+ if (frame.filterName () == astats) {
1064
+ auto it = std::find_if (Stats.begin (), Stats.end (), [&](CommonStats* stat) {
1065
+ return stat->streamIndex == frame.stream ().index ();
1066
+ });
1065
1067
1066
- stat->TimeStampFromFrame (frame, stat->x_Current );
1067
- stat->StatsFromFrame (frame, 0 , 0 );
1068
+ if (it != Stats.end ()) {
1069
+ auto stat = *it;
1070
+ stat->TimeStampFromFrame (frame, stat->x_Current );
1071
+ stat->StatsFromFrame (frame, 0 , 0 );
1072
+ }
1068
1073
}
1069
1074
},
1070
1075
// Qt::QueuedConnection
@@ -1074,12 +1079,16 @@ FileInformation::FileInformation (SignalServer* signalServer, const QString &Fil
1074
1079
QObject::connect (m_mediaParser, &QAVPlayer::videoFrame, m_mediaParser, [this ](const QAVVideoFrame &frame) {
1075
1080
qDebug () << " video frame came from: " << frame.filterName () << frame.stream () << frame.stream ().index ();
1076
1081
1077
- if (frame.filterName () == stats && frame.stream ().index () < Stats.size ()) {
1078
- auto stat = Stats[frame.stream ().index ()];
1079
-
1080
- stat->TimeStampFromFrame (frame, stat->x_Current );
1081
- stat->StatsFromFrame (frame, frame.size ().width (), frame.size ().height ());
1082
+ if (frame.filterName () == stats) {
1083
+ auto it = std::find_if (Stats.begin (), Stats.end (), [&](CommonStats* stat) {
1084
+ return stat->streamIndex == frame.stream ().index ();
1085
+ });
1082
1086
1087
+ if (it != Stats.end ()) {
1088
+ auto stat = *it;
1089
+ stat->TimeStampFromFrame (frame, stat->x_Current );
1090
+ stat->StatsFromFrame (frame, frame.size ().width (), frame.size ().height ());
1091
+ }
1083
1092
} else if (frame.filterName ().startsWith (panelOutputPrefix)) {
1084
1093
auto indexString = frame.filterName ().mid (panelOutputPrefix.length ());
1085
1094
auto index = indexString.toInt ();
0 commit comments