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