FAILURE MAP
← Case archive

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.

Verified by executionVariant 1 · 8 checks per implementationDownload source bundle ↓JSON ↗

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 fixtureActualExpectedOutcome
regression: block label skip00:10:00;0200:10:00;00Failed
regression variant: block label skip07:15:38;1307:15:35;17Failed
partial repair probe: block label skip00:00:59;2900:00:59;29Passed
partial repair variant: block label skip06:20:02;1306:19:59;29Failed
boundary controlNoneNonePassed
normal controlNoneNonePassed
normal controlNoneNonePassed
normal controlNoneNonePassed

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 fixtureActualExpectedOutcome
regression: block label skip00:10:00;0200:10:00;00Failed
regression variant: block label skip07:15:35;1907:15:35;17Failed
partial repair probe: block label skip00:01:00;0100:00:59;29Failed
partial repair variant: block label skip06:20:00;0106:19:59;29Failed
boundary controlNoneNonePassed
normal controlNoneNonePassed
normal controlNoneNonePassed
normal controlNoneNonePassed

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 fixtureActualExpectedOutcome
regression: block label skip00:10:00;0000:10:00;00Passed
regression variant: block label skip07:15:35;1707:15:35;17Passed
partial repair probe: block label skip00:00:59;2900:00:59;29Passed
partial repair variant: block label skip06:19:59;2906:19:59;29Passed
boundary controlNoneNonePassed
normal controlNoneNonePassed
normal controlNoneNonePassed
normal controlNoneNonePassed

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