Commit Graph

727 Commits

Author SHA1 Message Date
gnattu 5262439300 Enable hardware Trickplay processing pipeline for VideoToolbox (#11510) 2024-07-17 13:50:32 -04:00
Cody Robibero c207404089 Merge pull request #11511 from jellyfin/trickplay-keyframe-only 2024-07-17 12:28:58 -04:00
gnattu 68bfabbaba Add option to extract keyframe only during trickplay image generation
This would be significantly faster than decoding every frame, but it does have compatibility issues. Not all decoders support this mode, notably the VP9 decoder, CUVID decoders, and QSV decoders.

Some videos with very long key-frame intervals may also perform poorly with this mode, as the image timing could become too inaccurate to reflect the actual frame.

Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-17 00:47:22 +08:00
Bond-009 c666f9d050 Use real temp dir instead of cache dir for temp files (#12226) 2024-07-15 08:44:14 -04:00
gnattu 2dee5b8d04 Correctly specify format for tonemap
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-12 23:15:49 +08:00
gnattu 016dc9d86c Add SIMD optimized software tonemap support
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-12 23:15:49 +08:00
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 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 be21d51742 fix: move trickplay specific option into TrickplayOptions (#11229) 2024-03-28 09:26:01 -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 557b8f0c78 Apply suggestions from code review
Drop the unnecessary initial capacity from the list.

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-03-17 20:45:00 +08:00
nyanmisaka 47a77974b8 Apply suggestions from code review
Drop excludeFilePaths and lower the log level to debug to avoid
spamming in the log file.

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-03-17 17:17:47 +08:00
nyanmisaka 50541aea91 Apply suggestions from code review
Add excludeFilePaths to skip segment files in which IOException occurred.

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-03-16 22:09:31 +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
nyanmisaka 55fd6b5cb9 Add sanity check for ThrottleDelaySeconds
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-03-16 07:35:05 +08:00
nyanmisaka eca9bf41bc Add TranscodingSegmentCleaner to replace ffmpeg's hlsenc deletion
FFmpeg deletes segments based on its own transcoding progress,
but we need to delete segments based on client download progress.
Since disk and GPU speeds vary, using hlsenc's built-in deletion
will result in premature deletion of some segments. As a consequence,
the server has to constantly respin new ffmpeg instances, resulting
in choppy video playback.

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