BUG修正:多文件播放(loadMP4File)时,后续文件track_index对应错误 (#4386)

每个mp4文件的音视频的track_index不会完全一致,需要做对应处理。
This commit is contained in:
yingxiaodong 2025-08-09 17:26:00 +08:00 committed by GitHub
parent 57fede9508
commit 98ac328318
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -218,7 +218,10 @@ void MultiMP4Demuxer::openMP4(const string &files_string) {
CHECK(!_demuxers.empty());
_it = _demuxers.begin();
for (auto &track : _it->second->getTracks(false)) {
_tracks.emplace(track->getIndex(), track->clone());
auto clone_track(track->clone());
clone_track->setIndex(clone_track->getTrackType());
_tracks.emplace(clone_track->getIndex(), clone_track);
DebugL << "track index: " << track->getIndex() << " -> " << clone_track->getIndex();
}
}
@ -244,6 +247,7 @@ Frame::Ptr MultiMP4Demuxer::readFrame(bool &keyFrame, bool &eof) {
for (;;) {
auto ret = _it->second->readFrame(keyFrame, eof);
if (ret) {
ret->setIndex(ret->getTrackType());
auto it = _tracks.find(ret->getIndex());
if (it != _tracks.end()) {
auto ret2 = std::make_shared<FrameStamp>(ret);