FA-78431 / Broadcast timecode arithmetic / Open access
Frame count to drop-frame 29.97 label: minute field · case 01
Minute fields jump ahead late in the hour.
ROOT CAUSE
The minute field divides the adjusted label count by the real 1798 frames per minute.
VERIFIED REPAIR
Derive the minute from the nominal label count, 1800 labels per minute.
Unsuccessful approach: Deriving minutes from ten-minute blocks drops the single minutes.
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=18*d
if mrem>=2:
add+=2*((mrem-2)//1798)
n=frames+add
ff=n%30
ss=n//30%60
mm=n//1798%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: minute field', [1799], '00:00:59;29'), ('regression variant: minute field', [5138128], '23:37:22;12'), ('partial repair probe: minute field', [2589407], '23:59:59;29'), ('partial repair variant: minute field', [1183387], '10:58:05;23'), ('boundary control', [17982], '00:10:00;00'), ('boundary control', [-1], None), ('normal control', [107892], '01:00:00;00'), ('normal control', [-2], None), ('normal control', [-1641352], None)], [('regression: minute field', [107891], '00:59:59;29'), ('regression variant: minute field', [2576030], '23:52:33;18'), ('partial repair probe: minute field', [52594], '00:29:14;28'), ('partial repair variant: minute field', [1346634], '12:28:52;22'), ('boundary control', [107892], '01:00:00;00'), ('boundary control', [17982], '00:10:00;00'), ('normal control', [35964], '00:20:00;00'), ('normal control', [701299], '06:30:00;01'), ('normal control', [-464827], None)], [('regression: minute field', [2589407], '23:59:59;29'), ('regression variant: minute field', [666705], '06:10:45;21'), ('partial repair probe: minute field', [3372691], '07:15:35;17'), ('partial repair variant: minute field', [1346634], '12:28:52;22'), ('boundary control', [0], '00:00:00;00'), ('boundary control', [107892], '01:00:00;00'), ('normal control', [143856], '01:20:00;00'), ('normal control', [2], '00:00:00;02'), ('normal control', [107893], '01:00:00;01')], [('regression: minute field', [3372691], '07:15:35;17'), ('regression variant: minute field', [2535623], '23:30:05;11'), ('partial repair probe: minute field', [683315], '06:19:59;29'), ('partial repair variant: minute field', [757044], '07:01:00;02'), ('boundary control', [-1], None), ('boundary control', [0], '00:00:00;00'), ('normal control', [485515], '04:30:00;01'), ('normal control', [179822], '01:40:00;02'), ('normal control', [629371], '05:50:00;01')], [('regression: minute field', [683315], '06:19:59;29'), ('regression variant: minute field', [1346634], '12:28:52;22'), ('partial repair probe: minute field', [5138128], '23:37:22;12'), ('partial repair variant: minute field', [3599], '00:02:00;03'), ('boundary control', [17982], '00:10:00;00'), ('boundary control', [-1], None), ('normal control', [575425], '05:20:00;01'), ('normal control', [-2413730], None), ('normal control', [-1030669], 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: minute field | 00:01:59;29 | 00:00:59;29 | Failed |
| regression variant: minute field | 23:38:22;12 | 23:37:22;12 | Failed |
| partial repair probe: minute field | 23:01:59;29 | 23:59:59;29 | Failed |
| partial repair variant: minute field | 10:58:05;23 | 10:58:05;23 | Passed |
| boundary control | 00:10:00;00 | 00:10:00;00 | Passed |
| boundary control | None | None | Passed |
| normal control | 01:00:00;00 | 01:00:00;00 | Passed |
| normal control | None | None | Passed |
| normal control | None | None | Passed |
SHA-256 / f0c80e76f18cbe296e39792f0cc4318c98c13df56a10a3425fdba76d5fb8399b
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
if mrem>=2:
add+=2*((mrem-2)//1798)
n=frames+add
ff=n%30
ss=n//30%60
mm=n//17982*10%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: minute field', [1799], '00:00:59;29'), ('regression variant: minute field', [5138128], '23:37:22;12'), ('partial repair probe: minute field', [2589407], '23:59:59;29'), ('partial repair variant: minute field', [1183387], '10:58:05;23'), ('boundary control', [17982], '00:10:00;00'), ('boundary control', [-1], None), ('normal control', [107892], '01:00:00;00'), ('normal control', [-2], None), ('normal control', [-1641352], None)], [('regression: minute field', [107891], '00:59:59;29'), ('regression variant: minute field', [2576030], '23:52:33;18'), ('partial repair probe: minute field', [52594], '00:29:14;28'), ('partial repair variant: minute field', [1346634], '12:28:52;22'), ('boundary control', [107892], '01:00:00;00'), ('boundary control', [17982], '00:10:00;00'), ('normal control', [35964], '00:20:00;00'), ('normal control', [701299], '06:30:00;01'), ('normal control', [-464827], None)], [('regression: minute field', [2589407], '23:59:59;29'), ('regression variant: minute field', [666705], '06:10:45;21'), ('partial repair probe: minute field', [3372691], '07:15:35;17'), ('partial repair variant: minute field', [1346634], '12:28:52;22'), ('boundary control', [0], '00:00:00;00'), ('boundary control', [107892], '01:00:00;00'), ('normal control', [143856], '01:20:00;00'), ('normal control', [2], '00:00:00;02'), ('normal control', [107893], '01:00:00;01')], [('regression: minute field', [3372691], '07:15:35;17'), ('regression variant: minute field', [2535623], '23:30:05;11'), ('partial repair probe: minute field', [683315], '06:19:59;29'), ('partial repair variant: minute field', [757044], '07:01:00;02'), ('boundary control', [-1], None), ('boundary control', [0], '00:00:00;00'), ('normal control', [485515], '04:30:00;01'), ('normal control', [179822], '01:40:00;02'), ('normal control', [629371], '05:50:00;01')], [('regression: minute field', [683315], '06:19:59;29'), ('regression variant: minute field', [1346634], '12:28:52;22'), ('partial repair probe: minute field', [5138128], '23:37:22;12'), ('partial repair variant: minute field', [3599], '00:02:00;03'), ('boundary control', [17982], '00:10:00;00'), ('boundary control', [-1], None), ('normal control', [575425], '05:20:00;01'), ('normal control', [-2413730], None), ('normal control', [-1030669], 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: minute field | 00:00:59;29 | 00:00:59;29 | Passed |
| regression variant: minute field | 23:30:22;12 | 23:37:22;12 | Failed |
| partial repair probe: minute field | 23:00:59;29 | 23:59:59;29 | Failed |
| partial repair variant: minute field | 10:50:05;23 | 10:58:05;23 | Failed |
| boundary control | 00:10:00;00 | 00:10:00;00 | Passed |
| boundary control | None | None | Passed |
| normal control | 01:00:00;00 | 01:00:00;00 | Passed |
| normal control | None | None | Passed |
| normal control | None | None | Passed |
SHA-256 / 8158bfc93709ccc469d10d768ca55aeacc464388236c357590f81d1389ebcf78
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: minute field', [1799], '00:00:59;29'), ('regression variant: minute field', [5138128], '23:37:22;12'), ('partial repair probe: minute field', [2589407], '23:59:59;29'), ('partial repair variant: minute field', [1183387], '10:58:05;23'), ('boundary control', [17982], '00:10:00;00'), ('boundary control', [-1], None), ('normal control', [107892], '01:00:00;00'), ('normal control', [-2], None), ('normal control', [-1641352], None)], [('regression: minute field', [107891], '00:59:59;29'), ('regression variant: minute field', [2576030], '23:52:33;18'), ('partial repair probe: minute field', [52594], '00:29:14;28'), ('partial repair variant: minute field', [1346634], '12:28:52;22'), ('boundary control', [107892], '01:00:00;00'), ('boundary control', [17982], '00:10:00;00'), ('normal control', [35964], '00:20:00;00'), ('normal control', [701299], '06:30:00;01'), ('normal control', [-464827], None)], [('regression: minute field', [2589407], '23:59:59;29'), ('regression variant: minute field', [666705], '06:10:45;21'), ('partial repair probe: minute field', [3372691], '07:15:35;17'), ('partial repair variant: minute field', [1346634], '12:28:52;22'), ('boundary control', [0], '00:00:00;00'), ('boundary control', [107892], '01:00:00;00'), ('normal control', [143856], '01:20:00;00'), ('normal control', [2], '00:00:00;02'), ('normal control', [107893], '01:00:00;01')], [('regression: minute field', [3372691], '07:15:35;17'), ('regression variant: minute field', [2535623], '23:30:05;11'), ('partial repair probe: minute field', [683315], '06:19:59;29'), ('partial repair variant: minute field', [757044], '07:01:00;02'), ('boundary control', [-1], None), ('boundary control', [0], '00:00:00;00'), ('normal control', [485515], '04:30:00;01'), ('normal control', [179822], '01:40:00;02'), ('normal control', [629371], '05:50:00;01')], [('regression: minute field', [683315], '06:19:59;29'), ('regression variant: minute field', [1346634], '12:28:52;22'), ('partial repair probe: minute field', [5138128], '23:37:22;12'), ('partial repair variant: minute field', [3599], '00:02:00;03'), ('boundary control', [17982], '00:10:00;00'), ('boundary control', [-1], None), ('normal control', [575425], '05:20:00;01'), ('normal control', [-2413730], None), ('normal control', [-1030669], 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: minute field | 00:00:59;29 | 00:00:59;29 | Passed |
| regression variant: minute field | 23:37:22;12 | 23:37:22;12 | Passed |
| partial repair probe: minute field | 23:59:59;29 | 23:59:59;29 | Passed |
| partial repair variant: minute field | 10:58:05;23 | 10:58:05;23 | Passed |
| boundary control | 00:10:00;00 | 00:10:00;00 | Passed |
| boundary control | None | None | Passed |
| normal control | 01:00:00;00 | 01:00:00;00 | Passed |
| normal control | None | None | Passed |
| normal control | None | None | Passed |
SHA-256 / 47c3dbf8d3fd9c305debd0a76668331447818f36dae4e5e99ceb2e414f935135
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.314890+00:00.
Case digest / 7f93cad94423e50e1e43848564df586ab8a0de7f33dd3277effb06da32e6b6d8