FAILURE MAP
← Case archive

FA-50011 / PCM sample encoding / Open access

Pcm tdm active slots: incomplete marker · case 01

A truncated TDM frame is reported as a valid empty channel frame.

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

ROOT CAUSE

A truncated TDM frame is reported as a valid empty channel frame.

VERIFIED REPAIR

Use the stated conversion contract at incomplete marker.

Unsuccessful approach: Fabricated silence masks physical slot loss.

Case contract

Stipulated TDM PCM extractor: active mask bits name ascending physical slots; ignore mask bits above slot count and reject incomplete physical frames.

Why this case matters

Offline PCM interchange uses these exact bounded packet and sample representation decisions.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(frames, active_mask, slots):
    channels=[i for i in range(slots) if active_mask&(1<<i)]
    out=[]
    for frame in frames:
        if len(frame)<slots:
            out.append([])
            continue
        out.append([frame[i] if i<len(frame) else None for i in channels])
    return [channels,out]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('oracle 1', solve(*([[10, 20, 30, 40], [1, 2, 3, 4]], 10, 4)), [[1, 3], [[20, 40], [2, 4]]])
check('oracle 2', solve(*([[1, 2]], 8, 4)), [[3], [None]])
check('oracle 3', solve(*([[1, 2, 3]], 0, 3)), [[], [[]]])
check('oracle 4', solve(*([], 3, 4)), [[0, 1], []])
check('oracle 5', solve(*([[1, 2, 3, 4]], 9, 4)), [[0, 3], [[1, 4]]])
check('oracle 6', solve(*([[1, 2]], 1, 2)), [[0], [[1]]])
check('oracle 7', solve(*([[1, 2, 3, 4]], 16, 4)), [[], [[]]])
if N == 1: check('variant packet 1', solve(*[[[10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4]], 10, 4]), [[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4]]])
if N == 2: check('variant packet 2', solve(*[[[10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4]], 10, 4]), [[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4]]])
if N == 3: check('variant packet 3', solve(*[[[10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4]], 10, 4]), [[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4]]])
if N == 4: check('variant packet 4', solve(*[[[10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4]], 10, 4]), [[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4]]])
if N == 5: check('variant packet 5', solve(*[[[10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4]], 10, 4]), [[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4]]])
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
oracle 1[[1, 3], [[20, 40], [2, 4]]][[1, 3], [[20, 40], [2, 4]]]Passed
oracle 2[[3], [[]]][[3], [None]]Failed
oracle 3[[], [[]]][[], [[]]]Passed
oracle 4[[0, 1], []][[0, 1], []]Passed
oracle 5[[0, 3], [[1, 4]]][[0, 3], [[1, 4]]]Passed
oracle 6[[0], [[1]]][[0], [[1]]]Passed
oracle 7[[], [[]]][[], [[]]]Passed
variant packet 1[[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4]]][[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4]]]Passed

SHA-256 / ef3eef3654e72a786ff390c4e677d9b138d266c73d0594ec1f29a10536db9184

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(frames, active_mask, slots):
    channels=[i for i in range(slots) if active_mask&(1<<i)]
    out=[]
    for frame in frames:
        if len(frame)<slots:
            out.append([0]*len(channels))
            continue
        out.append([frame[i] if i<len(frame) else None for i in channels])
    return [channels,out]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('oracle 1', solve(*([[10, 20, 30, 40], [1, 2, 3, 4]], 10, 4)), [[1, 3], [[20, 40], [2, 4]]])
