FA-78426 / Broadcast timecode arithmetic / Open access
Frame count to drop-frame 29.97 label: block label skip · case 01
Labels after the first ten minutes are two frames late per block.
ROOT CAUSE
Twenty labels per block are skipped, including the tenth minute that keeps its labels.
VERIFIED REPAIR
Skip 18 labels per complete ten-minute block.
Unsuccessful approach: Adding a fixed two frames still shifts every label in the first block.
Case contract
Convert a non-negative frame count (negative counts return None; counts wrap to the 2589408-frame drop-frame day) to an HH:MM:SS;FF 29.97 drop-frame label: 18 labels are skipped per 10-minute block of 17982 frames, and labels ;00/;01 are skipped at each minute not divisible by ten.
Why this case matters
Timecode arithmetic errors misplace edits, commercial breaks and captions against the broadcast clock.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(frames):
if frames<0:
return None
frames%=2589408
d,mrem=divmod(frames,17982)
add=20*d
if mrem>=2:
add+=2*((mrem-2)//1798)
n=frames+add
ff=n%30
ss=n//30%60
mm=n//1800%60
hh=n//108000
return '%02d:%02d:%02d;%02d'%(hh,mm,ss,ff)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: block label skip', [17982], '00:10:00;00'), ('regression variant: block label skip', [3372691], '07:15:35;17'), ('partial repair probe: block label skip', [1799], '00:00:59;29'), ('partial repair variant: block label skip', [683315], '06:19:59;29'), ('boundary control', [-1], None), ('normal control', [-2], None), ('normal control', [-464827], None), ('normal control', [-1153089], None)], [('regression: block label skip', [107892], '01:00:00;00'), ('regression variant: block label skip', [683315], '06:19:59;29'), ('partial repair probe: block label skip', [0], '00:00:00;00'), ('partial repair variant: block label skip', [5138128], '23:37:22;12'), ('boundary control', [-1], None), ('normal control', [-180902], None), ('normal control', [-1007831], None), ('normal control', [-2704966], None)], [('regression: block label skip', [107891], '00:59:59;29'), ('regression variant: block label skip', [5138128], '23:37:22;12'), ('partial repair probe: block label skip', [0], '00:00:00;00'), ('partial repair variant: block label skip', [2589408], '00:00:00;00'), ('boundary control', [-1], None), ('normal control', [-1440574], None), ('normal control', [-2414851], None), ('normal control', [-1406281], None)], [('regression: block label skip', [2589407], '23:59:59;29'), ('regression variant: block label skip', [703099], '06:31:00;03'), ('partial repair probe: block label skip', [107891], '00:59:59;29'), ('partial repair variant: block label skip', [916013], '08:29:24;11'), ('boundary control', [-1], None), ('normal control', [-1130649], None), ('normal control', [-2542944], None), ('normal control', [-1108369], None)], [('regression: block label skip', [52594], '00:29:14;28'), ('regression variant: block label skip', [916013], '08:29:24;11'), ('partial repair probe: block label skip', [2589407], '23:59:59;29'), ('partial repair variant: block label skip', [1183387], '10:58:05;23'), ('boundary control', [-1], None), ('normal control', [-2], None), ('normal control', [-745831], None), ('normal control', [-1976708], None)]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: block label skip | 00:10:00;02 | 00:10:00;00 | Failed |
| regression variant: block label skip | 07:15:38;13 | 07:15:35;17 | Failed |
| partial repair probe: block label skip | 00:00:59;29 | 00:00:59;29 | Passed |
| partial repair variant: block label skip | 06:20:02;13 | 06:19:59;29 | Failed |
| boundary control | None | None | Passed |
| normal control | None | None | Passed |
| normal control | None | None | Passed |
| normal control | None | None | Passed |
SHA-256 / 2ce532bdc9d1a6ed49e5f6e541afe805c69d12bd4f84c3b0cfbb7e0ea74bb5a0
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(frames):
if frames<0:
return None
frames%=2589408
d,mrem=divmod(frames,17982)
add=18*d+2
if mrem>=2:
add+=2*((mrem-2)//1798)
n=frames+add
ff=n%30
ss=n//30%60
mm=n//1800%60
hh=n//108000
return '%02d:%02d:%02d;%02d'%(hh,mm,ss,ff)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: block label skip', [17982], '00:10:00;00'), ('regression variant: block label skip', [3372691], '07:15:35;17'), ('partial repair probe: block label skip', [1799], '00:00:59;29'), ('partial repair variant: block label skip', [683315], '06:19:59;29'), ('boundary control', [-1], None), ('normal control', [-2], None), ('normal control', [-464827], None), ('normal control', [-1153089], None)], [('regression: block label skip', [107892], '01:00:00;00'), ('regression variant: block label skip', [683315], '06:19:59;29'), ('partial repair probe: block label skip', [0], '00:00:00;00'), ('partial repair variant: block label skip', [5138128], '23:37:22;12'), ('boundary control', [-1], None), ('normal control', [-180902], None), ('normal control', [-1007831], None), ('normal control', [-2704966], None)], [('regression: block label skip', [107891], '00:59:59;29'), ('regression variant: block label skip', [5138128], '23:37:22;12'), ('partial repair probe: block label skip', [0], '00:00:00;00'), ('partial repair variant: block label skip', [2589408], '00:00:00;00'), ('boundary control', [-1], None), ('normal control', [-1440574], None), ('normal control', [-2414851], None), ('normal control', [-1406281], None)], [('regression: block label skip', [2589407], '23:59:59;29'), ('regression variant: block label skip', [703099], '06:31:00;03'), ('partial repair probe: block label skip', [107891], '00:59:59;29'), ('partial repair variant: block label skip', [916013], '08:29:24;11'), ('boundary control', [-1], None), ('normal control', [-1130649], None), ('normal control', [-2542944], None), ('normal control', [-1108369], None)], [('regression: block label skip', [52594], '00:29:14;28'), ('regression variant: block label skip', [916013], '08:29:24;11'), ('partial repair probe: block label skip', [2589407], '23:59:59;29'), ('partial repair variant: block label skip', [1183387], '10:58:05;23'), ('boundary control', [-1], None), ('normal control', [-2], None), ('normal control', [-745831], None), ('normal control', [-1976708], None)]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: block label skip | 00:10:00;02 | 00:10:00;00 | Failed |
| regression variant: block label skip | 07:15:35;19 | 07:15:35;17 | Failed |
| partial repair probe: block label skip | 00:01:00;01 | 00:00:59;29 | Failed |
| partial repair variant: block label skip | 06:20:00;01 | 06:19:59;29 | Failed |
| boundary control | None | None | Passed |
| normal control | None | None | Passed |
| normal control | None | None | Passed |
| normal control | None | None | Passed |
SHA-256 / d930cf4be6dd8e50278808254f69f7ef5377edc576b0802a53b167622a77a388
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(frames):
if frames<0:
return None
frames%=2589408
d,mrem=divmod(frames,17982)
add=18*d
if mrem>=2:
add+=2*((mrem-2)//1798)
n=frames+add
ff=n%30
ss=n//30%60
mm=n//1800%60
hh=n//108000
return '%02d:%02d:%02d;%02d'%(hh,mm,ss,ff)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: block label skip', [17982], '00:10:00;00'), ('regression variant: block label skip', [3372691], '07:15:35;17'), ('partial repair probe: block label skip', [1799], '00:00:59;29'), ('partial repair variant: block label skip', [683315], '06:19:59;29'), ('boundary control', [-1], None), ('normal control', [-2], None), ('normal control', [-464827], None), ('normal control', [-1153089], None)], [('regression: block label skip', [107892], '01:00:00;00'), ('regression variant: block label skip', [683315], '06:19:59;29'), ('partial repair probe: block label skip', [0], '00:00:00;00'), ('partial repair variant: block label skip', [5138128], '23:37:22;12'), ('boundary control', [-1], None), ('normal control', [-180902], None), ('normal control', [-1007831], None), ('normal control', [-2704966], None)], [('regression: block label skip', [107891], '00:59:59;29'), ('regression variant: block label skip', [5138128], '23:37:22;12'), ('partial repair probe: block label skip', [0], '00:00:00;00'), ('partial repair variant: block label skip', [2589408], '00:00:00;00'), ('boundary control', [-1], None), ('normal control', [-1440574], None), ('normal control', [-2414851], None), ('normal control', [-1406281], None)], [('regression: block label skip', [2589407], '23:59:59;29'), ('regression variant: block label skip', [703099], '06:31:00;03'), ('partial repair probe: block label skip', [107891], '00:59:59;29'), ('partial repair variant: block label skip', [916013], '08:29:24;11'), ('boundary control', [-1], None), ('normal control', [-1130649], None), ('normal control', [-2542944], None), ('normal control', [-1108369], None)], [('regression: block label skip', [52594], '00:29:14;28'), ('regression variant: block label skip', [916013], '08:29:24;11'), ('partial repair probe: block label skip', [2589407], '23:59:59;29'), ('partial repair variant: block label skip', [1183387], '10:58:05;23'), ('boundary control', [-1], None), ('normal control', [-2], None), ('normal control', [-745831], None), ('normal control', [-1976708], None)]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: block label skip | 00:10:00;00 | 00:10:00;00 | Passed |
| regression variant: block label skip | 07:15:35;17 | 07:15:35;17 | Passed |
| partial repair probe: block label skip | 00:00:59;29 | 00:00:59;29 | Passed |
| partial repair variant: block label skip | 06:19:59;29 | 06:19:59;29 | Passed |
| boundary control | None | None | Passed |
| normal control | None | None | Passed |
| normal control | None | None | Passed |
| normal control | None | None | Passed |
SHA-256 / 533cbc33098076b5d0bc9f1ea94d658b3fe38892efd20c0f00748e30cdab2166
Verification & scope
A deterministic bounded teaching model with a stipulated toy contract; it does not claim conformance to SMPTE or any broadcast standard. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.
Observations recorded using Python 3.12.14 at 2026-09-29T14:49:35.279527+00:00.
Case digest / 0e3df6ccb9b13a24fe86a02d7cdba0f8042552060e2af8e40752f42061e6d73f