Commit e76bc652 by xiongziliang

修复开启转协议后,无人观看掐流延时不定期的bug

parent f881108d
...@@ -240,6 +240,15 @@ int FFmpegSource::totalReaderCount(MediaSource &sender) { ...@@ -240,6 +240,15 @@ int FFmpegSource::totalReaderCount(MediaSource &sender) {
return sender.readerCount(); return sender.readerCount();
} }
void FFmpegSource::onNoneReader(MediaSource &sender){
auto listener = _listener.lock();
if(listener){
listener->onNoneReader(sender);
return;
}
MediaSourceEvent::onNoneReader(sender);
}
void FFmpegSource::onGetMediaSource(const MediaSource::Ptr &src) { void FFmpegSource::onGetMediaSource(const MediaSource::Ptr &src) {
_listener = src->getListener(); _listener = src->getListener();
src->setListener(shared_from_this()); src->setListener(shared_from_this());
......
...@@ -61,6 +61,8 @@ private: ...@@ -61,6 +61,8 @@ private:
//MediaSourceEvent override //MediaSourceEvent override
bool close(MediaSource &sender,bool force) override; bool close(MediaSource &sender,bool force) override;
int totalReaderCount(MediaSource &sender) override; int totalReaderCount(MediaSource &sender) override;
void onNoneReader(MediaSource &sender) override;
private: private:
Process _process; Process _process;
Timer::Ptr _timer; Timer::Ptr _timer;
......
...@@ -53,9 +53,9 @@ public: ...@@ -53,9 +53,9 @@ public:
virtual bool setupRecord(MediaSource &sender, Recorder::type type, bool start, const string &custom_path) { return false; }; virtual bool setupRecord(MediaSource &sender, Recorder::type type, bool start, const string &custom_path) { return false; };
// 获取录制状态 // 获取录制状态
virtual bool isRecording(MediaSource &sender, Recorder::type type) { return false; }; virtual bool isRecording(MediaSource &sender, Recorder::type type) { return false; };
private:
// 通知无人观看 // 通知无人观看
void onNoneReader(MediaSource &sender); virtual void onNoneReader(MediaSource &sender);
private: private:
Timer::Ptr _async_close_timer; Timer::Ptr _async_close_timer;
}; };
......
...@@ -278,6 +278,15 @@ int MultiMediaSourceMuxer::totalReaderCount(MediaSource &sender) { ...@@ -278,6 +278,15 @@ int MultiMediaSourceMuxer::totalReaderCount(MediaSource &sender) {
return listener->totalReaderCount(sender); return listener->totalReaderCount(sender);
} }
void MultiMediaSourceMuxer::onNoneReader(MediaSource &sender){
auto listener = _listener.lock();
if (!listener) {
MediaSourceEvent::onNoneReader(sender);
return;
}
listener->onNoneReader(sender);
}
bool MultiMediaSourceMuxer::setupRecord(MediaSource &sender, Recorder::type type, bool start, const string &custom_path) { bool MultiMediaSourceMuxer::setupRecord(MediaSource &sender, Recorder::type type, bool start, const string &custom_path) {
return _muxer->setupRecord(sender,type,start,custom_path); return _muxer->setupRecord(sender,type,start,custom_path);
} }
......
...@@ -132,6 +132,12 @@ public: ...@@ -132,6 +132,12 @@ public:
int totalReaderCount(MediaSource &sender) override; int totalReaderCount(MediaSource &sender) override;
/** /**
* 触发无人观看事件
* @param sender 触发者
*/
void onNoneReader(MediaSource &sender) override;
/**
* 设置录制状态 * 设置录制状态
* @param type 录制类型 * @param type 录制类型
* @param start 开始或停止 * @param start 开始或停止
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论