Compare commits

...

2 Commits

Author SHA1 Message Date
xia-chu
41bdfa0755 addStreamProxy、addStreamPusherProxy接口确保线程负载均衡
Some checks failed
Android / build (push) Has been cancelled
CodeQL / Analyze (cpp) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Docker / build (push) Has been cancelled
Linux / build (push) Has been cancelled
macOS / build (push) Has been cancelled
Windows / build (push) Has been cancelled
2025-04-13 19:42:30 +08:00
xia-chu
21610f5ddf 修复bom头导致的编译问题 2025-04-13 19:42:30 +08:00
4 changed files with 43 additions and 39 deletions

View File

@ -1,4 +1,4 @@
#include <atomic>
#include <atomic>
static int test()
{

View File

@ -1,5 +1,5 @@
#ifdef APSTUDIO_INVOKED
#error This file is not editable by Visual C++.
#ifdef APSTUDIO_INVOKED
#error "This file is not editable by Visual C++."
#endif //APSTUDIO_INVOKED
#include "winres.h"

View File

@ -1191,25 +1191,27 @@ void installWebApi() {
auto dst_url = allArgs["dst_url"];
auto retry_count = allArgs["retry_count"].empty() ? -1 : allArgs["retry_count"].as<int>();
addStreamPusherProxy(allArgs["schema"],
allArgs["vhost"],
allArgs["app"],
allArgs["stream"],
allArgs["dst_url"],
retry_count,
allArgs["rtp_type"],
allArgs["timeout_sec"],
args,
[invoker, val, headerOut, dst_url](const SockException &ex, const string &key) mutable {
if (ex) {
val["code"] = API::OtherFailed;
val["msg"] = ex.what();
} else {
val["data"]["key"] = key;
InfoL << "Publish success, please play with player:" << dst_url;
}
invoker(200, headerOut, val.toStyledString());
});
EventPollerPool::Instance().getPoller(false)->async([=](){
addStreamPusherProxy(allArgs["schema"],
allArgs["vhost"],
allArgs["app"],
allArgs["stream"],
allArgs["dst_url"],
retry_count,
allArgs["rtp_type"],
allArgs["timeout_sec"],
args,
[invoker, val, headerOut, dst_url](const SockException &ex, const string &key) mutable {
if (ex) {
val["code"] = API::OtherFailed;
val["msg"] = ex.what();
} else {
val["data"]["key"] = key;
InfoL << "Publish success, please play with player:" << dst_url;
}
invoker(200, headerOut, val.toStyledString());
});
});
});
// 关闭推流代理 [AUTO-TRANSLATED:91602b75]
@ -1258,22 +1260,24 @@ void installWebApi() {
vhost = allArgs["vhost"];
}
auto tuple = MediaTuple { vhost, allArgs["app"], allArgs["stream"], "" };
addStreamProxy(tuple,
allArgs["url"],
retry_count,
option,
allArgs["rtp_type"],
allArgs["timeout_sec"],
args,
[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());
});
EventPollerPool::Instance().getPoller(false)->async([=]() {
addStreamProxy(tuple,
allArgs["url"],
retry_count,
option,
allArgs["rtp_type"],
allArgs["timeout_sec"],
args,
[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());
});
});
});
// 关闭拉流代理 [AUTO-TRANSLATED:5204f128]

View File

@ -1,4 +1,4 @@
/*
/*
* Copyright (c) 2016-present The ZLMediaKit project authors. All Rights Reserved.
*
* This file is part of ZLMediaKit(https://github.com/ZLMediaKit/ZLMediaKit).