mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-07-29 21:38:22 +08:00
问题修正:解决loadMP4File崩溃问题时,引入的getOwnerPoller失败 (#4390)
This commit is contained in:
@@ -667,6 +667,14 @@ void MediaSourceEvent::onReaderChanged(MediaSource &sender, int size){
|
|||||||
bool is_mp4_vod = sender.getMediaTuple().app == record_app;
|
bool is_mp4_vod = sender.getMediaTuple().app == record_app;
|
||||||
weak_ptr<MediaSource> weak_sender = sender.shared_from_this();
|
weak_ptr<MediaSource> weak_sender = sender.shared_from_this();
|
||||||
|
|
||||||
|
EventPoller::Ptr specified_poller;
|
||||||
|
try {
|
||||||
|
specified_poller = this->getOwnerPoller(sender);
|
||||||
|
}
|
||||||
|
catch (std::exception &ex) {
|
||||||
|
// 尝试获取 OwnerPoller,没有实现则使用默认 nullptr
|
||||||
|
// WarnL << ex.what();
|
||||||
|
}
|
||||||
_async_close_timer = std::make_shared<Timer>(stream_none_reader_delay / 1000.0f, [weak_sender, is_mp4_vod]() {
|
_async_close_timer = std::make_shared<Timer>(stream_none_reader_delay / 1000.0f, [weak_sender, is_mp4_vod]() {
|
||||||
auto strong_sender = weak_sender.lock();
|
auto strong_sender = weak_sender.lock();
|
||||||
if (!strong_sender) {
|
if (!strong_sender) {
|
||||||
@@ -700,7 +708,7 @@ void MediaSourceEvent::onReaderChanged(MediaSource &sender, int size){
|
|||||||
strong_sender->close(false);
|
strong_sender->close(false);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}, this->getOwnerPoller(sender));
|
}, specified_poller);
|
||||||
}
|
}
|
||||||
|
|
||||||
string MediaSourceEvent::getOriginUrl(MediaSource &sender) const {
|
string MediaSourceEvent::getOriginUrl(MediaSource &sender) const {
|
||||||
|
|||||||
Reference in New Issue
Block a user