完善代码

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_mp4"],/* 是否MP4录制 */
allArgs["rtp_type"],
[invoker,val,headerOut](const SockException &ex,const string &key){
if(ex){
const_cast<Value &>(val)["code"] = API::OtherFailed;
const_cast<Value &>(val)["msg"] = ex.what();
}else{
const_cast<Value &>(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<int>();
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<Value &>(val)["code"] = API::OtherFailed;
const_cast<Value &>(val)["msg"] = ex.what();
val["code"] = API::OtherFailed;
val["msg"] = ex.what();
} else {
const_cast<Value &>(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<Value &>(val)["code"] = API::OtherFailed;
const_cast<Value &>(val)["msg"] = ex.what();
val["code"] = API::OtherFailed;
val["msg"] = ex.what();
}
const_cast<Value &>(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<Value &>(val)["code"] = API::OtherFailed;
const_cast<Value &>(val)["msg"] = ex.what();
val["code"] = API::OtherFailed;
val["msg"] = ex.what();
}else{
const_cast<Value &>(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<Value &>(val)["code"] = API::OtherFailed;
const_cast<Value &>(val)["msg"] = ex.what();
val["code"] = API::OtherFailed;
val["msg"] = ex.what();
}else{
const_cast<Value &>(val)["data"]["key"] = key;
val["data"]["key"] = key;
}
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,
const string &status,
const HttpClient::HttpHeader &header,
const string &strRecvBody) {
onceToken token(nullptr, [&]() {
const_cast<HttpRequester::Ptr &>(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) {

View File

@ -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<string &>(strMenu) = errMsg;
strMenu = errMsg;
}
StrCaseMap headerOut;
if (cookie) {

View File

@ -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<RecordInfo&>(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<RecordInfo &>(info).file_size = fileData.st_size;
info.file_size = fileData.st_size;
if (fileData.st_size < 1024) {
//录像文件太小,删除之
File::delete_file(strFileTmp.data());