# SSTV header-preservation check — 2026-11-05

Purpose: distinguish keeping a complete generated recording from adding blank audio after the beginning has already been removed. No radio, audio interface, microphone, simulator or SSTV Signal Desk app is used. This is a headless Open-SSTV interoperability check, not a product performance comparison.

## Input and environment

- Original generated Robot 36 practice WAV: https://sstv.org.uk/samples/first-decode/robot36.wav
- Original file SHA-256: dbb64c8cb34d3599c5aa7c36144746039632832da554eefff324a9fc68ae0166
- Mono, 48 kHz, 16-bit PCM, 38.315 seconds. The control preserves the source PCM in a rewritten WAV container; its whole-file hash therefore differs from the original.
- Open-SSTV v0.6.18; source base f773bd4fcb9da0c68ab915e9a1fa2c024bfdcc98. The script checks that src/ is unchanged from this revision. The actual checkout revision is retained in the JSON report.
- Python, NumPy, Pillow and Open-SSTV dependencies must already be available. The script installs nothing. Open-SSTV and its dependencies keep their own licenses.

## Reproduce

```sh
python reproduce-header-preservation-check.py robot36.wav /path/to/Open-SSTV new-output-directory
```

Use a new output directory. It creates the complete-audio control, a copy with two seconds of leading silence, a copy with the first three seconds removed, and that cropped copy with two seconds of blank audio added. All remain mono 48 kHz 16-bit PCM. Individual CLI commands, hashes and stdout/stderr are recorded in report.json. The source file is checked before and after and is not changed.

## Actual result and limits

Exit codes: 0, 0, 1, 1. The complete and padded-complete signals identified Robot 36 (VIS 0x08) and produced 320x240 images. Both cropped cases returned no header/unsupported mode and produced no image. The two successful output images are NOT pixel-identical; this check does not assert equal picture quality. Cropping was deliberate: these failed cases are not recommended practice inputs.

Padding did not restore the removed start for this automatic decoder. Manual-mode/partial-frame recovery was not tested; other decoders may differ. No weak-signal, live RF, antenna or current SSTV Signal Desk behavior is established. This packet has not been submitted upstream.
