Skip to content

Commit

Permalink
Merge branch 'master' into force-flac-remux
Browse files Browse the repository at this point in the history
  • Loading branch information
felix920506 authored Oct 24, 2024
2 parents 6e50ab3 + 4ce5867 commit f6dbc6e
Show file tree
Hide file tree
Showing 24 changed files with 779 additions and 166 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ jobs:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with:
cache: npm
node-version: 20
Expand All @@ -33,7 +33,7 @@ jobs:
npm ci --no-audit
npm run build
- name: Upload artifact
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with:
name: jellyfin-org__build
path: build
Expand Down Expand Up @@ -86,7 +86,7 @@ jobs:
path: build
- name: Publish to Cloudflare
id: cf
uses: cloudflare/wrangler-action@f84a562284fc78278ff9052435d9526f9c718361 # v3.7.0
uses: cloudflare/wrangler-action@b2a0191ce60d21388e1a8dcc968b4e9966f938e1 # v3.11.0
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ jobs:

steps:
- name: Check out Git repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Set up Node.js
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with:
node-version: 20
check-latest: true
Expand All @@ -33,7 +33,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Set up problem matcher
uses: xt0rted/markdownlint-problem-matcher@1a5fabfb577370cfdf5af944d418e4be3ea06f27 # v3.0.0
- name: Run markdownlint
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ jobs:

steps:
- name: Check out Git repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Set up Node.js
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with:
node-version: 20
check-latest: true
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
83 changes: 83 additions & 0 deletions blog/2024/09-10-release-roadmap-10.10.0/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
---
title: Release Roadmap for 10.10.0
description: We are about to start the 10.10.0 release cycle; here is the roadmap. Please help us test!
authors: joshuaboniface
slug: release-roadmap-10.10.0
tags: [release, testing]
---

![Good heavens, look at the time!](./10.10.0.jpg)

We are pleased to announce that we are now beginning the process for the 10.10.0 release, with a *planned* release date of Saturday, October 26th (updated - see below), 2024! We said 6 months in our 10.9.0 release posts, and we're sticking by that! The feature freeze proper starts next week, with a soft "new PR freeze" today, so here's what you need to know about the timeline and a recap of how to help us test 10.10.0 before release. Remember, the more people who help test it out before release, the less bugs we're likely to find *after* release, so fire up those secondary servers and warn your users: 10.10.0 is coming!

Developers/contributors, and those users who want a bit more information, please read on!

\- Joshua

{/* truncate */}

## The Release

## What's Different This Time?

Not much at all! We're following the same general process as the 10.9.0 release, though with a slightly tweaked timeline and with more defined steps.

### The Release Timeline

- Monday, September 9th, 2024 (unstable `20240909`): Feature PR last-call, first beta. Any *new* feature PRs should get in right now to avoid missing the feature freeze. This is your 1 week warning! Developers/contributors **please keep on top of your PR review feedback** or your PR may **miss the following deadlines and have to wait** until 10.11.0.
- Monday, September 16th, 2024 (unstable `20240916`): Feature freeze, second beta. Any *new* feature PRs after this point must wait until 10.11.0 (in another ~6 months). In-flight feature PRs will likely make it assuming that all feedback is resolved before the API freeze. Again **developers/contributors, please keep on top of your PR review feedback**. New PRs should be **bugfixes only** after this point. Users **should be safe to begin testing in earnest** with this unstable.
- Monday, September 23rd, 2024 (unstable `20240923`): API freeze, third beta. **All feature PRs should be merged by this point**. If they're not, they will be moved to the 10.11.0 project and only merged to `master` once 10.10.0 is released. API is now soft-frozen so that **client developers can begin confidently working on any client support changes needed for 10.10.0**.
- Monday, September 30th, 2024 (unstable `20240930`): API lock, first release candidate. **Major bugfix PRs should hopefully be either be merged or well in-flight** by this point. Only **non-API-changing bugfixes** after this point. We should have a feature overview blog post in draft state by this point.
- Monday, October 7th, 2024 (unstable `20241007`): Final planned unstable, second release candidate. **The release should basically be ready to go**, and any remaining bugfix PRs **should be merged before this unstable**.
- Saturday, October 12th, 2024: Release of 10.10.0!

