mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-06-02 16:02:17 +08:00
AI automatically translates all comments in the code into English (#3917)
This commit is contained in:
@@ -85,7 +85,8 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
//此程序用于拉流播放性能测试
|
||||
// 此程序用于拉流播放性能测试 [AUTO-TRANSLATED:727e8fdb]
|
||||
// This program is used for pulling stream playback performance testing
|
||||
int main(int argc, char *argv[]) {
|
||||
CMD_main cmd_main;
|
||||
try {
|
||||
@@ -105,16 +106,20 @@ int main(int argc, char *argv[]) {
|
||||
auto delay_ms = cmd_main["delay"].as<int>();
|
||||
auto player_count = cmd_main["count"].as<int>();
|
||||
|
||||
//设置日志
|
||||
// 设置日志 [AUTO-TRANSLATED:50372045]
|
||||
// Set log
|
||||
Logger::Instance().add(std::make_shared<ConsoleChannel>("ConsoleChannel", logLevel));
|
||||
//启动异步日志线程
|
||||
// 启动异步日志线程 [AUTO-TRANSLATED:c93cc6f4]
|
||||
// Start asynchronous log thread
|
||||
Logger::Instance().setWriter(std::make_shared<AsyncLogWriter>());
|
||||
|
||||
//设置线程数
|
||||
// 设置线程数 [AUTO-TRANSLATED:22ec5cc9]
|
||||
// Set the number of threads
|
||||
EventPollerPool::setPoolSize(threads);
|
||||
WorkThreadPool::setPoolSize(threads);
|
||||
|
||||
//播放器map
|
||||
// 播放器map [AUTO-TRANSLATED:53b5b4c4]
|
||||
// Player map
|
||||
recursive_mutex mtx;
|
||||
unordered_map<void *, MediaPlayer::Ptr> player_map;
|
||||
|
||||
@@ -122,52 +127,66 @@ int main(int argc, char *argv[]) {
|
||||
auto player = std::make_shared<MediaPlayer>();
|
||||
auto tag = player.get();
|
||||
player->setOnCreateSocket([](const EventPoller::Ptr &poller) {
|
||||
//socket关闭互斥锁,提高性能
|
||||
// socket关闭互斥锁,提高性能 [AUTO-TRANSLATED:471fc644]
|
||||
// Socket close mutex, improve performance
|
||||
return Socket::createSocket(poller, false);
|
||||
});
|
||||
//设置播放失败监听
|
||||
// 设置播放失败监听 [AUTO-TRANSLATED:14e18272]
|
||||
// Set playback failure listener
|
||||
player->setOnPlayResult([&mtx, &player_map, tag](const SockException &ex) {
|
||||
if (ex) {
|
||||
//播放失败,移除之
|
||||
// 播放失败,移除之 [AUTO-TRANSLATED:e3e1ce5e]
|
||||
// Playback failed, remove it
|
||||
lock_guard<recursive_mutex> lck(mtx);
|
||||
player_map.erase(tag);
|
||||
}
|
||||
});
|
||||
//设置播放中途断开监听
|
||||
// 设置播放中途断开监听 [AUTO-TRANSLATED:b1aa9531]
|
||||
// Set playback interruption listener
|
||||
player->setOnShutdown([&mtx, &player_map, tag](const SockException &ex) {
|
||||
//播放中途失败,移除之
|
||||
// 播放中途失败,移除之 [AUTO-TRANSLATED:5cd7df25]
|
||||
// Playback interrupted, remove it
|
||||
lock_guard<recursive_mutex> lck(mtx);
|
||||
player_map.erase(tag);
|
||||
});
|
||||
//设置为性能测试模式
|
||||
// 设置为性能测试模式 [AUTO-TRANSLATED:96c16cc1]
|
||||
// Set to performance test mode
|
||||
(*player)[Client::kBenchmarkMode] = true;
|
||||
//设置rtsp拉流方式(在rtsp拉流时有效)
|
||||
// 设置rtsp拉流方式(在rtsp拉流时有效) [AUTO-TRANSLATED:521f7bbd]
|
||||
// Set RTSP pull mode (effective when pulling RTSP stream)
|
||||
(*player)[Client::kRtpType] = rtp_type;
|
||||
//提高压测性能与正确性
|
||||
// 提高压测性能与正确性 [AUTO-TRANSLATED:947f0ef8]
|
||||
// Improve stress test performance and accuracy
|
||||
(*player)[Client::kWaitTrackReady] = false;
|
||||
//发起播放请求
|
||||
// 发起播放请求 [AUTO-TRANSLATED:43e28453]
|
||||
// Initiate playback request
|
||||
player->play(in_url);
|
||||
|
||||
//保持对象不销毁
|
||||
// 保持对象不销毁 [AUTO-TRANSLATED:650977d0]
|
||||
// Keep the object from being destroyed
|
||||
lock_guard<recursive_mutex> lck(mtx);
|
||||
player_map.emplace(tag, std::move(player));
|
||||
|
||||
//休眠后再启动下一个播放,防止短时间海量链接
|
||||
// 休眠后再启动下一个播放,防止短时间海量链接 [AUTO-TRANSLATED:96c03767]
|
||||
// Sleep and then start the next playback to prevent massive connections in a short time
|
||||
if (delay_ms > 0) {
|
||||
usleep(1000 * delay_ms);
|
||||
}
|
||||
};
|
||||
|
||||
//添加这么多播放器
|
||||
// 添加这么多播放器 [AUTO-TRANSLATED:b93d3a9f]
|
||||
// Add so many players
|
||||
for (auto i = 0; i < player_count; ++i) {
|
||||
add_player();
|
||||
}
|
||||
|
||||
// 设置退出信号
|
||||
// 设置退出信号 [AUTO-TRANSLATED:02c7fa30]
|
||||
// Set exit signal
|
||||
static bool exit_flag = false;
|
||||
signal(SIGINT, [](int) { exit_flag = true; });
|
||||
while (!exit_flag) {
|
||||
//休眠一秒打印
|
||||
// 休眠一秒打印 [AUTO-TRANSLATED:239dc996]
|
||||
// Sleep for one second and print
|
||||
sleep(1);
|
||||
|
||||
size_t alive_player = 0;
|
||||
@@ -178,7 +197,8 @@ int main(int argc, char *argv[]) {
|
||||
InfoL << "在线播放器个数:" << alive_player;
|
||||
size_t re_try = player_count - alive_player;
|
||||
while (!exit_flag && re_try--) {
|
||||
//有些播放器播放失败了,那么我们重试添加
|
||||
// 有些播放器播放失败了,那么我们重试添加 [AUTO-TRANSLATED:adcec1af]
|
||||
// Some players failed to play, so we retry adding them
|
||||
add_player();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user