check('oracle 2', solve(*([[1, 2]], 8, 4)), [[3], [None]])
check('oracle 3', solve(*([[1, 2, 3]], 0, 3)), [[], [[]]])
check('oracle 4', solve(*([], 3, 4)), [[0, 1], []])
check('oracle 5', solve(*([[1, 2, 3, 4]], 9, 4)), [[0, 3], [[1, 4]]])
check('oracle 6', solve(*([[1, 2]], 1, 2)), [[0], [[1]]])
check('oracle 7', solve(*([[1, 2, 3, 4]], 16, 4)), [[], [[]]])
if N == 1: check('variant packet 1', solve(*[[[10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4]], 10, 4]), [[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4]]])
if N == 2: check('variant packet 2', solve(*[[[10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4]], 10, 4]), [[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4]]])
if N == 3: check('variant packet 3', solve(*[[[10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4]], 10, 4]), [[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4]]])
if N == 4: check('variant packet 4', solve(*[[[10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4]], 10, 4]), [[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4]]])
if N == 5: check('variant packet 5', solve(*[[[10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4]], 10, 4]), [[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4]]])
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
oracle 1[[1, 3], [[20, 40], [2, 4]]][[1, 3], [[20, 40], [2, 4]]]Passed
oracle 2[[3], [[0]]][[3], [None]]Failed
oracle 3[[], [[]]][[], [[]]]Passed
oracle 4[[0, 1], []][[0, 1], []]Passed
oracle 5[[0, 3], [[1, 4]]][[0, 3], [[1, 4]]]Passed
oracle 6[[0], [[1]]][[0], [[1]]]Passed
oracle 7[[], [[]]][[], [[]]]Passed
variant packet 1[[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4]]][[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4]]]Passed

SHA-256 / 1c902b92e85c7069b14d40881dda60a65493c5212ebe1c04d74a9284b7a03ebf

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(frames, active_mask, slots):
    channels=[i for i in range(slots) if active_mask&(1<<i)]
    out=[]
    for frame in frames:
        if len(frame)<slots:
            out.append(None)
            continue
        out.append([frame[i] if i<len(frame) else None for i in channels])
    return [channels,out]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('oracle 1', solve(*([[10, 20, 30, 40], [1, 2, 3, 4]], 10, 4)), [[1, 3], [[20, 40], [2, 4]]])
check('oracle 2', solve(*([[1, 2]], 8, 4)), [[3], [None]])
check('oracle 3', solve(*([[1, 2, 3]], 0, 3)), [[], [[]]])
check('oracle 4', solve(*([], 3, 4)), [[0, 1], []])
check('oracle 5', solve(*([[1, 2, 3, 4]], 9, 4)), [[0, 3], [[1, 4]]])
check('oracle 6', solve(*([[1, 2]], 1, 2)), [[0], [[1]]])
check('oracle 7', solve(*([[1, 2, 3, 4]], 16, 4)), [[], [[]]])
if N == 1: check('variant packet 1', solve(*[[[10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4]], 10, 4]), [[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4]]])
if N == 2: check('variant packet 2', solve(*[[[10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4]], 10, 4]), [[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4]]])
if N == 3: check('variant packet 3', solve(*[[[10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4]], 10, 4]), [[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4]]])
if N == 4: check('variant packet 4', solve(*[[[10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4]], 10, 4]), [[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4]]])
if N == 5: check('variant packet 5', solve(*[[[10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4], [10, 20, 30, 40], [1, 2, 3, 4]], 10, 4]), [[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4], [20, 40], [2, 4]]])
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
oracle 1[[1, 3], [[20, 40], [2, 4]]][[1, 3], [[20, 40], [2, 4]]]Passed
oracle 2[[3], [None]][[3], [None]]Passed
oracle 3[[], [[]]][[], [[]]]Passed
oracle 4[[0, 1], []][[0, 1], []]Passed
oracle 5[[0, 3], [[1, 4]]][[0, 3], [[1, 4]]]Passed
oracle 6[[0], [[1]]][[0], [[1]]]Passed
oracle 7[[], [[]]][[], [[]]]Passed
variant packet 1[[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4]]][[1, 3], [[20, 40], [2, 4], [20, 40], [2, 4]]]Passed

SHA-256 / f7693ccfc98bcfd5d45aa20328bb98c97199afaebe2b84622681230993d219e2

Verification & scope

Stipulated finite model; no claim of hardware timing or full file-format conformance. 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:45:05.254644+00:00.

Case digest / 79f7544a3ddbf015d9d223f7bf5998f3745831ecf1cd1f1d92d9e15b9bc9c3e1