修改hls拉流后closestream崩溃的bug (#1678)
* 修改hls拉流后closestream崩溃的bug Co-authored-by: 夏楚 <771730766@qq.com>
This commit is contained in:
parent
b0beea7781
commit
59dcd03b70
|
|
@ -378,7 +378,8 @@ void HlsPlayerImp::onPlayResult(const SockException &ex) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void HlsPlayerImp::onShutdown(const SockException &ex) {
|
void HlsPlayerImp::onShutdown(const SockException &ex) {
|
||||||
if (_demuxer) {
|
while (_demuxer) {
|
||||||
|
try {
|
||||||
std::weak_ptr<HlsPlayerImp> weak_self = static_pointer_cast<HlsPlayerImp>(shared_from_this());
|
std::weak_ptr<HlsPlayerImp> weak_self = static_pointer_cast<HlsPlayerImp>(shared_from_this());
|
||||||
static_pointer_cast<HlsDemuxer>(_demuxer)->pushTask([weak_self, ex]() {
|
static_pointer_cast<HlsDemuxer>(_demuxer)->pushTask([weak_self, ex]() {
|
||||||
auto strong_self = weak_self.lock();
|
auto strong_self = weak_self.lock();
|
||||||
|
|
@ -387,10 +388,13 @@ void HlsPlayerImp::onShutdown(const SockException &ex) {
|
||||||
strong_self->onShutdown(ex);
|
strong_self->onShutdown(ex);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
return;
|
||||||
PlayerImp<HlsPlayer, PlayerBase>::onShutdown(ex);
|
} catch (...) {
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
PlayerImp<HlsPlayer, PlayerBase>::onShutdown(ex);
|
||||||
|
}
|
||||||
|
|
||||||
vector<Track::Ptr> HlsPlayerImp::getTracks(bool ready) const {
|
vector<Track::Ptr> HlsPlayerImp::getTracks(bool ready) const {
|
||||||
if (!_demuxer) {
|
if (!_demuxer) {
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,8 @@ void TsPlayerImp::onPlayResult(const SockException &ex) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void TsPlayerImp::onShutdown(const SockException &ex) {
|
void TsPlayerImp::onShutdown(const SockException &ex) {
|
||||||
if (_demuxer) {
|
while (_demuxer) {
|
||||||
|
try {
|
||||||
std::weak_ptr<TsPlayerImp> weak_self = static_pointer_cast<TsPlayerImp>(shared_from_this());
|
std::weak_ptr<TsPlayerImp> weak_self = static_pointer_cast<TsPlayerImp>(shared_from_this());
|
||||||
static_pointer_cast<HlsDemuxer>(_demuxer)->pushTask([weak_self, ex]() {
|
static_pointer_cast<HlsDemuxer>(_demuxer)->pushTask([weak_self, ex]() {
|
||||||
auto strong_self = weak_self.lock();
|
auto strong_self = weak_self.lock();
|
||||||
|
|
@ -54,10 +55,13 @@ void TsPlayerImp::onShutdown(const SockException &ex) {
|
||||||
strong_self->onShutdown(ex);
|
strong_self->onShutdown(ex);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
return;
|
||||||
PlayerImp<TsPlayer, PlayerBase>::onShutdown(ex);
|
} catch (...) {
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
PlayerImp<TsPlayer, PlayerBase>::onShutdown(ex);
|
||||||
|
}
|
||||||
|
|
||||||
vector<Track::Ptr> TsPlayerImp::getTracks(bool ready) const {
|
vector<Track::Ptr> TsPlayerImp::getTracks(bool ready) const {
|
||||||
if (!_demuxer) {
|
if (!_demuxer) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue