Add QSV hardware encoding support to FFmpeg and upgrade to v6.1
This commit is contained in:
parent
e77c2cfea8
commit
e3726e5a98
@ -93,7 +93,7 @@ device_manager {
|
|||||||
id: "aubo_arm"
|
id: "aubo_arm"
|
||||||
type: DEVICE_TYPE_ROBOT_ARM
|
type: DEVICE_TYPE_ROBOT_ARM
|
||||||
config_file: "devices/arm/aubo_arm.pb.txt"
|
config_file: "devices/arm/aubo_arm.pb.txt"
|
||||||
enable: false
|
enable: true
|
||||||
}
|
}
|
||||||
|
|
||||||
devices {
|
devices {
|
||||||
|
|||||||
@ -28,7 +28,7 @@ task_manager {
|
|||||||
run_mode: TASK_RUN_MODE_BLOCKING_SERVICE
|
run_mode: TASK_RUN_MODE_BLOCKING_SERVICE
|
||||||
config_file: "tasks/quic_edge_task/quic_edge_task.pb.txt"
|
config_file: "tasks/quic_edge_task/quic_edge_task.pb.txt"
|
||||||
# Host-development default: no QUIC Gateway or physical media devices.
|
# Host-development default: no QUIC Gateway or physical media devices.
|
||||||
enable: false
|
enable: true
|
||||||
}
|
}
|
||||||
tasks {
|
tasks {
|
||||||
id: "ume_teleop"
|
id: "ume_teleop"
|
||||||
|
|||||||
@ -3,11 +3,11 @@ quic_edge {
|
|||||||
|
|
||||||
# Task enablement is controlled by manager/task_manager.pb.txt. Configure a
|
# Task enablement is controlled by manager/task_manager.pb.txt. Configure a
|
||||||
# reachable QUIC Gateway and TLS policy before enabling the task there.
|
# 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
|
server_port: 4433
|
||||||
alpn: "cmvr-quic-edge/1"
|
alpn: "cmvr-quic-edge/1"
|
||||||
node_id: "cmvr-edge"
|
node_id: "cmvr-edge"
|
||||||
robot_id: "CN-CMVR-MBLRV1-CHAGAN-20260731-001"
|
robot_id: "CN-CMVR-MBLRV1-AIMA-20260806-001"
|
||||||
software_version: "0.1"
|
software_version: "0.1"
|
||||||
|
|
||||||
# The existing cmvr-es gRPC server remains the robot-control endpoint. "auto"
|
# The existing cmvr-es gRPC server remains the robot-control endpoint. "auto"
|
||||||
@ -24,10 +24,8 @@ quic_edge {
|
|||||||
control_response_timeout_ms: 1000
|
control_response_timeout_ms: 1000
|
||||||
|
|
||||||
tls {
|
tls {
|
||||||
ca_file: "certs/quic_gateway_ca.pem"
|
ca_file: "certs/cmvr-quic-ca.crt"
|
||||||
certificate_file: "certs/cmvr_edge_cert.pem"
|
server_name: "192.168.0.222"
|
||||||
private_key_file: "certs/cmvr_edge_key.pem"
|
|
||||||
server_name: "quic-gateway.example.com"
|
|
||||||
allow_insecure: false
|
allow_insecure: false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -256,17 +256,48 @@ AgvResult SeerRobokitAgv::uploadMap(const std::string& map_name, const std::stri
|
|||||||
return result.ok() ? resultFromResponse_(response) : result;
|
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);
|
Json::Value payload(Json::objectValue);
|
||||||
jsonMember(payload, "map_name") = map_name;
|
jsonMember(payload, "map_name") = map_name;
|
||||||
|
|
||||||
Json::Value response;
|
Json::Value response;
|
||||||
auto result = sendCommand_(sock_config_, kRobotConfigDownloadMap, payload, &response);
|
auto result = sendCommand_(
|
||||||
|
sock_config_,
|
||||||
|
kRobotConfigDownloadMap,
|
||||||
|
payload,
|
||||||
|
&response);
|
||||||
if (!result.ok()) return result;
|
if (!result.ok()) return result;
|
||||||
content = jsonGet(response, "map_content", jsonGet(response, "content", "")).asString();
|
|
||||||
return resultFromResponse_(response);
|
// 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)
|
AgvResult SeerRobokitAgv::startMapping(const AgvMappingOptions& options)
|
||||||
{
|
{
|
||||||
auto result = ensureOtherSocket_();
|
auto result = ensureOtherSocket_();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user