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.
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.