完善代码

This commit is contained in:
xiongziliang 2021-03-14 10:29:17 +08:00
parent c0f4899950
commit be8403c31c
4 changed files with 30 additions and 30 deletions

View File

@ -644,12 +644,12 @@ void installWebApi() {
allArgs["enable_hls"],/* 是否hls转发 */ allArgs["enable_hls"],/* 是否hls转发 */
allArgs["enable_mp4"],/* 是否MP4录制 */ allArgs["enable_mp4"],/* 是否MP4录制 */
allArgs["rtp_type"], allArgs["rtp_type"],
[invoker,val,headerOut](const SockException &ex,const string &key){ [invoker,val,headerOut](const SockException &ex,const string &key) mutable{
if(ex){ if (ex) {
const_cast<Value &>(val)["code"] = API::OtherFailed; val["code"] = API::OtherFailed;
const_cast<Value &>(val)["msg"] = ex.what(); val["msg"] = ex.what();
}else{ } else {
const_cast<Value &>(val)["data"]["key"] = key; val["data"]["key"] = key;
} }
invoker(200, headerOut, val.toStyledString()); invoker(200, headerOut, val.toStyledString());
}); });
@ -708,12 +708,12 @@ void installWebApi() {
auto enable_mp4 = allArgs["enable_mp4"].as<int>(); auto enable_mp4 = allArgs["enable_mp4"].as<int>();
addFFmpegSource(allArgs["ffmpeg_cmd_key"], src_url, dst_url, timeout_ms, enable_hls, enable_mp4, addFFmpegSource(allArgs["ffmpeg_cmd_key"], src_url, dst_url, timeout_ms, enable_hls, enable_mp4,
[invoker, val, headerOut](const SockException &ex, const string &key) { [invoker, val, headerOut](const SockException &ex, const string &key) mutable{
if (ex) { if (ex) {
const_cast<Value &>(val)["code"] = API::OtherFailed; val["code"] = API::OtherFailed;
const_cast<Value &>(val)["msg"] = ex.what(); val["msg"] = ex.what();
} else { } else {
const_cast<Value &>(val)["data"]["key"] = key; val["data"]["key"] = key;
} }
invoker(200, headerOut, val.toStyledString()); invoker(200, headerOut, val.toStyledString());
}); });
@ -815,12 +815,12 @@ void installWebApi() {
} }
//src_port为空时则随机本地端口 //src_port为空时则随机本地端口
src->startSendRtp(allArgs["dst_url"], allArgs["dst_port"], allArgs["ssrc"], allArgs["is_udp"], allArgs["src_port"], [val, headerOut, invoker](uint16_t local_port, const SockException &ex){ src->startSendRtp(allArgs["dst_url"], allArgs["dst_port"], allArgs["ssrc"], allArgs["is_udp"], allArgs["src_port"], [val, headerOut, invoker](uint16_t local_port, const SockException &ex) mutable{
if (ex) { if (ex) {
const_cast<Value &>(val)["code"] = API::OtherFailed; val["code"] = API::OtherFailed;
const_cast<Value &>(val)["msg"] = ex.what(); val["msg"] = ex.what();
} }
const_cast<Value &>(val)["local_port"] = local_port; val["local_port"] = local_port;
invoker(200, headerOut, val.toStyledString()); invoker(200, headerOut, val.toStyledString());
}); });
}); });
@ -1116,12 +1116,12 @@ void installWebApi() {
(1000 * timeout_sec) - 500, (1000 * timeout_sec) - 500,
false, false,
false, false,
[invoker,val,headerOut](const SockException &ex,const string &key){ [invoker,val,headerOut](const SockException &ex,const string &key) mutable{
if(ex){ if(ex){
const_cast<Value &>(val)["code"] = API::OtherFailed; val["code"] = API::OtherFailed;
const_cast<Value &>(val)["msg"] = ex.what(); val["msg"] = ex.what();
}else{ }else{
const_cast<Value &>(val)["data"]["key"] = key; val["data"]["key"] = key;
} }
invoker(200, headerOut, val.toStyledString()); invoker(200, headerOut, val.toStyledString());
}); });
@ -1141,12 +1141,12 @@ void installWebApi() {
true,/* 开启hls转发 */ true,/* 开启hls转发 */
false,/* 禁用MP4录制 */ false,/* 禁用MP4录制 */
0,//rtp over tcp方式拉流 0,//rtp over tcp方式拉流
[invoker,val,headerOut](const SockException &ex,const string &key){ [invoker,val,headerOut](const SockException &ex,const string &key) mutable{
if(ex){ if(ex){
const_cast<Value &>(val)["code"] = API::OtherFailed; val["code"] = API::OtherFailed;
const_cast<Value &>(val)["msg"] = ex.what(); val["msg"] = ex.what();
}else{ }else{
const_cast<Value &>(val)["data"]["key"] = key; val["data"]["key"] = key;
} }
invoker(200, headerOut, val.toStyledString()); invoker(200, headerOut, val.toStyledString());
}); });

