mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-21 23:05:46 +00:00
6ea0acede5
* feat(playback): stream buffering UI, ranged M4A tail prefetch, demuxer fix Defer seekbar/progress until HTTP stream is armed for both legacy and RangedHttpSource; show buffering overlay on cover art. Add MP4 tail prefetch and Symphonia isomp4 bounded-mdat/moov-at-EOF probing so moov-at-end M4A can start without reading the full mdat. * feat(hot-cache): spill large ranged streams to disk for promote When a ranged HTTP download completes above the 64 MiB RAM promote cap, write the existing buffer once to app-data stream-spill/ and register it for hot-cache promote (rename) and replay via fetch_data. Analysis seeds from the spill file up to the local-file cap (512 MiB). * fix(ui): stream buffering — grayscale cover and static clock icon Desaturate player and queue cover art while isPlaybackBuffering; keep a non-animated clock overlay for visibility without the spinning animation. * fix(playback): review follow-up — tests, i18n, spill cleanup, changelog Clippy and test layout fixes; stream spill orphan cleanup on startup; buffering flag guard in progress handler; bufferingStream in all player locales; CHANGELOG and contributor credits for stream/M4A work. * docs: attribute stream buffering and M4A streaming to PR #737 * test(audio): avoid create_engine in stream spill unit test CI runners have no audio output device; test spill take/consume via the Mutex slot only, matching install_stream_completed_spill tests.
88 lines
3.1 KiB
CSS
88 lines
3.1 KiB
CSS
@import './_intro.css';
|
|
@import './hero.css';
|
|
@import './page-header-row-title-actions.css';
|
|
@import './section-titles.css';
|
|
@import './album-card.css';
|
|
@import './artist-card-grid-view.css';
|
|
@import './composer-grid-text-only-compact.css';
|
|
@import './album-row-container.css';
|
|
@import './artist-card-selection-checkbox.css';
|
|
@import './live-search.css';
|
|
@import './album-detail.css';
|
|
@import './offline-library.css';
|
|
@import './cover-lightbox.css';
|
|
@import './offline-cache-button.css';
|
|
@import './download-folder-modal.css';
|
|
@import './song-info-modal.css';
|
|
@import './share-queue-preview-modal.css';
|
|
@import './tracklist.css';
|
|
@import './modal.css';
|
|
@import './playback-delay-sleep-delayed-start-modal.css';
|
|
@import './lucky-mix-pips-shared-by-the-inline-queue-lucky-cube-indicator.css';
|
|
@import './playback-buffering-overlay.css';
|
|
@import './playlist-edit-modal.css';
|
|
@import './artists-page.css';
|
|
@import './years-page.css';
|
|
@import './settings.css';
|
|
@import './help-page.css';
|
|
@import './normalization-block-per-mode-sub-section.css';
|
|
@import './sidebar-customizer.css';
|
|
@import './login-page.css';
|
|
@import './loading-empty.css';
|
|
@import './fullscreen-player-adaptive-portrait.css';
|
|
@import './context-menu.css';
|
|
@import './css-tooltips.css';
|
|
@import './playlists-page.css';
|
|
@import './statistics-page.css';
|
|
@import './connection-indicator.css';
|
|
@import './offline-overlay.css';
|
|
@import './now-playing-page.css';
|
|
@import './now-playing-page-2.css';
|
|
@import './radio-nowplaying-section.css';
|
|
@import './equalizer.css';
|
|
@import './custom-select.css';
|
|
@import './changelog.css';
|
|
@import './genre-filter-bar.css';
|
|
@import './genre-tag-cloud.css';
|
|
@import './random-landing.css';
|
|
@import './playlists-overview-header.css';
|
|
@import './playlist-card-grid-overview.css';
|
|
@import './internet-radio.css';
|
|
@import './radio-toolbar.css';
|
|
@import './radio-card-edit-chip.css';
|
|
@import './alphabet-filter-bar.css';
|
|
@import './artists-page-alphabet-bar.css';
|
|
@import './radio-favorite-star.css';
|
|
@import './radio-browser-directory.css';
|
|
@import './bulk-select.css';
|
|
@import './playlist-search-panel.css';
|
|
@import './context-menu-submenu.css';
|
|
@import './tracklist-compact-title-artist-rows.css';
|
|
@import './artist-detail-page.css';
|
|
@import './album-artist-grid-fewer-columns.css';
|
|
@import './hero-mobile.css';
|
|
@import './live-search-full-width.css';
|
|
@import './section-page-titles.css';
|
|
@import './album-detail-header-stack-vertically-on-mobile.css';
|
|
@import './page-padding.css';
|
|
@import './hide-desktop-search-on-mobile.css';
|
|
@import './search-bar.css';
|
|
@import './results-area.css';
|
|
@import './empty-state.css';
|
|
@import './category-chips.css';
|
|
@import './recent-searches.css';
|
|
@import './section-headers.css';
|
|
@import './result-items.css';
|
|
@import './album-header-mobile-actions.css';
|
|
@import './album-tracklist-mobile.css';
|
|
@import './most-played-page.css';
|
|
@import './ui-scale-slider.css';
|
|
@import './zip-download-overlay.css';
|
|
@import './device-sync.css';
|
|
@import './what-s-new-banner-page.css';
|
|
@import './page.css';
|
|
@import './mini-player-window.css';
|
|
@import './_banner.css';
|
|
@import './np-dash.css';
|
|
@import './orbit-session-top-strip.css';
|