AI automatically translates all comments in the code into English (#3917)

This commit is contained in:
alex
2024-09-19 14:53:50 +08:00
committed by GitHub
parent 046de691cb
commit 4152dcd409
279 changed files with 10602 additions and 3038 deletions

View File

@@ -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();
}
}