Files
jellytau/api/jellytau_lib/player/mpv_tracks/index.html
T

24 lines
6.4 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="Subtitle and audio-track selection on mpv, by position, the way the frontend asks for it."><title>jellytau_lib::player::mpv_tracks - 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 mpv_tracks</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.14.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module mpv_<wbr>tracks</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="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In jellytau_<wbr>lib::<wbr>player</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">player</a></div><h1>Module <span>mpv_<wbr>tracks</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/player/mpv_tracks.rs.html#1-257">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Subtitle and audio-track selection on mpv, by <em>position</em>, the way the
frontend asks for it.</p>
<p>Until DR-235 mpv never drew video, so it never had to: subtitles were
<code>&lt;track&gt;</code> children of the webview <code>&lt;video&gt;</code> and an audio track change
re-opened the stream. With mpv the only desktop video renderer, it has to
answer the same two calls ExoPlayer does, with the same meaning:</p>
<ul>
<li><strong>Subtitles</strong> are the sideloaded WebVTT list the play request carries
(<code>MediaItem::subtitles</code>), and <code>set_subtitle_track(n)</code> selects the <em>n-th of
those</em> — the position the frontend computes with <code>nativeSubtitleArrayIndex</code>.
They reach mpv as external files queued on <code>sub-files</code> before the load, and
selection starts off, because the menu opens on “Off”.</li>
<li><strong>Audio</strong> <code>set_audio_track(n)</code> selects the n-th audio track of the file —
the position in the item’s audio streams, which is file order. Only a direct
play/stream carries every track; a transcode is re-opened instead
(<code>AudioTrackSwitchStrategy</code>).</li>
</ul>
<p>mpv’s own track ids are not positions: they count every track of a type,
embedded before external, from 1. So a position is always resolved against
the live <code>track-list</code>.</p>
<p>TRACES: UR-020, UR-021 | DR-023, DR-024, DR-235</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.TrackInfo.html" title="struct jellytau_lib::player::mpv_tracks::TrackInfo">Track<wbr>Info</a></dt><dd>One entry of mpv’s <code>track-list</code>, reduced to what selection needs.</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.nth_track_id.html" title="fn jellytau_lib::player::mpv_tracks::nth_track_id">nth_<wbr>track_<wbr>id</a></dt><dd>The mpv id of the <code>position</code>-th track of <code>kind</code> (optionally only external or
only embedded ones), in <code>track-list</code> order.</dd><dt><a class="fn" href="fn.prepare_load.html" title="fn jellytau_lib::player::mpv_tracks::prepare_load">prepare_<wbr>load</a></dt><dd>Prepare the next <code>loadfile</code>: these subtitle files will be loaded with it, no
subtitle is shown, and the file’s default audio track plays.</dd><dt><a class="fn" href="fn.select_audio.html" title="fn jellytau_lib::player::mpv_tracks::select_audio">select_<wbr>audio</a></dt><dd>Play the <code>position</code>-th audio track of the file.</dd><dt><a class="fn" href="fn.select_subtitle.html" title="fn jellytau_lib::player::mpv_tracks::select_subtitle">select_<wbr>subtitle</a></dt><dd>Show the <code>position</code>-th sideloaded subtitle, or none.</dd><dt><a class="fn" href="fn.track_list.html" title="fn jellytau_lib::player::mpv_tracks::track_list">track_<wbr>list</a></dt><dd>Read the current <code>track-list</code>.</dd></dl></section></div></main></body></html>