mirror of
https://gitee.com/xia-chu/ZLMediaKit.git
synced 2026-05-20 16:57:48 +08:00
BUG修正:多文件播放(loadMP4File)时,后续文件track_index对应错误 (#4386)
每个mp4文件的音视频的track_index不会完全一致,需要做对应处理。
This commit is contained in:
parent
57fede9508
commit
98ac328318
@ -218,7 +218,10 @@ void MultiMP4Demuxer::openMP4(const string &files_string) {
|
|||||||
CHECK(!_demuxers.empty());
|
CHECK(!_demuxers.empty());
|
||||||
_it = _demuxers.begin();
|
_it = _demuxers.begin();
|
||||||
for (auto &track : _it->second->getTracks(false)) {
|
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 (;;) {
|
for (;;) {
|
||||||
auto ret = _it->second->readFrame(keyFrame, eof);
|
auto ret = _it->second->readFrame(keyFrame, eof);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
ret->setIndex(ret->getTrackType());
|
||||||
auto it = _tracks.find(ret->getIndex());
|
auto it = _tracks.find(ret->getIndex());
|
||||||
if (it != _tracks.end()) {
|
if (it != _tracks.end()) {
|
||||||
auto ret2 = std::make_shared<FrameStamp>(ret);
|
auto ret2 = std::make_shared<FrameStamp>(ret);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user