Commit graph

587 commits

Author SHA1 Message Date
nyanmisaka
d37c5d8921 Backport pull request #12149 from jellyfin/release-10.9.z
Fix MicroDVD being recognized as DVDSUB subtitles

Original-merge: 6010bc01c3

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-23 11:40:59 -04:00
Bond-009
92dcf0c13b
Merge pull request #12124 from gnattu/enable-hi10p-vt
Enable H.264 Hi10P hardware decode for Apple Silicon on macOS >=14.6
2024-06-20 11:38:20 +02:00
gnattu
9792fb117c Enable H.264 Hi10P hardware decode for Apple Silicon on macOS >=14.6
macOS 14.6 beta and macOS 15 beta enables h264 10bit hardware decode on Apple Silicon.

Signed-off-by: gnattu <gnattuoc@me.com>
2024-06-18 06:26:43 +08:00
gnattu
4fa3c30df2 Backport pull request #11894 from jellyfin/release-10.9.z
Escape tmpConcatPath for DVD and BD folder

Original-merge: 26419c64f5

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-01 18:41:14 -04:00
gnattu
b123f7ffcd Backport pull request #11851 from jellyfin/release-10.9.z
Relax remuxing requirement for LiveTV

Original-merge: 0392daa103

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-01 18:41:04 -04:00
nyanmisaka
fc14c08bcc Backport pull request #11830 from jellyfin/release-10.9.z
Fix the IOSurf error in QSV transcoding

Original-merge: 5e7514243c

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:46:30 -04:00
nyanmisaka
2faa8c141f Backport pull request #11799 from jellyfin/release-10.9.z
Disable VA-VK interop on not supported kernel versions

Original-merge: eb437e7163

Merged-by: Bond-009 <bond.009@outlook.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:46:23 -04:00
gnattu
ac0064110b Backport pull request #11798 from jellyfin/release-10.9.z
Recalculate trickplay image height for anamorphic videos

Original-merge: d9232e05f1

Merged-by: Bond-009 <bond.009@outlook.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:46:22 -04:00
Bond-009
c7e0be3c3b Backport pull request #11774 from jellyfin/release-10.9.z
Apply audio boost when downmixing regardless of downmixalgo

Original-merge: 06a5ddda5e

Merged-by: nielsvanvelzen <nielsvanvelzen@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:46:14 -04:00
Shadowghost
debd9eb8ce Backport pull request #11754 from jellyfin/release-10.9.z
Fix BD/DVD folder chapter image extraction

Original-merge: 52be8be28f

Merged-by: Bond-009 <bond.009@outlook.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:46:12 -04:00
gnattu
487ebd3ca8 Backport pull request #11713 from jellyfin/release-10.9.z
Fix VideoToolbox H264 constrained profile option

Original-merge: d608f1e3cc

Merged-by: Bond-009 <bond.009@outlook.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:46:08 -04:00
gnattu
424ca49c26 Backport pull request #11689 from jellyfin/release-10.9.z
Workaround ffmpeg keyframe seeking for external subtitles

Original-merge: 02937873b1

Merged-by: nielsvanvelzen <nielsvanvelzen@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-17 13:51:54 -04:00
gnattu
6f78ac2ff3
Use more accurate rounding in GetFixedOutputSize (#11435)
* Use more accurate rounding in GetFixedOutputSize

Signed-off-by: gnattu <gnattuoc@me.com>

* Force trickplay thumbnails to have even width

Signed-off-by: gnattu <gnattuoc@me.com>

* Use Convert.ToInt32

Signed-off-by: gnattu <gnattuoc@me.com>

* Force video size as thumbnail size if the trickplay width setting is larger

This will fix an issue when the trickplay setting contains a very huge width, but the video has a lower resolution than that setting. Our scaling filter logic will not do any upscale, and we have to force to use the video width

Signed-off-by: gnattu <gnattuoc@me.com>

---------

Signed-off-by: gnattu <gnattuoc@me.com>
2024-04-30 13:41:46 +02:00
gnattu
374b6ca0e2
Only apply custom downmix to 5.1 audios (#11401) 2024-04-22 10:23:36 -06:00
Bond-009
7d28d08e08
Enable more warnings as errors (#11288) 2024-04-12 17:45:01 -06:00
gnattu
6b6aab04ce
Fix apple audio codecs (#11315) 2024-04-08 07:42:47 -06:00
gnattu
fe88a484d1
fix: don't do empty hwupload for VT (#11235) 2024-03-30 09:25:22 -06:00
gnattu
a8f1668540
fix: unset qmin and qmax for vt (#11246)
Co-authored-by: Nyanmisaka <nst799610810@gmail.com>
2024-03-30 08:53:46 -06:00
nyanmisaka
deb36eeeda Add HWA video transpose support (+-90/180)
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-03-30 06:09:58 +08:00
Nyanmisaka
16e72d6883
Fix the broken codecs shifting (#11243) 2024-03-28 13:57:33 -06:00
gnattu
5db0c5a0e4
fix: forward port patch for GHSA-866x-wj5j-2vf4 (#11228) 2024-03-28 09:26:14 -06:00
gnattu
2e9aa146a5
fix: remove legacy codecs (#11217) 2024-03-26 04:32:06 -06:00
gnattu
b1870792b1
fix: use Metal tonemap instead of OpenCL (#11198) 2024-03-24 08:20:05 -06:00
gnattu
cf16110a56
fix: map encoder preset to quality setting for VideoToolbox (#11205) 2024-03-24 08:19:48 -06:00
vedant
3bbb57eb83
Add new VideoRangeTypes to fully support DoVi on webOS (#10469) 2024-03-23 07:39:49 -06:00
nyanmisaka
ae7c0c83e9 Bump the required minimum ffmpeg version to 4.4
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-03-17 21:30:42 +08:00
nyanmisaka
39b953e41c Set input readrate for using SegmentDeletion with stream-copy
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-03-16 07:35:05 +08:00
Cody Robibero
a92de9b2e3
Merge pull request #11014 from gnattu/vf-videotoolbox 2024-03-09 09:19:36 -07:00
gnattu
0909ee7208 fix: convert all non-yuv420 inputs to nv12
Signed-off-by: gnattu <gnattuoc@me.com>
2024-03-09 15:16:00 +08:00
gnattu
e6dee627e3 fix: force a pixel format for 10-bit inputs
Signed-off-by: gnattu <gnattuoc@me.com>
2024-03-09 14:22:27 +08:00
gnattu
d10ad6c383 fix: no need to check filters prematurely
Signed-off-by: gnattu <gnattuoc@me.com>
2024-03-09 11:02:53 +08:00
gnattu
2f66871040 fix: also check if we are doing scaling
Signed-off-by: gnattu <gnattuoc@me.com>
2024-03-08 23:37:27 +08:00
gnattu
f31549cc0d fix: code clean up
Co-authored-by: nyanmisaka <nst799610810@gmail.com>
Signed-off-by: gnattu <gnattuoc@me.com>
2024-03-08 23:23:24 +08:00
gnattu
a30dc81b28 fix: stack overflow
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-29 09:03:00 +08:00
gnattu
ec896a901c fix: code style
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-29 05:37:31 +08:00
gnattu
1cb7264f0d feat: fully support videotoolbox hardware filters
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-28 17:56:59 +08:00
Nyanmisaka
aa3aaa94fe
Fix the preproc filters for dvbsub burn-in (#11034)
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-02-20 10:49:39 -07:00
gnattu
21bf557145 fix: use hardware videotoolbox filter even only scale is available
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-16 01:43:40 +08:00
gnattu
0a8560f64a fix: use hardware filter option name explicitly
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-16 01:30:12 +08:00
gnattu
2f3e5cfa06 fix: correctly set the supported formats of videotoolbox tone mapping
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-16 01:08:17 +08:00
gnattu
0a4457dd68 fix: typo
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-16 00:18:19 +08:00
gnattu
5c743f2b4d feat: separate videotoolbox tone mapping option
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-16 00:16:59 +08:00
gnattu
cf3e3e2c3d fix: code style
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-15 23:22:32 +08:00
gnattu
c18ef13b3b feat: add tone mapping for videotoolbox
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-15 23:00:51 +08:00
gnattu
44cb9f5fdd feat: add hw scale filter for videotoolbox
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-15 21:52:41 +08:00
Shadowghost
9230472056 Fix file extension based on container 2024-02-10 16:57:10 +01:00
nyanmisaka
e62dab627e Add full HWA transcoding pipeline for RKMPP
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-02-01 18:59:27 +08:00
nyanmisaka
92c0ec0c1b Use video framerate for ASS subtitle HW burn-in
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-01-28 20:06:42 +08:00
nyanmisaka
9323390add Fix the display aspect ratio of PGSSUB subtitle burn-in
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-01-28 20:06:42 +08:00
Nyanmisaka
aa71129cff
Use -noauto{scale,rotate} for disabling auto filters (#10810)
`-auto{scale,rotate} 0` has been dropped in upstream FFmpeg.

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-01-04 16:31:45 -07:00
jkhsjdhjs
547d97d602
Use eof_action=pass when overlaying subtitles
The previous behavior using `eof_action=endall` and `shortest=1` would
end the video stream if one of the input stream (video, subtitle) ends.
In some cases the duration of the overlayed subtitles is shorter than the
video stream, causing the output to end when the subtitles end and dropping
the remaining video stream.

This commit changes this behavior so `eof_action=pass` is used instead,
which continues passing the video stream through even if the subtitles end
earlier [1]. `shortest=1` is also removed, as this option implies
`eof_action=endall`.

If the subtitle stream has a higher duration than the video stream, the output
will also end with the video stream without `shortest=1`, as the video stream
is the primary input to the `overlay` filter.

Fix #10698

[1] https://ffmpeg.org/ffmpeg-filters.html#Options-for-filters-with-several-inputs-_0028framesync_0029
2023-12-13 13:11:42 +01:00
Bond_009
b62b0ec2b5 Fix warnings 2023-11-14 21:14:21 +01:00
nyanmisaka
9c270b149c Fix mismatch between intel VAAPI UMD/KMD in rare cases
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-10-22 19:06:35 +08:00
Nick
cd662506a1 Merge branch 'master' into trickplay 2023-10-18 19:27:05 -07:00
Stepan Goremykin
8d7e4229ca Merge branch 'master' into fix-resharper-warnings
# Conflicts:
#	Emby.Server.Implementations/Net/SocketFactory.cs
#	RSSDP/SsdpCommunicationsServer.cs
#	RSSDP/SsdpDeviceLocator.cs
#	RSSDP/SsdpDevicePublisher.cs
2023-10-12 20:11:16 +02:00
Bond-009
0b31997b2f
Merge pull request #10348 from Bond-009/strings 2023-10-08 14:07:30 +02:00
Stepan Goremykin
2d7835c848 Join declaration and assignment 2023-10-08 01:16:43 +02:00
Stepan Goremykin
8ea812b65d Reduce string literal length by using verbatim string 2023-10-08 00:26:12 +02:00
Bond-009
1141883f77
Merge pull request #10321 from feilongfl/master 2023-10-07 00:15:01 +02:00
Claus Vium
6593aa1255
Merge pull request #10135 from 0x25CBFC4F/fix/ffmpeg-probesize
Fixed probesize argument passing to FFmpeg
2023-10-06 11:38:31 +02:00
Claus Vium
a18b3fbe70
simplify the if 2023-10-06 10:49:20 +02:00
Bond_009
b176beb88e Reduce string allocations
Some simple changes to reduce the number of allocated strings
2023-10-06 01:04:25 +02:00
fei long
33b3331c72
change Substring to AsSpan
Co-authored-by: Bond-009 <bond.009@outlook.com>
2023-10-06 06:26:52 +08:00
YuLong Yao
808e59fdda
add pcm format when codec is pcm_* 2023-10-02 13:14:53 +08:00
Nyanmisaka
99cc1ed13a
Fix A53 CC SEI breaking H26x_VAAPI hardware encode
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-09-25 22:56:59 +08:00
Nyanmisaka
5ba855098d Backport pull request #10151 from jellyfin/release-10.8.z
Fix performance loss of QSV HDR tone-mapping on Windows

Original-merge: 757f88b1a2

Merged-by: Bond-009 <bond.009@outlook.com>

Backported-by: Bond_009 <bond.009@outlook.com>
2023-09-21 15:35:39 -04:00
Nyanmisaka
3c2b1b5e97
Fix AV1 NVENC encoder profile option (#10199) 2023-09-08 18:20:11 -06:00
nyanmisaka
31d2f653fa Fix H264 QSV encoding when the bitrate is too low
h264_qsv expects a bitrate equal or higher than 1000k, or it fails.

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-09-02 00:25:40 +08:00
Bond_009
97d92e7087 Use the correct trancode path
EncodingOptions.TranscodingTempPath can be empty (and is by default),
the correct way to get the trancode path is
EncodingConfigurationExtensions.GetTranscodePath which falls back to $CACHEPATH/transcodes
when EncodingOptions.TranscodingTempPath is null or empty.
2023-08-27 17:27:03 +02:00
Bond_009
18a311d32f == null -> is null 2023-08-22 21:14:54 +02:00
null
8dc58e8f04
Added handling of FFmpeg:probesize variable 2023-08-20 21:31:14 +04:00
nyanmisaka
44946ded4e Disable AMD EFC feature since it's still unstable in upstream
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-08-03 19:16:46 +08:00
nyanmisaka
5b71cd8af9 Expand AMD VA-API Vulkan filtering support to Polaris/gfx8
ROCm OpenCL runtime is not needed anymore when using HDR tone-mapping on Polaris/gfx8.

This change requires jellyfin-ffmpeg5 5.1.3-4 or jellyfin-ffmpeg6 6.0-5
or newer versions.

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-08-03 06:24:02 +08:00
Nyanmisaka
148c86ee0d
Only disable the global_header for AMD HEVC encoder (#10045) 2023-07-29 06:52:58 -06:00
Bond-009
b95fa294c9
Merge pull request #9799 from Bond-009/genregex 2023-07-06 19:56:00 +02:00
nyanmisaka
76538aacb9 Backport pull request #9928 from jellyfin/release-10.8.z
Disable global_header on AMD VA-API encoder

Original-merge: a732a28229

Merged-by: Bond-009 <bond.009@outlook.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2023-07-02 01:41:17 -04:00
Nick
6d9e43cfe0 Merge branch 'master' into trickplay 2023-06-28 21:43:23 -07:00
Bond-009
e53e53eb29
Merge pull request #9907 from nyanmisaka/av1e 2023-06-28 17:34:20 +02:00
Bond-009
4ac07f6c76
Merge pull request #9890 from Shadowghost/videorange-rework 2023-06-28 17:30:26 +02:00
Bond_009
b5f0760db8 Use RegexGenerator where possible 2023-06-28 17:07:57 +02:00
Shadowghost
20a4509991 Migrate VideoRange and VideoRangeType to Enum 2023-06-28 12:02:20 +02:00
Nick
3377032228 crobibero styling, format, code suggestions 2023-06-22 16:23:52 -07:00
Nick
dd8ef08592 Move fps filter to GetVideoProcessingFilterParam 2023-06-22 16:23:52 -07:00
nicknsy
ca7d1a1300 Trickplay generation, manager, storage 2023-06-22 16:19:59 -07:00
nyanmisaka
27d0d8a7f2 Refine SwDec and QSV encoding
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-06-20 03:50:02 +08:00
nyanmisaka
be01aeecd9 Add AV1 hardware and software encoding
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-06-20 03:50:02 +08:00
Cody Robibero
4972fbf2a3
Merge pull request #8744 from DomiStyle/segment-deletion 2023-06-19 06:50:13 -06:00
nyanmisaka
f81b004d3f Removed unused lines
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-06-18 10:00:53 +08:00
nyanmisaka
a81f3e7c97 Fix #9642 backport
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-06-18 09:59:55 +08:00
Dominik
17f1e8d19b
Merge branch 'master' into segment-deletion 2023-06-15 19:38:42 +02:00
nyanmisaka
23b9055547 Rearrage the Amd vaapi-vulkan pipeline for synchronization
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-06-13 23:15:30 +08:00
nyanmisaka
fdc16e23c4 Backport pull request #9671 from jellyfin/release-10.8.z
Fix the canvas size for DVBSUB and DVDSUB subtitles

Original-merge: eba95cc7f0

Merged-by: Joshua M. Boniface <joshua@boniface.me>

Backported-by: Bond_009 <bond.009@outlook.com>
2023-06-13 10:55:15 -04:00
nyanmisaka
4c8d382765 Backport pull request #9642 from jellyfin/release-10.8.z
Fix the brightness of VPP tonemap and add the tonemap mode

Original-merge: d5a8419bc5

Merged-by: Cody Robibero <cody@robibe.ro>

Backported-by: Bond_009 <bond.009@outlook.com>
2023-06-13 10:53:35 -04:00
TheTyrius
67bc81ec96 Backport pull request #9538 from jellyfin/release-10.8.z
Fix nvenc preset order

Original-merge: 79bb7560dc

Merged-by: Cody Robibero <cody@robibe.ro>

Backported-by: Bond_009 <bond.009@outlook.com>
2023-06-13 10:44:06 -04:00
Oliver Weyhmüller
fbc039b14b Fix scaleFactor limitation to 1 introduced by pull request #9485 2023-05-07 21:20:44 +02:00
Brett Petch
dfcf0cf292
fix: dead link (#9626) 2023-04-16 11:10:14 -06:00
Stepan Goremykin
910617bbc3 Remove redundant 'else' keywords 2023-04-06 19:38:34 +02:00
Stepan Goremykin
7d7e177265 Remove redundant casts 2023-04-06 19:17:28 +02:00
Stepan Goremykin
2c03f7e85d Use TryGetValue 2023-04-06 19:17:28 +02:00
nyanmisaka
3a25b03ea9 Fix vaapi-vulkan subtitle tearing issue
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-04-02 17:30:22 +08:00