Commit 8961ca16 by xiongziliang

修复可能无限递归的bug

parent a7e99b9d
...@@ -270,8 +270,18 @@ void FFmpegSource::onRegist(MediaSource &sender, bool regist){ ...@@ -270,8 +270,18 @@ void FFmpegSource::onRegist(MediaSource &sender, bool regist){
} }
void FFmpegSource::onGetMediaSource(const MediaSource::Ptr &src) { void FFmpegSource::onGetMediaSource(const MediaSource::Ptr &src) {
_listener = src->getListener(); auto listener = src->getListener();
if (listener.lock().get() != this) {
//防止多次进入onGetMediaSource函数导致无效递归调用的bug
src->setListener(shared_from_this()); src->setListener(shared_from_this());
_listener = listener;
} else {
WarnL << "多次触发onGetMediaSource事件:"
<< src->getSchema() << "/"
<< src->getVhost() << "/"
<< src->getApp() << "/"
<< src->getId();
}
} }
void FFmpegSnap::makeSnap(const string &play_url, const string &save_path, float timeout_sec, const function<void(bool)> &cb) { void FFmpegSnap::makeSnap(const string &play_url, const string &save_path, float timeout_sec, const function<void(bool)> &cb) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论