### Possible Timeline Changes

EDIT 2024-10-12: We have opted to take the **two week** delay due to pending changes in Web that must get in. We are currently planning for a release on October 26th.

Since this is a much smaller and quicker release than 10.8.0 or 10.9.0 were, hopefully this is enough time to get everything sorted and ready to go. But if we find it's **not**, we reserve the right to add an extra week in one or both of the following places:

- After the Feature freeze, if we find that there are any outstanding **major** bugfixes that require additional time to merge before the API freeze.
- After the API lock, if we find that there are any outstanding **non-API-breaking** bugfixes that require additional time to merge before the final unstable.

If neither of those happen, the release will proceed as planned; otherwise, an extra step will be added into the timeline after the given points that matches the previous stage. This might push the final unstable back to either October 14th or October 21st, and the final release to either October 19th or October 26th. If this is relevant to your interests, please keep an eye on our [Announcements Matrix channel](https://matrix.to/#/#jellyfin-announce:matrix.org) for announcements.

### Information for 3rd Party Clients

After the API freeze, our API should ideally remain stable, though it's possible there might be minor changes up until the API lock step. Please feel free to begin testing compatibility and report any issues to us now, and keep an eye out on those dates for the final API specification.

### Information for Contributors

If you're contributing to Jellyfin and your feature PRs miss the deadline, **please don't fret**. We are committed to this shorter major release timeline going forward, so 10.11.0 is at most about 6 months away. Your feature should eventually make it in.

If you wish to help by submitting a bugfix, please do so as soon as you can, as we'd like to get as many fixes in and tested before the API lock as possible, to give at least 2 weeks of final testing before the release. Ensure you clearly specify that it is a bugfix, and ensure you keep your changes to an absolute minimum needed to fix the bug. **Bugfix PRs will target the `master` branch until the final release**, at which point they will target the `release-10.10.z` branch for upcoming point releases.

## How You Can Test

Testing this release should be very easy, identical to 10.9.0. Since our pre-releases are "just" our unstable releases here, that means that following our normal "unstable" installation process is all you need to do.

To find that, visit our [main server downloads page](https://jellyfin.org/downloads/server), select the platform you require along the top centre, then on the top right, select "Unstable". The instructions and links will now be for the unstable release. You can also find [additional testing documentation in the docs](https://jellyfin.org/docs/general/testing/).

For Docker this simply means pulling the `unstable` tag on the image. For Debian and Ubuntu repositories, this means adding `unstable` to your existing `jellyfin.sources` entry. For other platforms, please review the provided instructions as not all platforms will support unstable.

Next, before installing an unstable release, ensure that you **back up your existing server configuration**. It is **not possible to downgrade in-place** as there are database changes. Just making a simple copy of your configuration directories **with Jellyfin stopped** is sufficient, and where those can be found depends on the platform.

Next, if you use plugins, install the unstable plugin repository. Due to compatibility issues, we distribute plugins for unstable in a separate manifest, so this must be added manually, and on first start all incompatible plugins (i.e. all existing plugins on an upgrade) will be upgraded. To add the repository, navigate to the Administration Dashboard, Advanced, Plugins, then click the Repositories tab at the top. Click the "+" Add button, and enter "Unstable" for the name and "https://repo.jellyfin.org/files/plugin-unstable/manifest.json" for the Repository URL. We also recommend that you disable/remove the Stable repository at this time, as it's possible they will conflict. After the initial update you may need to manually restart your Jellyfin instance one further time to ensure all plugins are activated properly.

Finally, install the unstable version and run it. The upgrade should happen seamlessly in the background, and you'll be able to log in to your Jellyfin instance normally after this point. Ensure you perform a _hard_ refresh in your browser, and restart all clients.

Once 10.10.0 is fully released, you can switch back easily by reinstalling the new stable version, and changing back to the stable plugin manifest (URL "https://repo.jellyfin.org/files/plugin/manifest.json"). Unstable releases will be **paused for at least 2 weeks** after the release to give you plenty of time to switch.

## How To Report Bugs

While running the unstable prereleases, reporting bugs is important. After all, if we don't know about bugs, we can't work to fix them!

First, if you encounter a bug, ensure you're running the latest unstable version, and try to reproduce it a couple times. If you can't, it's always possible it was a one-off occurrence, but if it happens again, definitely report it!

Bugs can be reported on [our GitHub issues page](https://github.com/jellyfin/jellyfin) or [on our Forums](https://forum.jellyfin.org).

You'll want to include two important pieces of information in your bug report, beyond the standard asks. First, ensure you include the "Build Version" as shown in the main dashboard page. This reports the exact unstable build you're using to help narrow down what might have caused the issue. This is doubly important if you see a new bug turn up in a future unstable build. Second, please make clear that you are running the unstable builds and not stable builds, as well as if this is an upgrade or fresh install, as that can be an important piece of information.

Once your bug is reported, please check back diligently to see if any additional information has been requested, and we hope to get it fixed soon.

Thanks, and happy watching!
6 changes: 4 additions & 2 deletions docs/general/administration/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,15 +113,17 @@ Jellyfin uses fonts to render text in many places.

### Server Side System Fonts

The system fonts installed on the server are used for burning in subtitles and rendering cover images. How to install them depends on the operating system.
The system fonts installed on the server are used for burning in subtitles and rendering cover images. How to install them depends on the operating system or if a container is being used.

### Client Side System Fonts

The system fonts installed on the client devices are used to display the text in the client interface as well as render subtitles for some clients. How to install them depends on the operating system.

### Fallback Fonts

The `Fallback Fonts` option is currently used by the web client to render subtitles only. This can be set to a folder containing fonts for this purpose. These fonts are limited to a total size of 20MB. Lightweight formats optimized for web like woff2 are recommended. A tool to convert normal TrueType (`.ttf`) and OpenType (`.otf`) fonts to woff2 can be found [in their repo](https://github.com/google/woff2).
The `Fallback Fonts` installed on the server are loaded up by the web client to render ASS subtitles. They will be used if no other existing fonts (such as MKV attachments or client-side fonts) can be used to render certain glyphs, such as CJK characters, instead of displaying an empty "tofu" block.

This setting can be set to a folder on the server containing fonts for this purpose. These fonts are limited to a total size of 20 MB, since all of them will be always preloaded in the browser, regardless of whether they'll be needed or not. Lightweight formats optimized for web like woff2 are recommended. A tool to convert normal TrueType (`.ttf`) and OpenType (`.otf`) fonts to woff2 can be found [in their repo](https://github.com/google/woff2).

### Downloading Fonts

Expand Down
39 changes: 31 additions & 8 deletions docs/general/administration/hardware-acceleration/intel.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,14 @@ The QSV interface provided by Intel [OneVPL](https://github.com/intel/vpl-gpu-rt

QSV can be used together with VA-API and DXVA/D3D11VA for a more flexible hybrid transcoding pipeline.

:::caution

**ICL** (Ice Lake) / **JSL** (Jasper Lake) / **EHL** (Elkhart Lake) and older generations are losing support for QSV on Linux, since the MediaSDK runtime has been deprecated by Intel, and may stop working in a few years, by which point you will have to switch to VA-API. Please use newer hardware if you are shopping for hardware.

Please read [deprecation notice](https://github.com/Intel-Media-SDK/MediaSDK) and [legacy platforms support](https://github.com/intel/compute-runtime/blob/master/LEGACY_PLATFORMS.md) for more info.

:::

:::note

- Unlike NVIDIA NVENC, there is no concurrent encoding sessions limit on Intel iGPU and ARC dGPU.
Expand Down Expand Up @@ -656,17 +664,32 @@ This has been tested with LXC 3.0 and may or may not work with older versions.

#### LXC On Proxmox

:::note
1. Make sure your GPU is available as a DRI render device on the Proxmox host, e.g. `/dev/dri/renderD128`.
If not, [install the necessary drivers](#debian-and-ubuntu-linux) on the host.

- Jellyfin needs to run in a **privileged** LXC container.
2. **Proxmox VE 8 or Newer**:

- An existing unprivileged container can be converted to a priviledged container by taking a backup and restoring it as priviledged.
Setup a `Device Passthrough` for the render device via the `Resources` section of the web interface.
Be sure to set the correct GID via the advanced options of the dialog, e.g. `989` for the `render` group.
GIDs can be looked up in `/etc/group` inside the LXC.

:::
:::note

1. Install the required drivers on the Proxmox host.
You must be logged in as `root`. Other administrator accounts are not allowed to perform this action.

:::

**Proxmox VE 7 or Older**:

:::note

- Jellyfin needs to run in a **privileged** LXC container.

- An existing unprivileged container can be converted to a privileged container by taking a backup and restoring it as privileged.

:::

2. Add your GPU to the container by editing `/etc/pve/lxc/<CONTAINER_ID>.conf`.
Add your GPU to the container by editing `/etc/pve/lxc/<CONTAINER_ID>.conf`.

You may need to change the GIDs in the examples below to match those used on your host.

Expand All @@ -682,9 +705,9 @@ This has been tested with LXC 3.0 and may or may not work with older versions.
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file
```

3. Restart your container and install the required drivers in your container.
3. Restart your container and [install the required drivers in your container](#configure-on-linux-host).

4. Add `jellyfin` user to the `video`, `render` and/or `input` groups depending on who owns the device inside the container.
4. Add the `jellyfin` user to the group you chose in Step 2, i.e. the group that owns the DRI render device inside the LXC.

5. Configure Jellyfin to use QSV or VA-API acceleration and change the default GPU `renderD128` if necessary.

Expand Down
4 changes: 3 additions & 1 deletion docs/general/administration/hardware-acceleration/nvidia.md
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,9 @@ Root permission is required.
resources:
reservations:
devices:
- capabilities: [gpu]
- driver: nvidia
count: all
capabilities: [gpu]
```

:::note
Expand Down
20 changes: 16 additions & 4 deletions docs/general/administration/hardware-selection.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,20 @@ Apple ≥ Intel ≥ Nvidia >>> AMD<sup>\*</sup>

### Server with Integrated Graphics

If you are not panning to use a dedicated graphics card, the following specs are recommended:
If you are not planning to use a dedicated graphics card, the following specs are recommended:

- CPU: Intel Core i3-7100, Apple M series or newer (excluding Intel J/M/N/Y series up to 11th gen)
- CPU: Intel Core i5-11400, Intel Pentium Gold G7400, Intel N100, Apple M series or newer (excluding Intel J/M/N/Y series up to 11th gen)
- RAM: 8GB System RAM (Consider adding more on Windows 11)
- Graphics: Intel HD 630, Apple M series or newer
- Graphics: Intel UHD 710, Apple M series or newer

AMD is **NOT** recommended if you plan to use integrated graphics for Jellyfin.

:::caution

Intel 7-10th gen CPUs have been removed from this list, since the toolkit for these generations has been deprecated by Intel. QSV on Linux for these iGPUs may stop working in a few years. You will be required to switch to VA-API when that happens.

:::

### Server with Dedicated Graphics

If you are planning to use a dedicated graphics card (including upgrading an old system with a dedicated GPU), the following specs are recommended:
Expand Down Expand Up @@ -120,7 +126,7 @@ AMD is not recommended because of poor quality H.264 and H.265(HEVC) output, as

A list of common codecs can be found [here](/docs/general/clients/codec-support/)

The following is a list of video codecs Jellyfin supports transocding to:
The following is a list of video codecs Jellyfin supports transcoding to:

- H.264 (Most common transcode target)
- H.265 (Limited supported by clients)
Expand All @@ -136,6 +142,12 @@ Intel CPUs with a model description that ends with F don't have integrated graph

If you are planning to use Linux with Intel 12/13th Gen integrated graphics or ARC, these GPUs only work on Linux Kernel 6.2 or newer. Please check your distribution to make sure it has a supported Linux Kernel version. Please read [Known Intel limitations on Linux](/docs/general/administration/hardware-acceleration/known-issues#intel-on-linux) for more info.

:::caution

Intel 10th gen and older integrated graphics are losing support for QSV on Linux due to the SDK for these platforms being deprecated by Intel. Please choose a newer CPU if you plan on using Intel integrated graphics.

:::

#### Nvidia Graphics

Please refer to [this table](https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new) for supported codecs.
Expand Down
Loading

0 comments on commit f6dbc6e

Please sign in to comment.