diff --git a/server/WebApi.cpp b/server/WebApi.cpp index 39ecb6b1..640c7428 100755 --- a/server/WebApi.cpp +++ b/server/WebApi.cpp @@ -644,12 +644,12 @@ void installWebApi() { allArgs["enable_hls"],/* 是否hls转发 */ allArgs["enable_mp4"],/* 是否MP4录制 */ allArgs["rtp_type"], - [invoker,val,headerOut](const SockException &ex,const string &key){ - if(ex){ - const_cast(val)["code"] = API::OtherFailed; - const_cast(val)["msg"] = ex.what(); - }else{ - const_cast(val)["data"]["key"] = key; + [invoker,val,headerOut](const SockException &ex,const string &key) mutable{ + if (ex) { + val["code"] = API::OtherFailed; + val["msg"] = ex.what(); + } else { + val["data"]["key"] = key; } invoker(200, headerOut, val.toStyledString()); }); @@ -708,12 +708,12 @@ void installWebApi() { auto enable_mp4 = allArgs["enable_mp4"].as(); 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) { - const_cast(val)["code"] = API::OtherFailed; - const_cast(val)["msg"] = ex.what(); + val["code"] = API::OtherFailed; + val["msg"] = ex.what(); } else { - const_cast(val)["data"]["key"] = key; + val["data"]["key"] = key; } invoker(200, headerOut, val.toStyledString()); }); @@ -815,12 +815,12 @@ void installWebApi() { } //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) { - const_cast(val)["code"] = API::OtherFailed; - const_cast(val)["msg"] = ex.what(); + val["code"] = API::OtherFailed; + val["msg"] = ex.what(); } - const_cast(val)["local_port"] = local_port; + val["local_port"] = local_port; invoker(200, headerOut, val.toStyledString()); }); }); @@ -1116,12 +1116,12 @@ void installWebApi() { (1000 * timeout_sec) - 500, false, false, - [invoker,val,headerOut](const SockException &ex,const string &key){ + [invoker,val,headerOut](const SockException &ex,const string &key) mutable{ if(ex){ - const_cast(val)["code"] = API::OtherFailed; - const_cast(val)["msg"] = ex.what(); + val["code"] = API::OtherFailed; + val["msg"] = ex.what(); }else{ - const_cast(val)["data"]["key"] = key; + val["data"]["key"] = key; } invoker(200, headerOut, val.toStyledString()); }); @@ -1141,12 +1141,12 @@ void installWebApi() { true,/* 开启hls转发 */ false,/* 禁用MP4录制 */ 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){ - const_cast(val)["code"] = API::OtherFailed; - const_cast(val)["msg"] = ex.what(); + val["code"] = API::OtherFailed; + val["msg"] = ex.what(); }else{ - const_cast(val)["data"]["key"] = key; + val["data"]["key"] = key; } invoker(200, headerOut, val.toStyledString()); }); diff --git a/server/WebHook.cpp b/server/WebHook.cpp index 8da8c2dc..16f8ddf3 100755 --- a/server/WebHook.cpp +++ b/server/WebHook.cpp @@ -126,9 +126,9 @@ void do_http_hook(const string &url,const ArgsType &body,const functionstartRequester(url, [url, func, bodyStr, requester, pTicker](const SockException &ex, const string &status, const HttpClient::HttpHeader &header, - const string &strRecvBody) { - onceToken token(nullptr, [&]() { - const_cast(requester).reset(); + const string &strRecvBody) mutable{ + onceToken token(nullptr, [&]() mutable{ + requester.reset(); }); parse_http_response(ex,status,header,strRecvBody,[&](const Value &obj,const string &err){ if (func) { diff --git a/src/Http/HttpFileManager.cpp b/src/Http/HttpFileManager.cpp index d99a1f5c..735c053c 100644 --- a/src/Http/HttpFileManager.cpp +++ b/src/Http/HttpFileManager.cpp @@ -494,9 +494,9 @@ void HttpFileManager::onAccessPath(TcpSession &sender, Parser &parser, const Htt 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()) { - const_cast(strMenu) = errMsg; + strMenu = errMsg; } StrCaseMap headerOut; if (cookie) { diff --git a/src/Record/MP4Recorder.cpp b/src/Record/MP4Recorder.cpp index 6b33cd7b..19cbb783 100644 --- a/src/Record/MP4Recorder.cpp +++ b/src/Record/MP4Recorder.cpp @@ -76,16 +76,16 @@ void MP4Recorder::asyncClose() { auto strFileTmp = _strFileTmp; auto strFile = _strFile; auto info = _info; - WorkThreadPool::Instance().getExecutor()->async([muxer,strFileTmp,strFile,info]() { + WorkThreadPool::Instance().getExecutor()->async([muxer,strFileTmp,strFile,info]() mutable{ //获取文件录制时间,放在关闭mp4之前是为了忽略关闭mp4执行时间 - const_cast(info).time_len = (float)(::time(NULL) - info.start_time); + info.time_len = (float)(::time(NULL) - info.start_time); //关闭mp4非常耗时,所以要放在后台线程执行 muxer->closeMP4(); //获取文件大小 struct stat fileData; stat(strFileTmp.data(), &fileData); - const_cast(info).file_size = fileData.st_size; + info.file_size = fileData.st_size; if (fileData.st_size < 1024) { //录像文件太小,删除之 File::delete_file(strFileTmp.data());