[PR #12529] [MERGED] Make Live TV compatibility profiles customizable #13234

Closed
opened 2026-02-07 07:09:21 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/jellyfin/jellyfin/pull/12529
Author: @gnattu
Created: 8/28/2024
Status: Merged
Merged: 9/8/2024
Merged by: @crobibero

Base: masterHead: customizable-livetv-tuner


📝 Commits (5)

  • fba6ecc Make Live TV compatibility profiles customizable
  • 726f1a8 Use Math.Min
  • 467c90e Use non nullable value
  • 031f001 Rename RequiresTsContainerTranscoding to UseMostCompatibleTranscodingProfile for clear intent
  • 80ef57e Add default value for UseMostCompatibleTranscodingProfile

📊 Changes

6 files changed (+29 additions, -21 deletions)

View changed files

📝 Jellyfin.Api/Helpers/StreamingHelpers.cs (+6 -19)
📝 MediaBrowser.Model/Dlna/StreamBuilder.cs (+1 -0)
📝 MediaBrowser.Model/Dto/MediaSourceInfo.cs (+7 -0)
📝 MediaBrowser.Model/LiveTv/TunerHostInfo.cs (+9 -0)
📝 src/Jellyfin.LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs (+2 -0)
📝 src/Jellyfin.LiveTv/TunerHosts/M3UTunerHost.cs (+4 -2)

📄 Description

This allows the previously hard-coded compatibility profiles for Live TV to be customizable on a per-tuner basis. Notably:

  • Selective enabling of the fMP4 transcoding container to support HEVC and HDR content if the tuner is compatible and will not cause playback issues like A/V out of sync.

  • Option to enable or disable HTTP shared streaming (one stream from Jellyfin to the tuner, with multiple clients from Jellyfin). This is useful when the tuner has a stream count limit, but it also caused a lot of playback issues as not all tuners/streams are happy with this.

  • User-customizable fallback streaming bitrate. This is particularly helpful when ffprobe cannot reliably determine the source stream bitrate, making the client request an excessively high transcoding bitrate that could overload the hardware encoder.

These changes also allow the plugins that implements ILiveTvService that can only supply a MedaSourceInfo to use the compatibility profiles. By specifying UseMostCompatibleTranscodingProfile and FallbackMaxStreamingBitrate.

Changes

Issues

Replaces #12483 but this is for 10.10

Fixes #11847


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/jellyfin/jellyfin/pull/12529 **Author:** [@gnattu](https://github.com/gnattu) **Created:** 8/28/2024 **Status:** ✅ Merged **Merged:** 9/8/2024 **Merged by:** [@crobibero](https://github.com/crobibero) **Base:** `master` ← **Head:** `customizable-livetv-tuner` --- ### 📝 Commits (5) - [`fba6ecc`](https://github.com/jellyfin/jellyfin/commit/fba6eccfb14884e5fc5712bb6ef3478b141db8a0) Make Live TV compatibility profiles customizable - [`726f1a8`](https://github.com/jellyfin/jellyfin/commit/726f1a8d750e921e1ecd94adc5b2683ae49e3cdf) Use Math.Min - [`467c90e`](https://github.com/jellyfin/jellyfin/commit/467c90eaf51e5bd778f472c4eef758d78602c83d) Use non nullable value - [`031f001`](https://github.com/jellyfin/jellyfin/commit/031f001c416fe56606576744b8d57e321368cc60) Rename RequiresTsContainerTranscoding to UseMostCompatibleTranscodingProfile for clear intent - [`80ef57e`](https://github.com/jellyfin/jellyfin/commit/80ef57e2c1c2a552f5595451800eda10c5f3197f) Add default value for UseMostCompatibleTranscodingProfile ### 📊 Changes **6 files changed** (+29 additions, -21 deletions) <details> <summary>View changed files</summary> 📝 `Jellyfin.Api/Helpers/StreamingHelpers.cs` (+6 -19) 📝 `MediaBrowser.Model/Dlna/StreamBuilder.cs` (+1 -0) 📝 `MediaBrowser.Model/Dto/MediaSourceInfo.cs` (+7 -0) 📝 `MediaBrowser.Model/LiveTv/TunerHostInfo.cs` (+9 -0) 📝 `src/Jellyfin.LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs` (+2 -0) 📝 `src/Jellyfin.LiveTv/TunerHosts/M3UTunerHost.cs` (+4 -2) </details> ### 📄 Description This allows the previously hard-coded compatibility profiles for Live TV to be customizable on a per-tuner basis. Notably: - Selective enabling of the fMP4 transcoding container to support HEVC and HDR content if the tuner is compatible and will not cause playback issues like A/V out of sync. - Option to enable or disable HTTP shared streaming (one stream from Jellyfin to the tuner, with multiple clients from Jellyfin). This is useful when the tuner has a stream count limit, but it also caused a lot of playback issues as not all tuners/streams are happy with this. - User-customizable fallback streaming bitrate. This is particularly helpful when `ffprobe` cannot reliably determine the source stream bitrate, making the client request an excessively high transcoding bitrate that could overload the hardware encoder. These changes also allow the plugins that implements `ILiveTvService` that can only supply a `MedaSourceInfo` to use the compatibility profiles. By specifying `UseMostCompatibleTranscodingProfile` and `FallbackMaxStreamingBitrate`. <!-- Ensure your title is short, descriptive, and in the imperative mood (Fix X, Change Y, instead of Fixed X, Changed Y). For a good inspiration of what to write in commit messages and PRs please review https://chris.beams.io/posts/git-commit/ and our documentation. --> **Changes** <!-- Describe your changes here in 1-5 sentences. --> **Issues** <!-- Tag any issues that this PR solves here. ex. Fixes # --> Replaces #12483 but this is for 10.10 Fixes #11847 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-07 07:09:21 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#13234