mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-06-22 00:42:22 +08:00
format code style for pusher and player
This commit is contained in:
@@ -16,7 +16,7 @@ using namespace std;
|
||||
namespace mediakit {
|
||||
|
||||
PusherProxy::PusherProxy(const MediaSource::Ptr &src, int retry_count, const EventPoller::Ptr &poller)
|
||||
: MediaPusher(src, poller){
|
||||
: MediaPusher(src, poller) {
|
||||
_retry_count = retry_count;
|
||||
_on_close = [](const SockException &) {};
|
||||
_weak_src = src;
|
||||
@@ -65,7 +65,7 @@ void PusherProxy::publish(const string &dst_url) {
|
||||
strong_self->_live_status = 1;
|
||||
strong_self->rePublish(dst_url, (*failed_cnt)++);
|
||||
} else {
|
||||
//如果媒体源已经注销, 或达到了最大重试次数,回调关闭
|
||||
// 如果媒体源已经注销, 或达到了最大重试次数,回调关闭
|
||||
strong_self->_on_close(err);
|
||||
}
|
||||
});
|
||||
@@ -76,20 +76,20 @@ void PusherProxy::publish(const string &dst_url) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(*failed_cnt == 0){
|
||||
if (*failed_cnt == 0) {
|
||||
// 第一次重推更新时长
|
||||
strong_self->_live_secs += strong_self->_live_ticker.elapsedTime()/1000;
|
||||
strong_self->_live_secs += strong_self->_live_ticker.elapsedTime() / 1000;
|
||||
strong_self->_live_ticker.resetTime();
|
||||
TraceL<<" live secs "<<strong_self->_live_secs;
|
||||
TraceL << " live secs " << strong_self->_live_secs;
|
||||
}
|
||||
|
||||
auto src = strong_self->_weak_src.lock();
|
||||
//推流异常中断,延时重试播放
|
||||
// 推流异常中断,延时重试播放
|
||||
if (src && (*failed_cnt < strong_self->_retry_count || strong_self->_retry_count < 0)) {
|
||||
strong_self->_republish_count++;
|
||||
strong_self->rePublish(dst_url, (*failed_cnt)++);
|
||||
} else {
|
||||
//如果媒体源已经注销, 或达到了最大重试次数,回调关闭
|
||||
// 如果媒体源已经注销, 或达到了最大重试次数,回调关闭
|
||||
strong_self->_on_close(err);
|
||||
}
|
||||
});
|
||||
@@ -100,30 +100,33 @@ void PusherProxy::publish(const string &dst_url) {
|
||||
void PusherProxy::rePublish(const string &dst_url, int failed_cnt) {
|
||||
auto delay = MAX(2 * 1000, MIN(failed_cnt * 3000, 60 * 1000));
|
||||
weak_ptr<PusherProxy> weak_self = shared_from_this();
|
||||
_timer = std::make_shared<Timer>(delay / 1000.0f, [weak_self, dst_url, failed_cnt]() {
|
||||
//推流失败次数越多,则延时越长
|
||||
auto strong_self = weak_self.lock();
|
||||
if (!strong_self) {
|
||||
_timer = std::make_shared<Timer>(
|
||||
delay / 1000.0f,
|
||||
[weak_self, dst_url, failed_cnt]() {
|
||||
// 推流失败次数越多,则延时越长
|
||||
auto strong_self = weak_self.lock();
|
||||
if (!strong_self) {
|
||||
return false;
|
||||
}
|
||||
WarnL << "推流重试[" << failed_cnt << "]:" << dst_url;
|
||||
strong_self->MediaPusher::publish(dst_url);
|
||||
return false;
|
||||
}
|
||||
WarnL << "推流重试[" << failed_cnt << "]:" << dst_url;
|
||||
strong_self->MediaPusher::publish(dst_url);
|
||||
return false;
|
||||
}, getPoller());
|
||||
},
|
||||
getPoller());
|
||||
}
|
||||
|
||||
int PusherProxy::getStatus() {
|
||||
return _live_status.load();
|
||||
}
|
||||
uint64_t PusherProxy::getLiveSecs() {
|
||||
if(_live_status == 0){
|
||||
return _live_secs + _live_ticker.elapsedTime()/1000;
|
||||
}else{
|
||||
if (_live_status == 0) {
|
||||
return _live_secs + _live_ticker.elapsedTime() / 1000;
|
||||
} else {
|
||||
return _live_secs;
|
||||
}
|
||||
}
|
||||
|
||||
uint64_t PusherProxy::getRePublishCount(){
|
||||
uint64_t PusherProxy::getRePublishCount() {
|
||||
return _republish_count;
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,9 @@
|
||||
|
||||
namespace mediakit {
|
||||
|
||||
class PusherProxy : public MediaPusher, public std::enable_shared_from_this<PusherProxy> {
|
||||
class PusherProxy
|
||||
: public MediaPusher
|
||||
, public std::enable_shared_from_this<PusherProxy> {
|
||||
public:
|
||||
using Ptr = std::shared_ptr<PusherProxy>;
|
||||
|
||||
@@ -41,7 +43,7 @@ public:
|
||||
* 开始拉流播放
|
||||
* @param dstUrl 目标推流地址
|
||||
*/
|
||||
void publish(const std::string& dstUrl) override;
|
||||
void publish(const std::string &dstUrl) override;
|
||||
|
||||
int getStatus();
|
||||
uint64_t getLiveSecs();
|
||||
@@ -55,8 +57,8 @@ private:
|
||||
int _retry_count;
|
||||
toolkit::Timer::Ptr _timer;
|
||||
toolkit::Ticker _live_ticker;
|
||||
//0 表示正常 1 表示正在尝试推流
|
||||
std::atomic<int> _live_status;
|
||||
// 0 表示正常 1 表示正在尝试推流
|
||||
std::atomic<int> _live_status;
|
||||
std::atomic<uint64_t> _live_secs;
|
||||
std::atomic<uint64_t> _republish_count;
|
||||
std::weak_ptr<MediaSource> _weak_src;
|
||||
@@ -66,4 +68,4 @@ private:
|
||||
|
||||
} /* namespace mediakit */
|
||||
|
||||
#endif //SRC_DEVICE_PUSHERPROXY_H
|
||||
#endif // SRC_DEVICE_PUSHERPROXY_H
|
||||
|
||||
Reference in New Issue
Block a user