Skip to content

Commit e060a9c

Browse files
authored
Merge pull request #1050 from staffanu/ac3-python-port
Add AC3 RF audio demodulation in Python (lddecode/ac3rf.py)
2 parents bd2e6d3 + bf2b6d5 commit e060a9c

5 files changed

Lines changed: 690 additions & 75 deletions

File tree

docs/user-guide/command.md

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,20 @@ ld-decode --preEFM input.ldf output
364364
```
365365

366366
#### `--AC3`
367-
Enable AC3 audio decoding (NTSC only).
367+
Enable AC3-RF audio demodulation (NTSC only). On AC3 LaserDiscs the
368+
analog right audio channel carries a QPSK signal at 2.88 MHz with Dolby
369+
Digital data at 288 kbaud. With this option, ld-decode demodulates that
370+
signal (see `lddecode/ac3rf.py`) and writes the raw QPSK symbols to
371+
`output.ac3sym` (one symbol per byte, values 0-3); the number of symbols
372+
demodulated during each field is recorded in the field metadata
373+
(`ac3Symbols`, analogous to `efmTValues`).
374+
375+
The `.ac3sym` file is not playable audio by itself: framing, Reed-Solomon
376+
error correction and AC3 frame assembly are performed downstream by
377+
[decode-orc](https://github.com/simoninns/decode-orc)'s *AC3 RF Sink*
378+
stage, which reads the `.tbc`, its metadata, and the `.ac3sym` file and
379+
writes the final playable `.ac3` file.
380+
368381
- **Default:** Disabled
369382
- **Note:** Only compatible with NTSC; attempting to use with PAL will result in an error
370383
- **Incompatible with:** `--PAL`
@@ -374,6 +387,14 @@ Enable AC3 audio decoding (NTSC only).
374387
ld-decode --NTSC --AC3 input.ldf output
375388
```
376389

390+
The demodulator has a self-contained unit test (synthetic QPSK loopback,
391+
no capture files needed), runnable from the repository root:
392+
```bash
393+
python3 -m tests.test_ac3rf
394+
```
395+
A quick sanity check on real output: `output.ac3sym` should grow by
396+
about 288,000 symbols (bytes) per second of decoded video.
397+
377398
### RF Sampling Options
378399

379400
#### `-f FREQ`, `--frequency FREQ`

0 commit comments

Comments
 (0)