View File

@ -126,9 +126,9 @@ void do_http_hook(const string &url,const ArgsType &body,const function<void(con
requester->startRequester(url, [url, func, bodyStr, requester, pTicker](const SockException &ex, requester->startRequester(url, [url, func, bodyStr, requester, pTicker](const SockException &ex,
const string &status, const string &status,
const HttpClient::HttpHeader &header, const HttpClient::HttpHeader &header,
const string &strRecvBody) { const string &strRecvBody) mutable{
onceToken token(nullptr, [&]() { onceToken token(nullptr, [&]() mutable{
const_cast<HttpRequester::Ptr &>(requester).reset(); requester.reset();
}); });
parse_http_response(ex,status,header,strRecvBody,[&](const Value &obj,const string &err){ parse_http_response(ex,status,header,strRecvBody,[&](const Value &obj,const string &err){
if (func) { if (func) {

View File

@ -494,9 +494,9 @@ void HttpFileManager::onAccessPath(TcpSession &sender, Parser &parser, const Htt
return; return;
} }
//判断是否有权限访问该目录 //判断是否有权限访问该目录
canAccessPath(sender, parser, mediaInfo, true, [strMenu, cb](const string &errMsg, const HttpServerCookie::Ptr &cookie) { canAccessPath(sender, parser, mediaInfo, true, [strMenu, cb](const string &errMsg, const HttpServerCookie::Ptr &cookie) mutable{
if (!errMsg.empty()) { if (!errMsg.empty()) {
const_cast<string &>(strMenu) = errMsg; strMenu = errMsg;
} }
StrCaseMap headerOut; StrCaseMap headerOut;
if (cookie) { if (cookie) {

View File

@ -76,16 +76,16 @@ void MP4Recorder::asyncClose() {
auto strFileTmp = _strFileTmp; auto strFileTmp = _strFileTmp;
auto strFile = _strFile; auto strFile = _strFile;
auto info = _info; auto info = _info;
WorkThreadPool::Instance().getExecutor()->async([muxer,strFileTmp,strFile,info]() { WorkThreadPool::Instance().getExecutor()->async([muxer,strFileTmp,strFile,info]() mutable{
//获取文件录制时间放在关闭mp4之前是为了忽略关闭mp4执行时间 //获取文件录制时间放在关闭mp4之前是为了忽略关闭mp4执行时间
const_cast<RecordInfo&>(info).time_len = (float)(::time(NULL) - info.start_time); info.time_len = (float)(::time(NULL) - info.start_time);
//关闭mp4非常耗时所以要放在后台线程执行 //关闭mp4非常耗时所以要放在后台线程执行
muxer->closeMP4(); muxer->closeMP4();
//获取文件大小 //获取文件大小
struct stat fileData; struct stat fileData;
stat(strFileTmp.data(), &fileData); stat(strFileTmp.data(), &fileData);
const_cast<RecordInfo &>(info).file_size = fileData.st_size; info.file_size = fileData.st_size;
if (fileData.st_size < 1024) { if (fileData.st_size < 1024) {
//录像文件太小,删除之 //录像文件太小,删除之
File::delete_file(strFileTmp.data()); File::delete_file(strFileTmp.data());