FAILURE MAP
← Case archive

FA-11241 / Media timeline seeking / Open access

Duration from timebase endpoint · case 01

Duration ends at the final frame start and omits its displayed duration.

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

ROOT CAUSE

Duration ends at the final frame start and omits its displayed duration.

VERIFIED REPAIR

Preserve the media contract: For a nonempty constant-duration frame sequence, compute full duration from first/last start ticks plus final frame duration, divided by positive timescale.

Unsuccessful approach: Using an absolute final endpoint counts the nonzero start offset as duration.

Case contract

For a nonempty constant-duration frame sequence, compute full duration from first/last start ticks plus final frame duration, divided by positive timescale.

Why this case matters

A deterministic local media controller stage; metadata and downloaded data are supplied explicitly. No external player, service or codec is required.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(first, last, frame_duration, timescale):
    return (last-first)/timescale
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1',solve(*(100, 140, 20, 100)),0.6)
check('fixture 2',solve(*(0, 0, 25, 100)),0.25)
check('fixture 3',solve(*(50, 50, 0, 100)),0)
check('fixture 4',solve(*(0, 75, 25, 100)),1)
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
fixture 10.40.6Failed
fixture 20.00.25Failed
fixture 30.00Passed
fixture 40.751Failed

SHA-256 / d3296361f865a962fb6870a2a5c37476c1f9a52efd046b00bba4d0cef8ca0c2c

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(first, last, frame_duration, timescale):
    return (last+frame_duration)/timescale
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1',solve(*(100, 140, 20, 100)),0.6)
check('fixture 2',solve(*(0, 0, 25, 100)),0.25)
check('fixture 3',solve(*(50, 50, 0, 100)),0)
check('fixture 4',solve(*(0, 75, 25, 100)),1)
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
fixture 11.60.6Failed
fixture 20.250.25Passed
fixture 30.50Failed
fixture 41.01Passed

SHA-256 / bbcb87a854c96d8ce3703d3c4a5cf96451f32bcfefe1fa52abd864306886ba7e

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(first, last, frame_duration, timescale):
    return (last-first+frame_duration)/timescale
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1',solve(*(100, 140, 20, 100)),0.6)
check('fixture 2',solve(*(0, 0, 25, 100)),0.25)
check('fixture 3',solve(*(50, 50, 0, 100)),0)
check('fixture 4',solve(*(0, 75, 25, 100)),1)
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
fixture 10.60.6Passed
fixture 20.250.25Passed
fixture 30.00Passed
fixture 41.01Passed

SHA-256 / 553e3da477420cb1e7f62038df9b383b61551374948003ff3487deb9f2c53021

Verification & scope

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:38:46.219057+00:00.

Case digest / d138204e9f3cc270fc25c62858c12ae87d155d1738ee335064246530dda41d52