Files
jellytau/api/jellytau_lib/download/estimate/index.html
T

20 lines
6.6 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="How big a download is going to be when the server will not say."><title>jellytau_lib::download::estimate - 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 estimate</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.12.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module estimate</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="#constants" title="Constants">Constants</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>download</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">download</a></div><h1>Module <span>estimate</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/download/estimate.rs.html#1-181">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>How big a download is going to be when the server will not say.</p>
<p>A direct copy answers with <code>Content-Length</code>, and the worker reports exact
progress from it. A transcode is produced as it is sent — chunked, with no
length — and the worker used to report <code>progress: 0.0</code> for its whole
duration: an empty bar and “0%” while the byte count climbed for an hour.
That is the case every film whose audio must be re-encoded lands in.</p>
<p>The backend does know enough to estimate. It fetches the item to decide the
audio policy anyway, and that item carries the sources size and runtime;
the preset it chose fixes the bitrate. So the estimate is made where the
URL is, persisted on the row as its <code>file_size</code>, and used only as a
fallback: a real <code>Content-Length</code> always wins, and an estimated bar never
claims completion.</p>
<p>TRACES: UR-071 | DR-290</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.ProgressTotal.html" title="struct jellytau_lib::download::estimate::ProgressTotal">Progress<wbr>Total</a></dt><dd>What the progress bar measures against.</dd></dl><h2 id="constants" class="section-header">Constants<a href="#constants" class="anchor">§</a></h2><dl class="item-table"><dt><a class="constant" href="constant.ESTIMATED_PROGRESS_CEILING.html" title="constant jellytau_lib::download::estimate::ESTIMATED_PROGRESS_CEILING">ESTIMATED_<wbr>PROGRESS_<wbr>CEILING</a></dt><dd>The progress bar never reports more than this from an estimate, so a source
that encodes a little larger than predicted shows 99% until the last byte
rather than 104% — completion is the workers to announce.</dd><dt><a class="constant" href="constant.TICKS_PER_SECOND.html" title="constant jellytau_lib::download::estimate::TICKS_PER_SECOND">TICKS_<wbr>PER_<wbr>SECOND</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Ticks per second in Jellyfins runtime unit.</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.expected_download_bytes.html" title="fn jellytau_lib::download::estimate::expected_download_bytes">expected_<wbr>download_<wbr>bytes</a></dt><dd>The size a download for <code>quality</code> is expected to produce, in bytes.</dd><dt><a class="fn" href="fn.progress_fraction.html" title="fn jellytau_lib::download::estimate::progress_fraction">progress_<wbr>fraction</a></dt><dd>The fraction complete, in <code>0.0..=1.0</code>. An estimated total is capped at
<a href="constant.ESTIMATED_PROGRESS_CEILING.html" title="constant jellytau_lib::download::estimate::ESTIMATED_PROGRESS_CEILING"><code>ESTIMATED_PROGRESS_CEILING</code></a> so a prediction that ran low never shows a
finished bar on a download still running.</dd><dt><a class="fn" href="fn.progress_total.html" title="fn jellytau_lib::download::estimate::progress_total">progress_<wbr>total</a></dt><dd>The total to report progress against, given what the response said and what
was predicted before it was made. The servers <code>Content-Length</code> always
wins; the estimate fills in only when the server sent none.</dd></dl></section></div></main></body></html>