hls/http-ts播放器新增性能测试模式
This commit is contained in:
parent
91c0a563c3
commit
8338773767
|
|
@ -76,15 +76,17 @@ void HlsPlayer::fetchSegment() {
|
||||||
}
|
}
|
||||||
return Socket::createSocket(poller, true);
|
return Socket::createSocket(poller, true);
|
||||||
});
|
});
|
||||||
|
auto benchmark_mode = (*this)[Client::kBenchmarkMode].as<int>();
|
||||||
_http_ts_player->setOnPacket([weak_self](const char *data, size_t len) {
|
if (!benchmark_mode) {
|
||||||
auto strong_self = weak_self.lock();
|
_http_ts_player->setOnPacket([weak_self](const char *data, size_t len) {
|
||||||
if (!strong_self) {
|
auto strong_self = weak_self.lock();
|
||||||
return;
|
if (!strong_self) {
|
||||||
}
|
return;
|
||||||
//收到ts包
|
}
|
||||||
strong_self->onPacket_l(data, len);
|
//收到ts包
|
||||||
});
|
strong_self->onPacket_l(data, len);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if (!(*this)[Client::kNetAdapter].empty()) {
|
if (!(*this)[Client::kNetAdapter].empty()) {
|
||||||
_http_ts_player->setNetAdapter((*this)[Client::kNetAdapter]);
|
_http_ts_player->setNetAdapter((*this)[Client::kNetAdapter]);
|
||||||
|
|
@ -349,7 +351,8 @@ void HlsPlayerImp::addTrackCompleted() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void HlsPlayerImp::onPlayResult(const SockException &ex) {
|
void HlsPlayerImp::onPlayResult(const SockException &ex) {
|
||||||
if (ex) {
|
auto benchmark_mode = (*this)[Client::kBenchmarkMode].as<int>();
|
||||||
|
if (ex || benchmark_mode) {
|
||||||
PlayerImp<HlsPlayer, PlayerBase>::onPlayResult(ex);
|
PlayerImp<HlsPlayer, PlayerBase>::onPlayResult(ex);
|
||||||
} else {
|
} else {
|
||||||
auto demuxer = std::make_shared<HlsDemuxer>();
|
auto demuxer = std::make_shared<HlsDemuxer>();
|
||||||
|
|
@ -364,6 +367,9 @@ void HlsPlayerImp::onShutdown(const SockException &ex) {
|
||||||
}
|
}
|
||||||
|
|
||||||
vector<Track::Ptr> HlsPlayerImp::getTracks(bool ready) const {
|
vector<Track::Ptr> HlsPlayerImp::getTracks(bool ready) const {
|
||||||
|
if (!_demuxer) {
|
||||||
|
return vector<Track::Ptr>();
|
||||||
|
}
|
||||||
return static_pointer_cast<HlsDemuxer>(_demuxer)->getTracks(ready);
|
return static_pointer_cast<HlsDemuxer>(_demuxer)->getTracks(ready);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ TsPlayer::TsPlayer(const EventPoller::Ptr &poller) : HttpTSPlayer(poller, true)
|
||||||
void TsPlayer::play(const string &url) {
|
void TsPlayer::play(const string &url) {
|
||||||
TraceL << "play http-ts: " << url;
|
TraceL << "play http-ts: " << url;
|
||||||
_play_result = false;
|
_play_result = false;
|
||||||
|
_benchmark_mode = (*this)[Client::kBenchmarkMode].as<int>();
|
||||||
setHeaderTimeout((*this)[Client::kTimeoutMS].as<int>());
|
setHeaderTimeout((*this)[Client::kTimeoutMS].as<int>());
|
||||||
setBodyTimeout((*this)[Client::kMediaTimeoutMS].as<int>());
|
setBodyTimeout((*this)[Client::kMediaTimeoutMS].as<int>());
|
||||||
setMethod("GET");
|
setMethod("GET");
|
||||||
|
|
@ -45,7 +46,9 @@ void TsPlayer::onResponseBody(const char *buf, size_t size) {
|
||||||
_play_result = true;
|
_play_result = true;
|
||||||
onPlayResult(SockException(Err_success, "play http-ts success"));
|
onPlayResult(SockException(Err_success, "play http-ts success"));
|
||||||
}
|
}
|
||||||
HttpTSPlayer::onResponseBody(buf, size);
|
if (!_benchmark_mode) {
|
||||||
|
HttpTSPlayer::onResponseBody(buf, size);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace mediakit
|
} // namespace mediakit
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
namespace mediakit {
|
namespace mediakit {
|
||||||
|
|
||||||
class TsPlayer : public HttpTSPlayer , public PlayerBase {
|
class TsPlayer : public HttpTSPlayer, public PlayerBase {
|
||||||
public:
|
public:
|
||||||
TsPlayer(const toolkit::EventPoller::Ptr &poller);
|
TsPlayer(const toolkit::EventPoller::Ptr &poller);
|
||||||
~TsPlayer() override = default;
|
~TsPlayer() override = default;
|
||||||
|
|
@ -37,6 +37,7 @@ protected:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool _play_result = true;
|
bool _play_result = true;
|
||||||
|
bool _benchmark_mode = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace mediakit
|
} // namespace mediakit
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,8 @@ void TsPlayerImp::addTrackCompleted() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void TsPlayerImp::onPlayResult(const SockException &ex) {
|
void TsPlayerImp::onPlayResult(const SockException &ex) {
|
||||||
if (ex) {
|
auto benchmark_mode = (*this)[Client::kBenchmarkMode].as<int>();
|
||||||
|
if (ex || benchmark_mode) {
|
||||||
PlayerImp<TsPlayer, PlayerBase>::onPlayResult(ex);
|
PlayerImp<TsPlayer, PlayerBase>::onPlayResult(ex);
|
||||||
} else {
|
} else {
|
||||||
auto demuxer = std::make_shared<HlsDemuxer>();
|
auto demuxer = std::make_shared<HlsDemuxer>();
|
||||||
|
|
@ -47,7 +48,10 @@ void TsPlayerImp::onShutdown(const SockException &ex) {
|
||||||
_demuxer = nullptr;
|
_demuxer = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
vector <Track::Ptr> TsPlayerImp::getTracks(bool ready) const {
|
vector<Track::Ptr> TsPlayerImp::getTracks(bool ready) const {
|
||||||
|
if (!_demuxer) {
|
||||||
|
return vector<Track::Ptr>();
|
||||||
|
}
|
||||||
return static_pointer_cast<HlsDemuxer>(_demuxer)->getTracks(ready);
|
return static_pointer_cast<HlsDemuxer>(_demuxer)->getTracks(ready);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue