nyanmisaka
c693047467
Fix duplicate trickplay images for interlaced videos
...
Signed-off-by: nyanmisaka <nst799610810@gmail.com >
2026-06-09 20:18:17 +08:00
Piotr Niełacny
8d544e4842
Fix A/V desync when resuming HLS with video transcode + audio copy ( #16580 )
...
CodeQL / Analyze (csharp) (push) Has been cancelled
Format / format-check (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
OpenAPI Publish / OpenAPI - Publish Artifact (push) Has been cancelled
OpenAPI Publish / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI Publish / OpenAPI - Publish Stable Spec (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
Stale PR Check / Check PRs with merge conflicts (push) Has been cancelled
Stale Issue Labeler / Check for stale issues (push) Has been cancelled
Fix A/V desync when resuming HLS with video transcode + audio copy
2026-05-28 19:26:28 +02:00
nyanmisaka
69b0b63a95
Fix inconsistent extradata generated by hevc_vaapi on AMD driver
...
This change is required for upstream ffmpeg 8+, because its
mp4 muxer will drop in-band PS when using codec tag hvc1.
Signed-off-by: nyanmisaka <nst799610810@gmail.com >
2026-05-24 03:34:54 +08:00
jakobkukla
eb2cef1b7e
Fix StyleCop pattern matching whitespace false-positive
2026-05-21 20:48:43 +02:00
jakobkukla
37350282cc
Run tree-wide dotnet format
2026-05-21 20:48:41 +02:00
Piotr Niełacny
405d987557
Normalize VobSub .sub to .idx for embedding, add EncodingHelper tests
...
Move the .sub to .idx path normalization outside the burn-in check so
it applies to subtitle embedding as well. ffmpeg requires the .idx file
to read VobSub subtitles.
Add unit tests for GetMapArgs and GetInputArgument covering internal
subs, external SRT, multi-file SRT, multi-stream MKS containers, and
VobSub .sub/.idx path normalization.
2026-05-19 13:03:07 +02:00
Piotr Niełacny
a15b426e73
Fix external subtitle stream mapping for multi-stream containers
...
Compute the in-file stream index for external subtitles instead of
hardcoding -map 1:0. For single-stream files (SRT/ASS/VTT) the index
is always 0, preserving existing behavior. For multi-stream containers
like MKS, the correct track is selected by counting sibling streams
that share the same Path.
Add unit tests for GetMapArgs covering internal subs, external SRT,
multiple external files, and multi-stream MKS containers.
2026-05-19 13:03:07 +02:00
Piotr Niełacny
2a689f268b
Embed external subtitles into MKV when transcoding
...
Allow external subtitle files (SRT, ASS, PGS, etc.) to be muxed into
MKV output containers when the device profile requests Embed delivery.
Previously, the IsExternal guard in GetSubtitleProfile excluded external
subtitles from Embed consideration entirely, forcing them to be served
as separate sidecar files even when the output container supports
embedding.
Changes:
- Extract CanConsiderEmbedSubtitle in StreamBuilder to allow external
subs through when transcoding to MKV
- Add external subtitle file as FFmpeg input (-i) for Embed delivery
- Map external embedded subs from the correct FFmpeg input index
- Fix external audio map index to account for the new subtitle input
- Extract NeedsExternalSubtitleMuxing in EncodingHelper to deduplicate
the external subtitle input check
Fixes #16403
2026-05-19 13:03:07 +02:00
nyanmisaka
b9ee9b0660
Backport pull request #16819 from jellyfin/release-10.11.z
...
Fix rate control in av1_amf encoder
Original-merge: a023b9c88d
Merged-by: Bond-009 <bond.009@outlook.com >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-05-12 12:26:13 -04:00
Tim Eisele
a9865367d8
Safeguard against invalid GUIDs ( #16813 )
...
Safeguard against invalid GUIDs
2026-05-12 18:12:54 +02:00
nyanmisaka
fc251265d9
Check videoRotation in video stream copy
...
Signed-off-by: nyanmisaka <nst799610810@gmail.com >
2026-05-09 15:20:29 +08:00
nyanmisaka
d9ced0d639
Use strict QSV CPB size for less powerful H.264 decoder
...
CodeQL / Analyze (csharp) (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
OpenAPI Publish / OpenAPI - Publish Artifact (push) Has been cancelled
OpenAPI Publish / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI Publish / OpenAPI - Publish Stable Spec (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
Signed-off-by: nyanmisaka <nst799610810@gmail.com >
2026-05-03 12:25:33 +02:00
gnattu
bb12b122c3
Backport pull request #16718 from jellyfin/release-10.11.z
...
Allow HDR10 for VPP tonemapping
Original-merge: 938c043596
Merged-by: Bond-009 <bond.009@outlook.com >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-04-29 15:39:34 -04:00
Shadowghost
0bf7653e36
Fix GHSA-jh22-fw8w-2v9x
2026-04-06 11:37:45 +02:00
Shadowghost
b846958f2c
Add additional validations
2026-04-06 11:37:45 +02:00
nyanmisaka
5b3537b3d7
Backport pull request #16519 from jellyfin/release-10.11.z
...
Fix Null was not checked before using the H264 profile
Original-merge: 89e914c7f1
Merged-by: Bond-009 <bond.009@outlook.com >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-03-30 14:08:07 -04:00
scheilch
5cfa466d8b
fix: cap GetVideoBitrateParamValue at 400 Mbps ( #16467 )
...
* fix: cap GetVideoBitrateParamValue at 400 Mbps
The previous cap of int.MaxValue / 2 (~1073 Mbps) is far beyond any
realistic transcode target and allows encoder parameters derived from
it (e.g. -bufsize = bitrate * 4 for QSV) to grow to multi-gigabit
values, which is incorrect regardless of whether the encoder tolerates it.
400 Mbps is a safe upper bound for all current hardware encoders:
- Intel QSV H.264 peaks at ~300 Mbps (High 5.1 CPB = 168.75 Mbit)
- HEVC High Tier Level 5.x supports ~240 Mbps
- AV1 hardware encoders have no meaningful real-world constraint at
this level
The existing FallbackMaxStreamingBitrate mechanism (default 30 Mbps)
provides a similar guard but only when LiveStreamId is set, covering
M3U and HDHR sources. Plugin-provided streams and any source that
bypasses the LiveTV pipeline are not subject to it and can pass
unreasonably high values downstream. This cap closes that gap for
all encoder paths.
Suggested by @nyanmisaka in review of #16376 .
* Update MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
---------
Co-authored-by: Bond-009 <bond.009@outlook.com >
2026-03-29 12:39:16 +02:00
scheilch
386c4cb723
Fix int32 overflow in QSV rate-control parameter computation ( #16376 )
...
Stale PR Check / Check PRs with merge conflicts (push) Has been cancelled
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
Stale Issue Labeler / Check for stale issues (push) Has been cancelled
Fix int32 overflow in QSV rate-control parameter computation
2026-03-24 18:02:00 +01:00
nyanmisaka
b82a2ced75
Backport pull request #16423 from jellyfin/release-10.11.z
...
Fix readrate options in FFmpeg 8.1
Original-merge: 29b2361857
Merged-by: Bond-009 <bond.009@outlook.com >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-03-23 17:06:22 -04:00
IceStormNG
cf03e3118a
Backport pull request #16293 from jellyfin/release-10.11.z
...
Apply analyzeduration and probesize for subtitle streams to improve codec parameter detection
Original-merge: fda49a5a49
Merged-by: Bond-009 <bond.009@outlook.com >
Backported-by: Bond_009 <bond.009@outlook.com >
2026-03-13 15:33:07 -04:00
Abitofevrything
8d052a6cb1
Merge pull request #15926 from abitofevrything/feat/accurate_hls_seeking
...
Refactor HLS transcode seeking
2026-01-18 12:17:06 +01:00
Richard Torhan
e70355fbe1
Fix nullable annotation
2026-01-14 18:55:47 +01:00
Richard Torhan
140c459ac3
Fix logger CA2024: Do not use StreamReader.EndOfStream in async methods
2026-01-14 18:55:47 +01:00
nyanmisaka
b429306f05
Backport pull request #15819 from jellyfin/release-10.11.z
...
Fix the use of HWA in unsupported H.264 Hi422P/Hi444PP
Original-merge: 4c587776d6
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2025-12-28 07:22:32 -05:00
nyanmisaka
43797fee42
Backport pull request #15776 from jellyfin/release-10.11.z
...
Fix AV1 decoding hang regression on RK3588
Original-merge: 035b5895b0
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2025-12-28 07:22:27 -05:00
nyanmisaka
deb81eae10
Backport pull request #15670 from jellyfin/release-10.11.z
...
Fix the empty output of trickplay on RK3576
Original-merge: 98d1d0cb35
Merged-by: nielsvanvelzen <nielsvanvelzen@users.noreply.github.com >
Backported-by: Bond_009 <bond.009@outlook.com >
2025-12-03 14:04:27 -05:00
gnattu
8cd6ef37c4
Backport pull request #15556 from jellyfin/release-10.11.z
...
Prevent copying HDR streams when only SDR is supported
Original-merge: 1e7e46cb82
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2025-12-03 14:04:18 -05:00
nyanmisaka
348b2992d7
Backport pull request #15072 from jellyfin/release-10.11.z
...
Reject stream copy of HDR10+ video if the client does not support HDR10
Original-merge: a725220c21
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2025-10-27 15:43:08 -04:00
Nyanmisaka
badf22fcc2
Limit decoder thread count on AMD AMF to save VRAM ( #14943 )
2025-10-04 08:04:25 -06:00
Tim Eisele
9c298c52f5
Expose ExtractAllExtractableSubtitles ( #14876 )
2025-09-26 13:45:01 -06:00
Thomas Jones
2a499aaa95
Fix CA1051 warnings in EncodingJobInfo.cs
...
Convert public fields to auto-properties and fix member ordering
Co-authored-by: Derpipose <90276123+Derpipose@users.noreply.github.com >
2025-09-20 23:31:58 -06:00
Bond-009
6796b3435d
Avoid constant arrays as arguments ( #14784 )
2025-09-12 13:58:28 -06:00
Nyanmisaka
db55d983f8
Only enable VAAPI MJPEG encoder on Intel iHD driver ( #14433 )
2025-07-07 18:05:14 -06:00
Nyanmisaka
ebdc756547
Fix -fps_mode option being applied on input ( #14379 )
2025-06-26 17:48:43 -06:00
Bond-009
a537c66da1
Merge pull request #14322 from gnattu/disable-hdr-non-hdr-clients
...
Don't check dynamic metadata removal for static HDR formats
2025-06-19 11:27:23 +02:00
Nyanmisaka
e8291fc856
Fix QSV "static surface pool size exceeded" on Windows
...
d3d11va doesn't support dynamic pool size, use vpp filter ctx to relay to prevent encoder async and bframes from exhausting the decoder pool.
2025-06-17 15:02:13 +08:00
gnattu
368808eba4
Don't check dynamic metadata removal for static HDR formats
...
Those videos have no metadata to be removed at all, just force transcoding when the client does not support it.
2025-06-17 02:29:16 +08:00
gnattu
bdb3adeb30
Don't attempt to do metadata removal for dovi without fallback ( #14240 )
2025-06-08 07:29:17 -06:00
nyanmisaka
1ee705f3e1
Fix RKRGA 2pass scaling issue caused by auto AR reduction
...
Signed-off-by: nyanmisaka <nst799610810@gmail.com >
2025-05-26 23:49:04 +08:00
nyanmisaka
0e0c7c5c59
Offload 1080p+ subtitle scaling to RKRGA
...
Signed-off-by: nyanmisaka <nst799610810@gmail.com >
2025-05-26 23:49:04 +08:00
nyanmisaka
56231222df
Enable OpenCL deinterlacer for AMF on Windows when available
...
Signed-off-by: nyanmisaka <nst799610810@gmail.com >
2025-05-20 22:07:00 +08:00
Nyanmisaka
07093c84c8
Use VBR and MBBRC in QSV encoders for better quality ( #14079 )
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
2025-05-08 14:43:13 -06:00
Nyanmisaka
4199f7acc2
Fix the transparency issue of ASS subtitle rendering in HWA ( #14024 )
2025-05-03 08:21:08 -06:00
Tim Eisele
df5671263f
Merge pull request #13847 from Shadowghost/rework-chapter-management
...
Rework chapter management
2025-04-26 14:01:12 +02:00
Nyanmisaka
8be8ea60f1
Add DoVi Profile 5 support for Rockchip RKMPP ( #13911 )
Merge Conflict Labeler / Labeling (push) Has been cancelled
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
2025-04-13 07:43:58 -06:00
Nyanmisaka
98697e75ca
Fix seeking beyond EOF again ( #13871 )
2025-04-08 14:58:55 -06:00
Joshua M. Boniface
7d705249ca
Merge commit from fork
...
Fix validation of API parameters passed to FFmpeg
2025-04-05 14:44:19 -04:00
Tim Eisele
d0c1ef8002
Update MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
...
Co-authored-by: Cody Robibero <cody@robibe.ro >
2025-04-03 20:42:33 +02:00
timminator
d1ed6593ad
Make ReadInputAtNativeFramerate configurable for M3U tuner ( #13773 )
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
2025-04-03 09:18:00 -06:00
Tim Eisele
596b635511
Cleanup extracted files ( #13760 )
...
* Cleanup extracted files
* Pagination and fixes
* Add migration for attachments to MigrateLibraryDb
* Unify attachment handling
* Don't extract again if files were already extracted
* Fix MKS attachment extraction
* Always run full extraction on mks
* Don't try to extract mjpeg streams as attachments
* Fallback to check if attachments were extracted to cache folder
* Fixup
2025-04-03 09:17:14 -06:00