适配ZLToolKit

This commit is contained in:
xiongziliang 2023-12-02 19:49:28 +08:00
parent d555f6038a
commit c12a6f0aed
11 changed files with 26 additions and 26 deletions

@ -1 +1 @@
Subproject commit 63d8521c31bdae6656d9ff0f5d55883618f5eaf1 Subproject commit e7cd1f3d1ec81014f92ab844915db60bb7e34bd5

View File

@ -343,7 +343,7 @@ void FFmpegSnap::makeSnap(const string &play_url, const string &save_path, float
// FFmpeg进程退出了可以取消定时器了 // FFmpeg进程退出了可以取消定时器了
delayTask->cancel(); delayTask->cancel();
// 执行回调函数 // 执行回调函数
bool success = process->exit_code() == 0 && File::fileSize(save_path.data()); bool success = process->exit_code() == 0 && File::fileSize(save_path);
cb(success, (!success && !log_file.empty()) ? File::loadFile(log_file.data()) : ""); cb(success, (!success && !log_file.empty()) ? File::loadFile(log_file) : "");
}); });
} }

View File

@ -65,7 +65,7 @@ static int runChildProcess(string cmd, string log_file) {
} }
//重定向shell日志至文件 //重定向shell日志至文件
auto fp = File::create_file(log_file.data(), "ab"); auto fp = File::create_file(log_file, "ab");
if (!fp) { if (!fp) {
fprintf(stderr, "open log file %s failed:%d(%s)\r\n", log_file.data(), get_uv_error(), get_uv_errmsg()); fprintf(stderr, "open log file %s failed:%d(%s)\r\n", log_file.data(), get_uv_error(), get_uv_errmsg());
} else { } else {
@ -121,7 +121,7 @@ void Process::run(const string &cmd, string log_file) {
} }
//重定向shell日志至文件 //重定向shell日志至文件
auto fp = File::create_file(log_file.data(), "ab"); auto fp = File::create_file(log_file, "ab");
if (!fp) { if (!fp) {
fprintf(stderr, "open log file %s failed:%d(%s)\r\n", log_file.data(), get_uv_error(), get_uv_errmsg()); fprintf(stderr, "open log file %s failed:%d(%s)\r\n", log_file.data(), get_uv_error(), get_uv_errmsg());
} else { } else {

View File

@ -1547,7 +1547,7 @@ void installWebApi() {
} }
val["path"] = record_path; val["path"] = record_path;
if (!recording) { if (!recording) {
val["code"] = File::delete_file(record_path.data()); val["code"] = File::delete_file(record_path);
return; return;
} }
File::scanDir(record_path, [](const string &path, bool is_dir) { File::scanDir(record_path, [](const string &path, bool is_dir) {
@ -1555,7 +1555,7 @@ void installWebApi() {
return true; return true;
} }
if (path.find("./") != std::string::npos) { if (path.find("./") != std::string::npos) {
File::delete_file(path.data()); File::delete_file(path);
} else { } else {
TraceL << "Ignore tmp mp4 file: " << path; TraceL << "Ignore tmp mp4 file: " << path;
} }
@ -1608,7 +1608,7 @@ void installWebApi() {
static bool s_snap_success_once = false; static bool s_snap_success_once = false;
StrCaseMap headerOut; StrCaseMap headerOut;
GET_CONFIG(string, defaultSnap, API::kDefaultSnap); GET_CONFIG(string, defaultSnap, API::kDefaultSnap);
if (!File::fileSize(snap_path.data())) { if (!File::fileSize(snap_path)) {
if (!err_msg.empty() && (!s_snap_success_once || defaultSnap.empty())) { if (!err_msg.empty() && (!s_snap_success_once || defaultSnap.empty())) {
//重来没截图成功过或者默认截图图片为空那么直接返回FFmpeg错误日志 //重来没截图成功过或者默认截图图片为空那么直接返回FFmpeg错误日志
headerOut["Content-Type"] = HttpFileManager::getContentType(".txt"); headerOut["Content-Type"] = HttpFileManager::getContentType(".txt");
@ -1670,7 +1670,7 @@ void installWebApi() {
if (!have_old_snap) { if (!have_old_snap) {
//无过期截图,生成一个空文件,目的是顺便创建文件夹路径 //无过期截图,生成一个空文件,目的是顺便创建文件夹路径
//同时防止在FFmpeg生成截图途中不停的尝试调用该api多次启动FFmpeg进程 //同时防止在FFmpeg生成截图途中不停的尝试调用该api多次启动FFmpeg进程
auto file = File::create_file(new_snap.data(), "wb"); auto file = File::create_file(new_snap, "wb");
if (file) { if (file) {
fclose(file); fclose(file);
} }
@ -1681,10 +1681,10 @@ void installWebApi() {
FFmpegSnap::makeSnap(allArgs["url"], new_snap_tmp, allArgs["timeout_sec"], [invoker, allArgs, new_snap, new_snap_tmp](bool success, const string &err_msg) { FFmpegSnap::makeSnap(allArgs["url"], new_snap_tmp, allArgs["timeout_sec"], [invoker, allArgs, new_snap, new_snap_tmp](bool success, const string &err_msg) {
if (!success) { if (!success) {
//生成截图失败,可能残留空文件 //生成截图失败,可能残留空文件
File::delete_file(new_snap_tmp.data()); File::delete_file(new_snap_tmp);
} else { } else {
//临时文件改成正式文件 //临时文件改成正式文件
File::delete_file(new_snap.data()); File::delete_file(new_snap);
rename(new_snap_tmp.data(), new_snap.data()); rename(new_snap_tmp.data(), new_snap.data());
} }
responseSnap(new_snap, allArgs.getParser().getHeader(), invoker, err_msg); responseSnap(new_snap, allArgs.getParser().getHeader(), invoker, err_msg);

View File

@ -263,7 +263,7 @@ int start_main(int argc,char *argv[]) {
//加载配置文件,如果配置文件不存在就创建一个 //加载配置文件,如果配置文件不存在就创建一个
loadIniConfig(g_ini_file.data()); loadIniConfig(g_ini_file.data());
if (!File::is_dir(ssl_file.data())) { if (!File::is_dir(ssl_file)) {
//不是文件夹,加载证书,证书包含公钥和私钥 //不是文件夹,加载证书,证书包含公钥和私钥
SSL_Initor::Instance().loadCertificate(ssl_file.data()); SSL_Initor::Instance().loadCertificate(ssl_file.data());
} else { } else {

View File

@ -25,7 +25,7 @@ void HttpDownloader::startDownload(const string &url, const string &file_path, b
if (_file_path.empty()) { if (_file_path.empty()) {
_file_path = exeDir() + "HttpDownloader/" + MD5(url).hexdigest(); _file_path = exeDir() + "HttpDownloader/" + MD5(url).hexdigest();
} }
_save_file = File::create_file(_file_path.data(), append ? "ab" : "wb"); _save_file = File::create_file(_file_path, append ? "ab" : "wb");
if (!_save_file) { if (!_save_file) {
auto strErr = StrPrinter << "打开文件失败:" << file_path << endl; auto strErr = StrPrinter << "打开文件失败:" << file_path << endl;
throw std::runtime_error(strErr); throw std::runtime_error(strErr);

View File

@ -192,7 +192,7 @@ static bool makeFolderMenu(const string &httpPath, const string &strFullPath, st
last_dir_name = split(strPathPrefix, "/").back(); last_dir_name = split(strPathPrefix, "/").back();
} }
if (!File::is_dir(strPathPrefix.data())) { if (!File::is_dir(strPathPrefix)) {
return false; return false;
} }
stringstream ss; stringstream ss;
@ -250,7 +250,7 @@ static bool makeFolderMenu(const string &httpPath, const string &strFullPath, st
int i = 0; int i = 0;
for (auto &pr :file_map) { for (auto &pr :file_map) {
auto &strAbsolutePath = pr.second.second; auto &strAbsolutePath = pr.second.second;
bool isDir = File::is_dir(strAbsolutePath.data()); bool isDir = File::is_dir(strAbsolutePath);
ss << "<li><span>" << i++ << "</span>\t"; ss << "<li><span>" << i++ << "</span>\t";
ss << "<a href=\""; ss << "<a href=\"";
//路径链接地址 //路径链接地址
@ -271,7 +271,7 @@ static bool makeFolderMenu(const string &httpPath, const string &strFullPath, st
continue; continue;
} }
//是文件 //是文件
auto fileSize = File::fileSize(strAbsolutePath.data()); auto fileSize = File::fileSize(strAbsolutePath);
if (fileSize < 1024) { if (fileSize < 1024) {
ss << " (" << fileSize << "B)" << endl; ss << " (" << fileSize << "B)" << endl;
} else if (fileSize < 1024 * 1024) { } else if (fileSize < 1024 * 1024) {
@ -467,7 +467,7 @@ static string pathCat(const string &a, const string &b){
*/ */
static void accessFile(Session &sender, const Parser &parser, const MediaInfo &media_info, const string &file_path, const HttpFileManager::invoker &cb) { static void accessFile(Session &sender, const Parser &parser, const MediaInfo &media_info, const string &file_path, const HttpFileManager::invoker &cb) {
bool is_hls = end_with(file_path, kHlsSuffix) || end_with(file_path, kHlsFMP4Suffix); bool is_hls = end_with(file_path, kHlsSuffix) || end_with(file_path, kHlsFMP4Suffix);
if (!is_hls && !File::fileExist(file_path.data())) { if (!is_hls && !File::fileExist(file_path)) {
//文件不存在且不是hls,那么直接返回404 //文件不存在且不是hls,那么直接返回404
sendNotFound(cb); sendNotFound(cb);
return; return;
@ -628,12 +628,12 @@ void HttpFileManager::onAccessPath(Session &sender, Parser &parser, const HttpFi
return; return;
} }
//访问的是文件夹 //访问的是文件夹
if (File::is_dir(file_path.data())) { if (File::is_dir(file_path)) {
auto indexFile = searchIndexFile(file_path); auto indexFile = searchIndexFile(file_path);
if (!indexFile.empty()) { if (!indexFile.empty()) {
// 发现该文件夹下有index文件 // 发现该文件夹下有index文件
file_path = pathCat(file_path, indexFile); file_path = pathCat(file_path, indexFile);
if (!File::is_dir(file_path.data())) { if (!File::is_dir(file_path)) {
// 不是文件夹 // 不是文件夹
parser.setUrl(pathCat(parser.url(), indexFile)); parser.setUrl(pathCat(parser.url(), indexFile));
accessFile(sender, parser, media_info, file_path, cb); accessFile(sender, parser, media_info, file_path, cb);

View File

@ -85,10 +85,10 @@ void MP4Recorder::asyncClose() {
TraceL << "Closed tmp mp4 file: " << full_path_tmp; TraceL << "Closed tmp mp4 file: " << full_path_tmp;
if (!full_path_tmp.empty()) { if (!full_path_tmp.empty()) {
// 获取文件大小 // 获取文件大小
info.file_size = File::fileSize(full_path_tmp.data()); info.file_size = File::fileSize(full_path_tmp);
if (info.file_size < 1024) { if (info.file_size < 1024) {
// 录像文件太小,删除之 // 录像文件太小,删除之
File::delete_file(full_path_tmp.data()); File::delete_file(full_path_tmp);
return; return;
} }
// 临时文件名改成正式文件名防止mp4未完成时被访问 // 临时文件名改成正式文件名防止mp4未完成时被访问

View File

@ -174,7 +174,7 @@ void FlvRecorder::startRecord(const EventPoller::Ptr &poller, const RtmpMediaSou
} }
}); });
//新建文件 //新建文件
_file.reset(File::create_file(file_path.data(), "wb"), [fileBuf](FILE *fp) { _file.reset(File::create_file(file_path, "wb"), [fileBuf](FILE *fp) {
if (fp) { if (fp) {
fflush(fp); fflush(fp);
fclose(fp); fclose(fp);

View File

@ -33,7 +33,7 @@ RtpProcess::RtpProcess(const string &stream_id) {
GET_CONFIG(string, dump_dir, RtpProxy::kDumpDir); GET_CONFIG(string, dump_dir, RtpProxy::kDumpDir);
{ {
FILE *fp = !dump_dir.empty() ? File::create_file(File::absolutePath(_media_info.stream + ".rtp", dump_dir).data(), "wb") : nullptr; FILE *fp = !dump_dir.empty() ? File::create_file(File::absolutePath(_media_info.stream + ".rtp", dump_dir), "wb") : nullptr;
if (fp) { if (fp) {
_save_file_rtp.reset(fp, [](FILE *fp) { _save_file_rtp.reset(fp, [](FILE *fp) {
fclose(fp); fclose(fp);
@ -42,7 +42,7 @@ RtpProcess::RtpProcess(const string &stream_id) {
} }
{ {
FILE *fp = !dump_dir.empty() ? File::create_file(File::absolutePath(_media_info.stream + ".video", dump_dir).data(), "wb") : nullptr; FILE *fp = !dump_dir.empty() ? File::create_file(File::absolutePath(_media_info.stream + ".video", dump_dir), "wb") : nullptr;
if (fp) { if (fp) {
_save_file_video.reset(fp, [](FILE *fp) { _save_file_video.reset(fp, [](FILE *fp) {
fclose(fp); fclose(fp);

View File

@ -138,7 +138,7 @@ int main(int argc, char *argv[]) {
auto parse_urls = [&]() { auto parse_urls = [&]() {
// 获取输入源列表 // 获取输入源列表
auto inputs = ::split(toolkit::File::loadFile(in_urls.c_str()), "\n"); auto inputs = ::split(toolkit::File::loadFile(in_urls), "\n");
for(auto &url : inputs){ for(auto &url : inputs){
if(url.empty() || url.find("://") == std::string::npos) { if(url.empty() || url.find("://") == std::string::npos) {
continue; continue;
@ -147,7 +147,7 @@ int main(int argc, char *argv[]) {
input_urls.emplace_back(input_url); input_urls.emplace_back(input_url);
} }
// 获取输出源列表 // 获取输出源列表
auto outputs = ::split(toolkit::File::loadFile(out_urls.c_str()), "\n"); auto outputs = ::split(toolkit::File::loadFile(out_urls), "\n");
for(auto &url : outputs){ for(auto &url : outputs){
if(url.empty() || url.find("://") == std::string::npos){ if(url.empty() || url.find("://") == std::string::npos){
continue; continue;