Skip to content

media-h264 (2026-10-24, batch plan5)

  • New runtime/src/vt_h264.{c,h}: VideoToolbox H.264 decoder (Annex B / AVCC in, packed NV12 out in presentation order) and ImageIO JPEG decode/encode helpers.
  • movie.c: a movie::Decoder of the H.264 type (default 0, NAPPLE_MOVIE_H264_TYPE overrides) with mime video/avc is hosted next to VP9; same buffer/texture output, pacing, EOS handling (held reorder frames flushed before the EOS marker). Flush resets the session.
  • tests/test_media.c (in make test): encodes a clip with VideoToolbox, decodes it as Annex B and as AVCC+csd, baseline and High with reordering; JPEG round trip.
  • Makefile: VideoToolbox/CoreMedia/ImageIO frameworks, test_media target (append-only).

Verified: make -C runtime and make -C runtime test on the Mac, test_media 56 checks. NOT verified: any real title (no game data dir available), the 45 s headless boot, the AVC DecoderType value, csd-0/1 delivered as MediaData buffers (only in-band parameter sets are handled), texture-mode H.264. Not done: JPEG is not wired into nvhost-nvjpg (the engine is instant-complete and its command-stream ABI is unemulated) nor into caps (the album is deliberately file-less).