Canonical, provider-neutral domain model β the single source of truth for
the appβs core data shapes, shared with the frontend via generated bindings.
Cached thumbnails are handed to the webview as asset-protocol URLs by
convertFileSrc (asset://localhost/β¦ on Linux/macOS,
http://asset.localhost/β¦ on Windows/Android). Tauri only answers that
origin when the protocol-asset cargo feature is compiled in andapp.security.assetProtocol.enable is set in tauri.conf.json. Both are
required together: with either missing the URL resolves to nothing and the
webview reports NETWORK_NO_SOURCE, which is how offline video came to fail
silently.
Configure GStreamer (the media backend behind WebKitGTKβs HTML5 <video>
element on Linux) to prefer hardware-accelerated VAAPI decoding when the
host provides it, falling back to software decoding otherwise.
Construct the tauri-specta command builder. Shared by run() and the
bindings-export test so the TypeScript bindings always match the handler.
What the engine built for this platform can do.
Probe (via gst-inspect-1.0, which ships with GStreamer) which VAAPI hardware
video decoders GStreamer can actually load on this host, and log the result so
it is clear at startup whether hardware decoding is genuinely available or
whether playback will fall back to software.