mirror of
https://gitee.com/xia-chu/ZLMediaKit.git
synced 2026-05-19 16:27:50 +08:00
问题修正:解决loadMP4File崩溃问题时,引入的getOwnerPoller失败 (#4390)
Some checks failed
Android / build (push) Has been cancelled
CodeQL / Analyze (cpp) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Docker / build (push) Has been cancelled
Linux / build (push) Has been cancelled
macOS / build (push) Has been cancelled
Windows / build (push) Has been cancelled
Some checks failed
Android / build (push) Has been cancelled
CodeQL / Analyze (cpp) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Docker / build (push) Has been cancelled
Linux / build (push) Has been cancelled
macOS / build (push) Has been cancelled
Windows / build (push) Has been cancelled
This commit is contained in:
parent
bbbfce9fe3
commit
8f3c01043f
@ -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 {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user