sections[].laserdisc¶
Where a section sits on the disc, and the biphase codes it carries. Optional — a section that is not part of a disc structure has no laserdisc: block. A project whose sections have one must also have the top-level laserdisc block.
laserdisc:
area: programme_area
codes:
- code_type: picture_number
start_value: 1
- code_type: chapter_number
chapter: 1
- code_type: programme_status
programme_status: "0x8DC000"
Keys¶
| Key | Type | Required | Description |
|---|---|---|---|
area |
string | No | The disc area: lead_in, programme_area or lead_out; see area |
codes |
list | No | The biphase codes this section carries; see codes |
The block must set at least one key. An empty block, or any other key, is a parse error.
area¶
Marks the section as part of the disc structure.
| Value | Meaning | Recommended minimum (CAV) |
|---|---|---|
lead_in |
Before the programme content | 938 frames |
programme_area |
The content itself | — |
lead_out |
After the programme content | 1250 frames |
A section that carries codes must set it. The minimums are checked as warnings, only on a CAV disc, only for a section that carries codes, and only when duration_frames is an integer:
Laserdisc injection warning: CAV lead_in section has 500 frames; IEC 1.5 mm
minimum at 1.6 um track pitch requires 938.
Ordering rules¶
Once any section is a lead_in or a lead_out, the whole sequence is checked (a project that uses only programme_area is not):
- At most one
lead_in, and no section may precede it. - At most one
lead_out, and no section may follow it. - Every section between them must be
programme_area. With only a lead-in this applies to every section after it, and with only a lead-out to every section before it.
Violations are errors, not warnings: out-of-order sections would break monotonic picture-number and time-code generation (IEC 60856/60857).
area also drives the EFM disc-area mapping — a lead-in carries the table of contents, each programme-area section is one EFM track, and the lead-out carries lead-out subcode. That mapping works whether or not the section carries codes, which is why an EFM-only project can have a short lead-in without the 938-frame warning a biphase CAV lead-in would get.
codes¶
| Key | Type | Applies to | Description |
|---|---|---|---|
code_type |
string | All | Which code — see laserdisc code types |
start_value |
int | picture_number, fm_picture_number |
Anchors the count for this section (fm_picture_number: first section only) |
chapter |
int | chapter_number |
Chapter number 0–79 |
programme_status |
hex string | programme_status |
24-bit status word, e.g. "0x8DC000" |
users_code |
hex string | users_code |
24-bit user's code, e.g. "0x80D234" |
No other key is accepted. code_type is required on every entry, start_value and chapter must be integers, and the hex values must be strings.
Each optional field is read only by the code types listed. A field supplied on another code type is accepted by the parser but ignored. A programme_status or users_code code without its hex value is not written.
No line selection¶
There is no target_lines key. VBI line placement is determined entirely by IEC 60856/60857 from the code type, the disc format, and which field opens the current picture — videosynth computes it per frame. Nor is disc_type repeated here: it is project-wide, in the top-level laserdisc block, and it is required as soon as any section carries codes.
Which codes are legal here¶
The validator checks each code_type against the project's disc_type and this section's area. See the compatibility matrices.
In short:
lead_in: lead_in, users_code, fm_white_flag (NTSC)
programme_area: picture_number, picture_stop, chapter_number, programme_status,
programme_time_code, clv_code, clv_picture_number,
fm_picture_number, fm_programme_time, fm_white_flag (NTSC)
lead_out: lead_out, users_code, fm_white_flag (NTSC)
Continuity across sections¶
picture_number, programme_time_code and clv_picture_number run continuously across section boundaries by design (IEC 60856/60857 §10.1.5 requires it). The CLV clocks have nothing to configure at all.
For picture_number:
- Omit
start_valueon a section to continue from the previous one. If no earlier section set it, numbering begins at 1. - Set
start_valueto re-anchor the count at that section — a deliberate discontinuity, for modelling a player skip or a replayed passage.
The same pattern applies to chapter: omit it to continue the previous chapter (carrying its stop-bit track counter across the boundary), set it to start a new one.
Setting start_value: 1 on every chapter would restart the numbering at each boundary, which is almost never what you want.
Examples¶
PAL CAV programme section
laserdisc:
area: programme_area
codes:
- code_type: picture_number
start_value: 1
- code_type: picture_stop
- code_type: chapter_number
chapter: 1
- code_type: programme_status
programme_status: "0x8DC000"
NTSC CLV programme section — the 40-bit FM codes are mandatory alongside the 24-bit ones
laserdisc:
area: programme_area
codes:
- code_type: programme_time_code
- code_type: clv_code
- code_type: clv_picture_number
- code_type: chapter_number
chapter: 1
- code_type: programme_status
programme_status: "0x8DC000"
- code_type: fm_programme_time
- code_type: fm_white_flag
Lead-in with a user's code
EFM-only lead-in — no biphase codes, just the disc area
vitc line injections¶
A section's separate line_injections: list carries only vitc, which is not implemented — using it is a validation error:
A vitc injection still needs a non-empty target_lines, checked first, and cannot share a section with laserdisc codes. A line_injections entry with type: laserdisc is a parse error naming this block: