Files
jellytau/api/jellytau_lib/repository/stream_selection/index.html
T

15 lines
6.3 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Backend-owned stream selection (UR-079 / DR-225). What stream to play, decided in Rust and handed to a player whole."><title>jellytau_lib::repository::stream_selection - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="jellytau_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.97.1 (8bab26f4f 2026-07-14)" data-channel="1.97.1" data-search-js="search-fd9372ac.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-fcd733ba.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module stream_selection</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../jellytau_lib/index.html">jellytau_<wbr>lib</a><span class="version">0.11.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module stream_<wbr>selection</a></h2><h3><a href="#structs">Module Items</a></h3><ul class="block"><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In jellytau_<wbr>lib::<wbr>repository</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">jellytau_lib</a>::<wbr><a href="../index.html">repository</a></div><h1>Module <span>stream_<wbr>selection</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/jellytau_lib/repository/stream_selection.rs.html#1-455">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Backend-owned stream selection (UR-079 / DR-225).
What stream to play, decided in Rust and handed to a player whole.</p>
<p>Every player backend — mpv, ExoPlayer, the webview <code>&lt;video&gt;</code>/hls.js path —
used to receive a bare URL and re-derive the rest: the frontend decided
“is this HLS?” by looking for <code>.m3u8</code> in the string, and nothing anywhere
carried <em>why</em> a stream was transcoded or what else the source could have
offered. This module is the replacement contract: one self-describing
<a href="struct.StreamSelection.html" title="struct jellytau_lib::repository::stream_selection::StreamSelection"><code>StreamSelection</code></a> that says what the stream is, how to fetch it, and what
the alternatives were.</p>
<p>The division of labour it encodes — <strong>Rust decides <em>what stream</em>, the player
decides <em>how to deliver it</em></strong> — is the point. A multi-variant playlist handed
to ExoPlayer is still ExoPlayers to adapt over; Rust never paces bytes.</p>
<p>TRACES: UR-079 | DR-225</p>
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.QualityOption.html" title="struct jellytau_lib::repository::stream_selection::QualityOption">Quality<wbr>Option</a></dt><dd>One rung of the quality picker, as it applies to <em>this</em> media source.</dd><dt><a class="struct" href="struct.Rendition.html" title="struct jellytau_lib::repository::stream_selection::Rendition">Rendition</a></dt><dd>The rendition actually negotiated — what the viewer is receiving right now.</dd><dt><a class="struct" href="struct.StreamSelection.html" title="struct jellytau_lib::repository::stream_selection::StreamSelection">Stream<wbr>Selection</a></dt><dd>Everything a player backend needs to open a stream, and everything the UI
needs to describe it.</dd></dl><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><dl class="item-table"><dt><a class="enum" href="enum.PlaybackKind.html" title="enum jellytau_lib::repository::stream_selection::PlaybackKind">Playback<wbr>Kind</a></dt><dd>What the server is doing to the source to produce this stream.</dd><dt><a class="enum" href="enum.Transport.html" title="enum jellytau_lib::repository::stream_selection::Transport">Transport</a></dt><dd>How the bytes of a chosen stream are fetched.</dd></dl><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><dl class="item-table"><dt><a class="fn" href="fn.quality_options_for_source.html" title="fn jellytau_lib::repository::stream_selection::quality_options_for_source">quality_<wbr>options_<wbr>for_<wbr>source</a></dt><dd>Build the quality ladder as it applies to a source of a known bitrate.</dd></dl></section></div></main></body></html>