Add QSV hardware encoding support to FFmpeg and upgrade to v6.1

This commit is contained in:
linbo 2026-08-06 15:21:01 +08:00
parent e77c2cfea8
commit e3726e5a98
4 changed files with 41 additions and 12 deletions

View File

@ -93,7 +93,7 @@ device_manager {
id: "aubo_arm"
type: DEVICE_TYPE_ROBOT_ARM
config_file: "devices/arm/aubo_arm.pb.txt"
enable: false
enable: true
}
devices {

View File

@ -28,7 +28,7 @@ task_manager {
run_mode: TASK_RUN_MODE_BLOCKING_SERVICE
config_file: "tasks/quic_edge_task/quic_edge_task.pb.txt"
# Host-development default: no QUIC Gateway or physical media devices.
enable: false
enable: true
}
tasks {
id: "ume_teleop"

View File

@ -3,11 +3,11 @@ quic_edge {
# Task enablement is controlled by manager/task_manager.pb.txt. Configure a
# reachable QUIC Gateway and TLS policy before enabling the task there.
server_host: "quic-gateway.example.com"
server_host: "192.168.0.222"
server_port: 4433
alpn: "cmvr-quic-edge/1"
node_id: "cmvr-edge"
robot_id: "CN-CMVR-MBLRV1-CHAGAN-20260731-001"
robot_id: "CN-CMVR-MBLRV1-AIMA-20260806-001"
software_version: "0.1"
# The existing cmvr-es gRPC server remains the robot-control endpoint. "auto"
@ -24,10 +24,8 @@ quic_edge {
control_response_timeout_ms: 1000
tls {
ca_file: "certs/quic_gateway_ca.pem"
certificate_file: "certs/cmvr_edge_cert.pem"
private_key_file: "certs/cmvr_edge_key.pem"
server_name: "quic-gateway.example.com"
ca_file: "certs/cmvr-quic-ca.crt"
server_name: "192.168.0.222"
allow_insecure: false
}

View File

@ -256,17 +256,48 @@ AgvResult SeerRobokitAgv::uploadMap(const std::string& map_name, const std::stri
return result.ok() ? resultFromResponse_(response) : result;
}
AgvResult SeerRobokitAgv::downloadMap(const std::string& map_name, std::string& content) const
// AgvResult SeerRobokitAgv::downloadMap(const std::string& map_name, std::string& content) const
// {
// Json::Value payload(Json::objectValue);
// jsonMember(payload, "map_name") = map_name;
// Json::Value response;
// auto result = sendCommand_(sock_config_, kRobotConfigDownloadMap, payload, &response);
// if (!result.ok()) return result;
// content = jsonGet(response, "map_content", jsonGet(response, "content", "")).asString();
// return resultFromResponse_(response);
// }
AgvResult SeerRobokitAgv::downloadMap(
const std::string& map_name,
std::string& content) const
{
Json::Value payload(Json::objectValue);
jsonMember(payload, "map_name") = map_name;
Json::Value response;
auto result = sendCommand_(sock_config_, kRobotConfigDownloadMap, payload, &response);
auto result = sendCommand_(
sock_config_,
kRobotConfigDownloadMap,
payload,
&response);
if (!result.ok()) return result;
content = jsonGet(response, "map_content", jsonGet(response, "content", "")).asString();
// 4011 失败响应包含 ret_code成功响应本身就是完整地图 JSON。
if (hasNumericControllerRetCode(response)) {
return resultFromResponse_(response);
}
content = toJsonString_(response);
if (content.empty()) {
return AgvResult::failure(
AgvErrorCode::CommandFailed,
"SEER Robokit downloaded map content is empty");
}
return AgvResult::success();
}
AgvResult SeerRobokitAgv::startMapping(const AgvMappingOptions& options)
{
auto result = ensureOtherSocket_();