问题修正:解决loadMP4File崩溃问题时,引入的getOwnerPoller失败 (#4390)

This commit is contained in:
yingxiaodong
2025-08-11 20:35:10 +08:00
committed by GitHub
parent bbbfce9fe3
commit 8f3c01043f

View File

@@ -667,6 +667,14 @@ void MediaSourceEvent::onReaderChanged(MediaSource &sender, int size){
bool is_mp4_vod = sender.getMediaTuple().app == record_app;
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]() {
auto strong_sender = weak_sender.lock();
if (!strong_sender) {
@@ -700,7 +708,7 @@ void MediaSourceEvent::onReaderChanged(MediaSource &sender, int size){
strong_sender->close(false);
}
return false;
}, this->getOwnerPoller(sender));
}, specified_poller);
}
string MediaSourceEvent::getOriginUrl(MediaSource &sender) const {