Disciplines · Proposals

Source-Format Support Matrix (YSD-0108)

untrusted bytes; ffmpeg/image/3D parsers must run behind the quarantine + resource-limit envelope before any workspace exposure.

1section3 minread

On this page

Compiled 2026-07-18 at working-tree commit 33956eb359. For each source family YSD-0108 names: the concrete formats, what the repository can really do today (with evidence), and what the workspace must add. Status vocabulary follows the proposal §5.1 legend. ffmpeg/ffprobe binaries are present on the dev box (/usr/bin/ffmpeg, /usr/bin/ffprobe).

# Family Formats Existing capability Status Serves
1 Film/video mp4, mov, mkv, webm, avi, mxf, ts; H.264, H.265, VP8/9, AV1, ProRes, DNxHD Real ffmpeg execution: libs/shared/encoding (imf-delivery, timeline-assembly), libs/shared/live-media (neith-ffmpeg-transcoder, ffmpeg-hls-dash-packager); aja type vocabulary (VideoCodec, ContainerFormat, ColorSpace, PixelFormat); aja probe/scene-detection is simulated implemented-primitive (decode/transcode) + fixture-backed (analysis) YSD-5001, YSD-1030 walking skeleton
2 Audio aac, mp3, opus, vorbis, pcm, ac3; stems/mixes libs/shared/encoding/src/audio-analysis.ts (real DSP), euterpe analysis libraries (no service/persistence) implemented-primitive (analysis code) / partial (no anchored outputs) YSD-5001, Section 9 sound lens
3 Subtitles SRT, WebVTT References in aja metadata-extraction.ts/types.ts, sophia accessibility-manager.ts, euterpe lyric-video partial (parsing scattered, no shared subtitle-track contract) YSD-2027 MediaTrack, YSD-2072 line/word anchors
4 Transcripts timestamped transcript envelopes; ASR outputs libs/sophia/ingestion/src/adapters/video-transcript.ts (VideoTranscriptAdapter, VideoTranscriber seam — real anchor pattern, no bundled ASR) implemented-primitive (anchoring) / seam (ASR) YSD-2029 anchors, YSD-5xxx transcript ingest
5 Images/stills PNG, JPEG, WebP (web-standard set) yemaya Asset (AssetType.IMAGE, checksum/thumbnail/preview), isis generation outputs, oshun asset-preview-pipeline Studio surface partial (asset handling; no region-anchor study support) YSD-2079 still-image anchors, YSD-22009 region pinning
6 Documents text/markdown strong; PDF absent nisaba document/passage/edition stack (Prisma Passage, CanonicalReference, W3C selectors) is production-grade for text; no PDF parser found in nisaba/sophia implemented-primitive (text) / missing (PDF, page-image) YSD-2078 document anchors
7 Storyboards image sequences + panel/page structure No dedicated support; composes from families 5 + 6 missing (as a first-class kind) YSD-2078 panel anchors
8 Telemetry JSON event streams; versioned schemas apps/v2/telemetry-schema-migrations (additive/breaking compat), player-behavior-heatmaps, telemetry-session-reconstruction, telemetry-privacy-compliance; bellona telemetry-hooks product-specific (no cross-game contract) YSD-5008, Section 12 Tier B/C
9 Creator-owned 3D assets glTF, USD, FBX, OBJ, Alembic libs/neith/assets/crates/neith-asset-import (GltfImporter, UsdImporter, FbxImporter, ObjImporter, AlembicImporter), neith-engine-interchange (materials/skeleton/LOD/texture translation), on-box OpenUSD pxr runtime (venv, OSHUN_USD_PYTHON); phase-170 fail-loud Alembic/.ztl seams implemented-primitive (Rust crates; no workspace adapter/sandbox) YSD-2080 anchors, YSD-0165 adapter, Section 9.13
10 Level scenes engine scenes/levels (.uasset via bridges, Blender/Godot/Unity scenes), USD stages libs/neith/scene/crates (neith-scene-graph, neith-world, neith-level-stream), maya engine-core crates, bellona bridge-{blender,godot,unity,unreal} apps, on-box headless .uasset authoring (2026-06-18 record) implemented-primitive (engine side) / missing (study exposure) YSD-2081 anchors, YSD-0158 bridge reuse
11 Commentary commentary audio tracks, director/creator commentary No dedicated kind; families 1/2/4 primitives apply; creator-statement epistemic identity does not exist yet missing (as epistemic kind) YSD-5009, YSD-2107 creator statement
12 Paratext interviews, making-ofs, talks, art books, patch notes, dev diaries nisaba text stack applies; no ingestion or creator-statement typing missing (as first-class ingest) YSD-5009, Section 11

Cross-cutting requirements the matrix implies#

  • Parser sandboxing (YSD-4093/4095): families 1–3, 5–7, 9, 10 all parse untrusted bytes; ffmpeg/image/3D parsers must run behind the quarantine + resource-limit envelope before any workspace exposure. The neith Rust importers are memory-safe but still need decompression/complexity limits (mesh complexity, archive depth).
  • Simulated-path quarantine (YSD-1007): aja probe/scene-detection stays unsupported behind the adapter until rewired to the real shared/encoding ffmpeg primitives — the shared libs, not aja's simulated code, are the decode foundation.
  • Provider/streaming sources are not a format family: provider content is link-only playback (YSD-4009, YSD-5004) — deliberately absent from this matrix because no bytes are parsed.
  • Frame-rate identity (YSD-2003): family 1 support must carry rational frame rates and drop-frame timecode; the aja types lack both (integer fps assumptions) — flagged for the Section 2 contracts.
  • Capability discovery (YSD-2007): every family maps to explicit supported/unsupported/unavailable responses per source class; "in the repo somewhere" is not "supported" until wired through an adapter with conformance tests (YSD-0163).