install: keep hevc smoke diagnostic on pi
This commit is contained in:
parent
8e4febe465
commit
ce37edc9ab
6
Cargo.lock
generated
6
Cargo.lock
generated
@ -1652,7 +1652,7 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lesavka_client"
|
name = "lesavka_client"
|
||||||
version = "0.22.6"
|
version = "0.22.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-stream",
|
"async-stream",
|
||||||
@ -1686,7 +1686,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lesavka_common"
|
name = "lesavka_common"
|
||||||
version = "0.22.6"
|
version = "0.22.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"base64",
|
"base64",
|
||||||
@ -1698,7 +1698,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lesavka_server"
|
name = "lesavka_server"
|
||||||
version = "0.22.6"
|
version = "0.22.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"base64",
|
"base64",
|
||||||
|
|||||||
@ -4,7 +4,7 @@ path = "src/main.rs"
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "lesavka_client"
|
name = "lesavka_client"
|
||||||
version = "0.22.6"
|
version = "0.22.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "lesavka_common"
|
name = "lesavka_common"
|
||||||
version = "0.22.6"
|
version = "0.22.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
build = "build.rs"
|
build = "build.rs"
|
||||||
|
|
||||||
|
|||||||
@ -413,7 +413,7 @@ These entries are intentionally concise because most are manual lab or CI harnes
|
|||||||
| `LESAVKA_HEVC_REENTRY_SYNC` | manual HEVC re-entry helper toggle; when `1`, rsyncs the local workspace to Theia before optional build/deploy |
|
| `LESAVKA_HEVC_REENTRY_SYNC` | manual HEVC re-entry helper toggle; when `1`, rsyncs the local workspace to Theia before optional build/deploy |
|
||||||
| `LESAVKA_HEVC_REENTRY_WAIT_INTERVAL_SECONDS` | manual HEVC re-entry helper retry interval while waiting for SSH after a lab host outage, defaults to `15` |
|
| `LESAVKA_HEVC_REENTRY_WAIT_INTERVAL_SECONDS` | manual HEVC re-entry helper retry interval while waiting for SSH after a lab host outage, defaults to `15` |
|
||||||
| `LESAVKA_HEVC_REENTRY_WAIT_SECONDS` | manual HEVC re-entry helper reachability wait budget; when greater than `0`, polls SSH before status/build/deploy/reconfigure instead of failing immediately |
|
| `LESAVKA_HEVC_REENTRY_WAIT_SECONDS` | manual HEVC re-entry helper reachability wait budget; when greater than `0`, polls SSH before status/build/deploy/reconfigure instead of failing immediately |
|
||||||
| `LESAVKA_INSTALL_CAM_CODEC` | server installer camera ingress codec default; persists `LESAVKA_CAM_CODEC` for installed services, defaults to `hevc`; HEVC installs run a real 1280x720 hardware decode smoke and fail before service changes when the decoder is exposed but unusable |
|
| `LESAVKA_INSTALL_CAM_CODEC` | server installer camera ingress codec default; persists `LESAVKA_CAM_CODEC` for installed services, defaults to `hevc`; HEVC installs probe the hardware decoder and warn with a smoke log when the synthetic probe fails, while runtime still refuses software video fallback in production |
|
||||||
| `LESAVKA_INSTALL_SOURCE` | install script source selector; use `ref` to fetch the requested git ref instead of building the existing local checkout |
|
| `LESAVKA_INSTALL_SOURCE` | install script source selector; use `ref` to fetch the requested git ref instead of building the existing local checkout |
|
||||||
| `LESAVKA_INSTALL_UVC_FRAME_META` | server installer diagnostic toggle; persists `LESAVKA_UVC_FRAME_META`, defaults to `0` so spool metadata is opt-in |
|
| `LESAVKA_INSTALL_UVC_FRAME_META` | server installer diagnostic toggle; persists `LESAVKA_UVC_FRAME_META`, defaults to `0` so spool metadata is opt-in |
|
||||||
| `LESAVKA_INSTALL_UVC_FRAME_META_LOG_PATH` | server installer diagnostic path; persists `LESAVKA_UVC_FRAME_META_LOG_PATH`, defaults to `/tmp/lesavka-uvc-frame-meta.jsonl` for optional client-to-RCT spool-boundary fetches |
|
| `LESAVKA_INSTALL_UVC_FRAME_META_LOG_PATH` | server installer diagnostic path; persists `LESAVKA_UVC_FRAME_META_LOG_PATH`, defaults to `/tmp/lesavka-uvc-frame-meta.jsonl` for optional client-to-RCT spool-boundary fetches |
|
||||||
|
|||||||
@ -207,15 +207,12 @@ ensure_hevc_decode_support() {
|
|||||||
>"$hevc_smoke_log" 2>&1; then
|
>"$hevc_smoke_log" 2>&1; then
|
||||||
echo "✅ hardware HEVC decoder passed a real 1280x720 decode smoke: $hevc_decoder"
|
echo "✅ hardware HEVC decoder passed a real 1280x720 decode smoke: $hevc_decoder"
|
||||||
else
|
else
|
||||||
echo "❌ hardware HEVC decoder is exposed but failed a real 1280x720 decode smoke: $hevc_decoder" >&2
|
echo "⚠️ hardware HEVC decoder is exposed but the synthetic 1280x720 decode smoke failed: $hevc_decoder" >&2
|
||||||
echo " smoke log: $hevc_smoke_log" >&2
|
echo " smoke log: $hevc_smoke_log" >&2
|
||||||
sed -n '1,120p' "$hevc_smoke_log" >&2 || true
|
sed -n '1,120p' "$hevc_smoke_log" >&2 || true
|
||||||
if [[ "$INSTALL_UVC_CODEC" == "hevc" || "$INSTALL_CAM_CODEC" == "hevc" ]]; then
|
echo " Continuing because gst-launch synthetic streams can be a false negative on the Pi stateless decoder." >&2
|
||||||
echo " Refusing HEVC install because production video decode must be hardware-accelerated and proven." >&2
|
echo " Runtime still requires a buildable hardware HEVC decoder and will not use software fallback in production." >&2
|
||||||
echo " Use LESAVKA_INSTALL_CAM_CODEC=mjpeg and LESAVKA_INSTALL_UVC_CODEC=mjpeg for a non-HEVC install while the decoder stack is repaired." >&2
|
echo " Use scripts/manual/run_hardware_media_smoke.sh for artifact-backed follow-up evidence." >&2
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "⚠️ continuing because this install is not selecting HEVC camera/UVC mode." >&2
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@ -10,7 +10,7 @@ bench = false
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "lesavka_server"
|
name = "lesavka_server"
|
||||||
version = "0.22.6"
|
version = "0.22.7"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
autobins = false
|
autobins = false
|
||||||
|
|
||||||
|
|||||||
@ -181,8 +181,11 @@ fn server_install_pins_hdmi_camera_and_display_defaults() {
|
|||||||
"install script should prove HEVC hardware decode with a real frame smoke, not only gst-inspect"
|
"install script should prove HEVC hardware decode with a real frame smoke, not only gst-inspect"
|
||||||
);
|
);
|
||||||
assert!(
|
assert!(
|
||||||
SERVER_INSTALL.contains("Refusing HEVC install because production video decode must be hardware-accelerated and proven"),
|
SERVER_INSTALL.contains("synthetic 1280x720 decode smoke failed")
|
||||||
"install script should refuse HEVC installs when the hardware decoder is exposed but unusable"
|
&& SERVER_INSTALL.contains("false negative on the Pi stateless decoder")
|
||||||
|
&& SERVER_INSTALL.contains("Runtime still requires a buildable hardware HEVC decoder")
|
||||||
|
&& SERVER_INSTALL.contains("scripts/manual/run_hardware_media_smoke.sh"),
|
||||||
|
"install script should keep HEVC smoke failures diagnostic instead of blocking known-good Pi runtime paths"
|
||||||
);
|
);
|
||||||
assert!(
|
assert!(
|
||||||
!SERVER_INSTALL
|
!SERVER_INSTALL
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user