Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upstreaming jellyfin and DataHoarder features #136

Open
10 of 18 tasks
TheOneric opened this issue May 7, 2022 · 0 comments
Open
10 of 18 tasks

Upstreaming jellyfin and DataHoarder features #136

TheOneric opened this issue May 7, 2022 · 0 comments

Comments

@TheOneric
Copy link
Member

TheOneric commented May 7, 2022

This issue tracks what has and hasn't been upstreamed from jellyfin and DataHoarder yet. Also some future improvements discussed in #111 but also not present in either of those have been included into the list.
For reference: #111 has most of the jellyfin features from 2021.09 except for the smart/tiled blending, but also kept the confusing commit distribution and descriptions as well as bugs from the original implementation. It thus need(ed|s) to be split for better reviewability, future maintainability and to find and fix the bugs before they hit master.

The items can mostly be worked on in any order, not just the one they are listed in.

  • Various bugfixes to what already existed in master *(should be mostly backoprted at this point, though it's possibly some are still lurking in the commits)
  • Fixes/polyfills for old browser engines (still found in eg Smart-TVs; see [Jellyfin] Old browsers #112 and Legacy Brotli #114)
  • Unification of renderMode options into one renderMode setting (Unify renderMode options and add missing documentation #118)
  • Option to limit the canvas size ([Jellyfin] Limit canvas size #119, Add options for bounding and scaling the rendering canvas #127)
  • refactor internal buffers (Buffer refactor and buffer bug fixes #133)
  • dropAllAnimations (Jellyfin’s dropAllAnimations #134)
  • Possibly the core jellyfin feature: renderAhead
    • though, the mode as originally implemented can get worse than wasmBlend once it fell behind schedule. A backport should ideally thus directly include a fix for that, one approach (untested) can be found e.g. here: Fix stalled RenderAhead jellyfin/JavascriptSubtitlesOctopus#25. Also another fix for an accidental global var here and here.
    • possible change from jellyfin: consider to consolidate all renderAhead options into a single structured object
    • related: once this has been backported an example should also be added to the gh_pages branch. Possibly duplicate the Karaoke Stress Test sample for all three of lossy, wasmBlend and wasmBlend+renderAhead so there's a direct comparison.
  • “Smart/Tiled Blending” to avoid creating and sending large mostly empty frames on higher resolutions
  • Also check for fixes or new features added to jellyfin since the time of writing: See here
  • DataHoarder: lazy font loading and other font improvements (Implement lazy font loading, enable embedded font extraction #146)
  • DataHoarder: enable use of embedded fonts
  • DataHoarder: fix fontconfig cache dir
  • DataHoarder: reject renderingModes not support by the runtime
  • ThaUnknown/jassub: For losyyand maybe js-blend: move conversion from monocoloured bitmaps to integer RGB to WASM, as attempted in feat: perf: WASM decode #138, but without abusing ASS_Image
  • ThaUnknown/jassub: Time subtitle frames to video frames. See jassub’s onDemandRender option.
  • Future: check if renderAhead can be made to work with renderingmodes other than wasmBlend
  • Future: there's a bunch of dead code, like not-exposed and never called functions
  • Future: replace the continuous rescaling hacks (e.g. timeouts) with something proper (see also the not-yet-reviewed fix resize #132 which seems to cover some resize bugs, but not all the current hacks)
@libass libass locked and limited conversation to collaborators May 7, 2022
@TheOneric TheOneric changed the title Track jellyfin and DataHoarder backports Upstreaming jellyfin and DataHoarder features May 8, 2022
@libass libass unlocked this conversation Jun 18, 2022
@TheOneric TheOneric pinned this issue Oct 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant