Skip to content

test(starry): multimedia and streaming software stack carpets - #1712

Closed
Lfan-ke wants to merge 1 commit into
rcore-os:devfrom
Lfan-ke:test-app-video-codec
Closed

test(starry): multimedia and streaming software stack carpets#1712
Lfan-ke wants to merge 1 commit into
rcore-os:devfrom
Lfan-ke:test-app-video-codec

Conversation

@Lfan-ke

@Lfan-ke Lfan-ke commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Umbrella tracker for a multimedia and streaming software-stack test effort on
StarryOS, delivered as native-library API/CLI carpets validated on all four
architectures (x86_64/aarch64/riscv64/loongarch64) headless.

What this adds

apps/starry/video-codec/ - the video-codec carpet. A deterministic synthetic
YUV420 input is encoded with x264 and the H.264 bitstream is checked
structurally (Annex-B start code, encoded frame count); dav1d is verified
present. Both libraries are in Alpine main/community on all four arches.

Scope

Each library is exercised through its own API/CLI (own encoder/decoder
binaries, own bitstream tooling, deterministic round-trip / checksum / PSNR
proofs) - distinct from the ffmpeg-mediated coverage in the existing ffmpeg
app, which drives codecs through libav*.

Supplements, does not duplicate: ffmpeg (#1086), ffplay (#1268), doom
(#1415), qt-calc (#1396), the Weston/wayland compositor, and the GPU
compute carpets (#1574, #1575, #1576, #1578, #1609, #1610, #1648).

Wave plan

  • video-codec (this app): x264, dav1d, then x265+libde265, libvpx, openh264, libaom, SVT-AV1
  • audio-codec: FLAC, opus, vorbis+ogg, lame+mpg123, speex, fdk-aac
  • image-codec: libjpeg-turbo, libpng, giflib, libwebp, libtiff, openjpeg (avif/heif later)
  • font-text: FreeType, HarfBuzz, FontConfig, Cairo, libass, Pango
  • shader-toolchain: glslang, SPIRV-Tools, SPIRV-Cross, GLAD, GLM (offline SPIR-V)
  • stream-rtc: RTP, libsrtp, usrsctp (loopback); libdatachannel later
  • audio-io: ALSA, SDL2-audio, OpenAL-soft (file/null/wave backends)
  • container-parse: double-conversion, expat, libxml2, zlib, brotli, libebml, libmatroska

The existing ffmpeg app is extended in place (not duplicated) to the three
non-x86_64 architectures and to currently-untested codecs/protocols/filters.

Platform constraints (scoped, not silently skipped)

  • No audio device (/dev/snd): audio codecs transcode to files (fully
    testable); audio-io libraries prove the software pipeline + graceful failure,
    not physical playback.
  • Software GPU only (llvmpipe/lavapipe, no virgl): irrelevant to codecs,
    containers, fonts and the offline shader toolchain; hardware decode / real 3D
    accel are out of scope.
  • No interactive display server (no X11; Wayland compositor-only; display apps
    x86_64-only): windowing libraries used through headless paths
    (EGL-surfaceless, null platform, offscreen draw-data).

Status

Work in progress - opened as a tracker. Each wave is gated on real on-target
4-arch green with real assertions (no silent skips).

…tack)

Umbrella carpet for the Chromium-class multimedia dependency stack on StarryOS,
delivered as native-library API/CLI carpets validated on four architectures
(x86_64/aarch64/riscv64/loongarch64) headless.

The video-codec app carpets the video codecs: a deterministic synthetic YUV420
input is encoded with x264 and the H.264 bitstream is checked structurally
(Annex-B start code, encoded frame count), and dav1d is verified present.
Sibling apps (audio-codec, image-codec, font-text, shader-toolchain, stream-rtc,
audio-io, container-parse) and the remaining codecs land in subsequent waves.

This exercises each library through its own API/CLI, distinct from the
ffmpeg-mediated coverage in the existing ffmpeg app, and documents the headless
platform constraints (no audio device, software GPU only, no interactive
display server on non-x86_64) that each wave is scoped against.

Signed-off-by: 林晨 <chengkelfan@qq.com>
@Lfan-ke

Lfan-ke commented Jul 27, 2026

Copy link
Copy Markdown
Contributor Author

Opened as a tracker for the browser multimedia dependency stack roadmap. Closing as work-in-progress until the first wave (x264/dav1d) is verified on-target across all four architectures, then reopening with the first deliverable.

@Lfan-ke Lfan-ke closed this Jul 27, 2026
@Lfan-ke Lfan-ke changed the title test(starry): video-codec carpet - browser multimedia dependency stack (4-arch headless) test(starry): multimedia and streaming software stack carpets (4-arch headless) Jul 27, 2026
@Lfan-ke Lfan-ke changed the title test(starry): multimedia and streaming software stack carpets (4-arch headless) test(starry): multimedia and streaming software stack carpets Jul 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant