Repository navigation
v0.2.0
A native Windows program, which is what this should have been.
0.1.0 was a browser pointed at a local server. It works, and it is still here
for a shell or an ssh session, but nobody wants to double click it. This is a
real window.
Download tsdec-gui.exe and run it. That is the whole installation: the
decoder is inside the program, so there is nothing else to download and nothing
to put on your PATH.
What it does
One job at a time, because that is the honest scope.
- Pick a
.tsrecording and a.cwlcontrol word log, choose an output, run
it. - A real progress bar with a percentage, a throughput and an estimate, fed by
the decoder's progress events rather than a timer. - Stop a long recording. A request, not a kill, so whatever was already
decrypted is kept, packet aligned and playable, and the result says how far
it got rather than claiming the run finished. This is the button the 0.4.1
Win32 GUI had, and the main reason this exists. - Survey the pids with how much of each is scrambled, and narrow the run to
the ones wanted. - Thread count, cw blocker, resync past corrupt packets.
- Light and dark, following the system preference.
The stop, which is the fix that mattered
Ctrl+C is a console control event. A windowed program has no console to
deliver one from, so on the real Windows build the stop either did nothing or
turned into a kill, and a kill throws away every packet already decrypted.
That is the one thing the stop button exists to prevent, and it only showed up
once the program was actually frozen into an exe.
The front end now asks for a stop by creating a file, which needs no terminal
and behaves the same on every platform. That needed a matching change in the
decoder, released as
2.3.0.
Nothing asks before replacing an output
A stopped run leaves a partial file. Running again over the same name used to
destroy the part that had been written, silently. It asks now.
How it is checked
41 checks drive the window headless, 36 drive the web front end, and 14 check
the packaged executable as an artefact: a single exe in an empty folder, with
nothing on PATH, has to find its decoder inside itself, decrypt a recording,
stop one that is still going, and open a window.
That last one is the point. Every check against the Python modules passed while
the frozen build was quietly unable to stop a decode, because the Python
modules were never the thing that was broken. test_exe.py runs the artefact
in a job before it is published, so it cannot ship again.
Headless
The packaged program can also be driven without a window, which is how the
release job proves it works:
tsdec-gui.exe --decrypt -i recording.ts -f log.cwl -o clear.ts
tsdec-gui.exe --self-testLicence
GPL v3, matching TSDEC.