Skip to content

Commit 6d928c5

Browse files
committed
Resolve agent video URLs against the reached agent base, and add camera orientation settings
The agent now advertises same-origin relative WHEP/HLS paths. The GCS resolves a relative path against the agent base it reached (the LAN-pair proxy origin) and leaves an absolute URL from an older agent untouched, so a node's video is reachable off-LAN and mixed-content-safe under HTTPS. Adds a camera-orientation (rotation/hflip/vflip) settings section, the heartbeat HLS field, and regenerated plugin contract mirrors.
1 parent 822c1f3 commit 6d928c5

29 files changed

Lines changed: 611 additions & 42 deletions

locales/de.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1419,7 +1419,17 @@
14191419
"codecPrefHint": "Auto picks H.264 for browser compatibility; H.265 needs the receive side to also speak it. Applies at the next pipeline start.",
14201420
"codecPrefAuto": "Auto",
14211421
"bitrateLabel": "Encode bitrate (kbps)",
1422-
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start."
1422+
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start.",
1423+
"orientationTitle": "Image orientation",
1424+
"orientationHint": "Rotate or flip the camera image. Applied on the encode pipeline before compression; applies at the next pipeline start.",
1425+
"rotationLabel": "Rotation",
1426+
"rotationHint": "Clockwise rotation in 90° steps.",
1427+
"rotation0": "",
1428+
"rotationDefault": "0° (default)",
1429+
"hflipLabel": "Horizontal flip",
1430+
"hflipHint": "Mirror the image left–right (helps a downward camera mounted upside-down).",
1431+
"vflipLabel": "Vertical flip",
1432+
"vflipHint": "Mirror the image top–bottom."
14231433
},
14241434
"profile": {
14251435
"title": "Profile",

locales/en.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1419,7 +1419,17 @@
14191419
"codecPrefHint": "Auto picks H.264 for browser compatibility; H.265 needs the receive side to also speak it. Applies at the next pipeline start.",
14201420
"codecPrefAuto": "Auto",
14211421
"bitrateLabel": "Encode bitrate (kbps)",
1422-
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start."
1422+
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start.",
1423+
"orientationTitle": "Image orientation",
1424+
"orientationHint": "Rotate or flip the camera image. Applied on the encode pipeline before compression; applies at the next pipeline start.",
1425+
"rotationLabel": "Rotation",
1426+
"rotationHint": "Clockwise rotation in 90° steps.",
1427+
"rotation0": "",
1428+
"rotationDefault": "0° (default)",
1429+
"hflipLabel": "Horizontal flip",
1430+
"hflipHint": "Mirror the image left–right (helps a downward camera mounted upside-down).",
1431+
"vflipLabel": "Vertical flip",
1432+
"vflipHint": "Mirror the image top–bottom."
14231433
},
14241434
"profile": {
14251435
"title": "Profile",

locales/es.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1419,7 +1419,17 @@
14191419
"codecPrefHint": "Auto picks H.264 for browser compatibility; H.265 needs the receive side to also speak it. Applies at the next pipeline start.",
14201420
"codecPrefAuto": "Auto",
14211421
"bitrateLabel": "Encode bitrate (kbps)",
1422-
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start."
1422+
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start.",
1423+
"orientationTitle": "Image orientation",
1424+
"orientationHint": "Rotate or flip the camera image. Applied on the encode pipeline before compression; applies at the next pipeline start.",
1425+
"rotationLabel": "Rotation",
1426+
"rotationHint": "Clockwise rotation in 90° steps.",
1427+
"rotation0": "",
1428+
"rotationDefault": "0° (default)",
1429+
"hflipLabel": "Horizontal flip",
1430+
"hflipHint": "Mirror the image left–right (helps a downward camera mounted upside-down).",
1431+
"vflipLabel": "Vertical flip",
1432+
"vflipHint": "Mirror the image top–bottom."
14231433
},
14241434
"profile": {
14251435
"title": "Profile",

locales/fr.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1419,7 +1419,17 @@
14191419
"codecPrefHint": "Auto picks H.264 for browser compatibility; H.265 needs the receive side to also speak it. Applies at the next pipeline start.",
14201420
"codecPrefAuto": "Auto",
14211421
"bitrateLabel": "Encode bitrate (kbps)",
1422-
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start."
1422+
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start.",
1423+
"orientationTitle": "Image orientation",
1424+
"orientationHint": "Rotate or flip the camera image. Applied on the encode pipeline before compression; applies at the next pipeline start.",
1425+
"rotationLabel": "Rotation",
1426+
"rotationHint": "Clockwise rotation in 90° steps.",
1427+
"rotation0": "",
1428+
"rotationDefault": "0° (default)",
1429+
"hflipLabel": "Horizontal flip",
1430+
"hflipHint": "Mirror the image left–right (helps a downward camera mounted upside-down).",
1431+
"vflipLabel": "Vertical flip",
1432+
"vflipHint": "Mirror the image top–bottom."
14231433
},
14241434
"profile": {
14251435
"title": "Profile",

locales/gu.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1419,7 +1419,17 @@
14191419
"codecPrefHint": "Auto picks H.264 for browser compatibility; H.265 needs the receive side to also speak it. Applies at the next pipeline start.",
14201420
"codecPrefAuto": "Auto",
14211421
"bitrateLabel": "Encode bitrate (kbps)",
1422-
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start."
1422+
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start.",
1423+
"orientationTitle": "Image orientation",
1424+
"orientationHint": "Rotate or flip the camera image. Applied on the encode pipeline before compression; applies at the next pipeline start.",
1425+
"rotationLabel": "Rotation",
1426+
"rotationHint": "Clockwise rotation in 90° steps.",
1427+
"rotation0": "",
1428+
"rotationDefault": "0° (default)",
1429+
"hflipLabel": "Horizontal flip",
1430+
"hflipHint": "Mirror the image left–right (helps a downward camera mounted upside-down).",
1431+
"vflipLabel": "Vertical flip",
1432+
"vflipHint": "Mirror the image top–bottom."
14231433
},
14241434
"profile": {
14251435
"title": "Profile",

locales/hi.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1419,7 +1419,17 @@
14191419
"codecPrefHint": "Auto picks H.264 for browser compatibility; H.265 needs the receive side to also speak it. Applies at the next pipeline start.",
14201420
"codecPrefAuto": "Auto",
14211421
"bitrateLabel": "Encode bitrate (kbps)",
1422-
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start."
1422+
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start.",
1423+
"orientationTitle": "Image orientation",
1424+
"orientationHint": "Rotate or flip the camera image. Applied on the encode pipeline before compression; applies at the next pipeline start.",
1425+
"rotationLabel": "Rotation",
1426+
"rotationHint": "Clockwise rotation in 90° steps.",
1427+
"rotation0": "",
1428+
"rotationDefault": "0° (default)",
1429+
"hflipLabel": "Horizontal flip",
1430+
"hflipHint": "Mirror the image left–right (helps a downward camera mounted upside-down).",
1431+
"vflipLabel": "Vertical flip",
1432+
"vflipHint": "Mirror the image top–bottom."
14231433
},
14241434
"profile": {
14251435
"title": "Profile",

locales/id.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1419,7 +1419,17 @@
14191419
"codecPrefHint": "Auto picks H.264 for browser compatibility; H.265 needs the receive side to also speak it. Applies at the next pipeline start.",
14201420
"codecPrefAuto": "Auto",
14211421
"bitrateLabel": "Encode bitrate (kbps)",
1422-
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start."
1422+
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start.",
1423+
"orientationTitle": "Image orientation",
1424+
"orientationHint": "Rotate or flip the camera image. Applied on the encode pipeline before compression; applies at the next pipeline start.",
1425+
"rotationLabel": "Rotation",
1426+
"rotationHint": "Clockwise rotation in 90° steps.",
1427+
"rotation0": "",
1428+
"rotationDefault": "0° (default)",
1429+
"hflipLabel": "Horizontal flip",
1430+
"hflipHint": "Mirror the image left–right (helps a downward camera mounted upside-down).",
1431+
"vflipLabel": "Vertical flip",
1432+
"vflipHint": "Mirror the image top–bottom."
14231433
},
14241434
"profile": {
14251435
"title": "Profile",

locales/ja.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1419,7 +1419,17 @@
14191419
"codecPrefHint": "Auto picks H.264 for browser compatibility; H.265 needs the receive side to also speak it. Applies at the next pipeline start.",
14201420
"codecPrefAuto": "Auto",
14211421
"bitrateLabel": "Encode bitrate (kbps)",
1422-
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start."
1422+
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start.",
1423+
"orientationTitle": "Image orientation",
1424+
"orientationHint": "Rotate or flip the camera image. Applied on the encode pipeline before compression; applies at the next pipeline start.",
1425+
"rotationLabel": "Rotation",
1426+
"rotationHint": "Clockwise rotation in 90° steps.",
1427+
"rotation0": "",
1428+
"rotationDefault": "0° (default)",
1429+
"hflipLabel": "Horizontal flip",
1430+
"hflipHint": "Mirror the image left–right (helps a downward camera mounted upside-down).",
1431+
"vflipLabel": "Vertical flip",
1432+
"vflipHint": "Mirror the image top–bottom."
14231433
},
14241434
"profile": {
14251435
"title": "Profile",

locales/kn.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1419,7 +1419,17 @@
14191419
"codecPrefHint": "Auto picks H.264 for browser compatibility; H.265 needs the receive side to also speak it. Applies at the next pipeline start.",
14201420
"codecPrefAuto": "Auto",
14211421
"bitrateLabel": "Encode bitrate (kbps)",
1422-
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start."
1422+
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start.",
1423+
"orientationTitle": "Image orientation",
1424+
"orientationHint": "Rotate or flip the camera image. Applied on the encode pipeline before compression; applies at the next pipeline start.",
1425+
"rotationLabel": "Rotation",
1426+
"rotationHint": "Clockwise rotation in 90° steps.",
1427+
"rotation0": "",
1428+
"rotationDefault": "0° (default)",
1429+
"hflipLabel": "Horizontal flip",
1430+
"hflipHint": "Mirror the image left–right (helps a downward camera mounted upside-down).",
1431+
"vflipLabel": "Vertical flip",
1432+
"vflipHint": "Mirror the image top–bottom."
14231433
},
14241434
"profile": {
14251435
"title": "Profile",

locales/ko.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1419,7 +1419,17 @@
14191419
"codecPrefHint": "Auto picks H.264 for browser compatibility; H.265 needs the receive side to also speak it. Applies at the next pipeline start.",
14201420
"codecPrefAuto": "Auto",
14211421
"bitrateLabel": "Encode bitrate (kbps)",
1422-
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start."
1422+
"bitrateHint": "Base encoder bitrate. The adaptive ladder steps around it as the link changes. Applies at the next pipeline start.",
1423+
"orientationTitle": "Image orientation",
1424+
"orientationHint": "Rotate or flip the camera image. Applied on the encode pipeline before compression; applies at the next pipeline start.",
1425+
"rotationLabel": "Rotation",
1426+
"rotationHint": "Clockwise rotation in 90° steps.",
1427+
"rotation0": "0°",
1428+
"rotationDefault": "0° (default)",
1429+
"hflipLabel": "Horizontal flip",
1430+
"hflipHint": "Mirror the image left–right (helps a downward camera mounted upside-down).",
1431+
"vflipLabel": "Vertical flip",
1432+
"vflipHint": "Mirror the image top–bottom."
14231433
},
14241434
"profile": {
14251435
"title": "Profile",

0 commit comments

Comments
 (0)