Clone
3
Upstreaming
gnattu edited this page 2025-09-14 01:49:17 +08:00
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.

We regularly evaluate upstreaming changes. In practice, our approach is:

  • Bug fixes: Upstreamed when feasible and aligned with upstream direction.
  • Targeted features: Maintained in this fork when upstream priorities differ or review bandwidth is limited, especially for hardwarespecific features.

Why Some Changes Stay Here

  • Different priorities: Upstream FFmpeg focuses on broad portability and a wide range of use cases. JellyfinFFmpeg prioritizes practical server workflows (HDR/Dolby Vision playback, hardware acceleration pipelines, streaming reliability).
  • Long review cycles: Some feature patches—particularly hardwarespecific ones—can sit without review for months, or indefinitely.
  • Implementation tradeoffs: Certain implementation approaches (e.g., heavy SIMD intrinsics use in the tonemapx filter) may face strong stylistic or architectural objections upstream despite clear benefits in Jellyfin use cases.
  • Legacy constraints: Upstream must keep building across very old CPUs, compilers, and OS versions. We do not carry that burden. Running a media server like Jellyfin on such old platforms that even the hardware vendor drops support is not practical.

What We Still Upstream

  • We continue to propose and upstream bug fixes where they fit upstreams goals.
  • When a feature patch matures and aligns with upstreams direction, were open to contributing it. Until then, we keep it here for Jellyfin users who need it now.

What This Means for You

  • JellyfinFFmpeg likely reduces issues and improves performance for Jellyfin playback.
  • If your needs are basic and upstream FFmpeg already works well, you can keep using it.