Commit graph

604 commits

Author SHA1 Message Date
gnattu
8851ace543
Enable Dolby AC-4 decoder (#11486) 2024-07-17 12:35:40 -04:00
Cody Robibero
c207404089
Merge pull request #11511 from jellyfin/trickplay-keyframe-only 2024-07-17 12:28:58 -04:00
gnattu
e851bb869b
Simply AMF Windows checking
Co-authored-by: Nyanmisaka <nst799610810@gmail.com>
2024-07-17 22:25:28 +08:00
gnattu
b28d22545a Simplify condition check
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-17 21:25:29 +08:00
gnattu
0340eccb52 Force software decoding when hardware decoder does not support keyframe only mode but requested by user
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-17 00:47:22 +08: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
9653cf46fb
Merge pull request #12201 from Bond-009/bdsegmentfullname
Use complete paths in BD info
2024-07-16 14:43:27 +02: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
518c166a39 Prefer tonemapx during HDR image extraction
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-12 23:15:49 +08:00
gnattu
1f32f95b9c Add tonemapx to filter list
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-12 23:15:49 +08:00
Bond_009
60c45d6273 Use complete paths in BD info
This way we don't need to find the complete path later
2024-07-01 00:21:06 +02:00
Rivenlalala
7d438a748f Backport pull request #12065 from jellyfin/release-10.9.z
Make m2ts extension case-insensitive

Original-merge: f2a5ccf102

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

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-23 11:40:51 -04:00
gnattu
8424ff5b61 Backport pull request #11857 from jellyfin/release-10.9.z
Fix ffprobe -user_agent parameter

Original-merge: d0336cd67e

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

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-01 18:41:05 -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
NotSaifA
833a1da355 Backport pull request #11790 from jellyfin/release-10.9.z
Trickplay: kill ffmpeg when task is cancelled

Original-merge: 4a344bebc0

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

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:46:19 -04:00
Bond-009
5c828df567 Backport pull request #11781 from jellyfin/release-10.9.z
Retain order blu-ray segments

Original-merge: 2ddf2a7866

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

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-25 11:46:16 -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
7336427ce6 Backport pull request #11675 from jellyfin/release-10.9.z
Fix quality parameter for vaapi_mjpeg

Original-merge: ddd5c302b4

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

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-17 13:51:51 -04:00
gnattu
4044431610
Fix broken hardware encoder and filter for trickplay (#11506) 2024-05-07 07:23:28 -06:00
gnattu
6b6aab04ce
Fix apple audio codecs (#11315) 2024-04-08 07:42:47 -06:00
Caidy
4440600379
fix: rtsp live stream ffprobe timeout (#11279) 2024-04-02 07:04:25 -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
gnattu
be21d51742
fix: move trickplay specific option into TrickplayOptions (#11229) 2024-03-28 09:26:01 -06:00
gnattu
e2e366f6d0
fix: prefer cli ffmpeg path over config file (#11219) 2024-03-26 13:11:51 -06:00
Nyanmisaka
775815d09c
Fix sar->dar typo in #11185 (#11210) 2024-03-25 05:36:18 -06:00
gnattu
b1870792b1
fix: use Metal tonemap instead of OpenCL (#11198) 2024-03-24 08:20:05 -06:00
gnattu
bf285a572d
fix: make sure the dimension is divisible by two for zscale (#11185) 2024-03-19 15:42:45 -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
gnattu
1cb7264f0d feat: fully support videotoolbox hardware filters
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-28 17:56:59 +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
52c79c050b Order files before creating concat config 2024-02-10 16:53:38 +01:00
Mark Cilia Vincenti
f26fc7dfb2 Merge changes 2024-02-03 08:45:14 +01:00
nyanmisaka
52da00c3c7 Register RKMPP HW codecs and filters
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-02-01 18:59:27 +08:00
Mark Cilia Vincenti
e47144e7c7 Updated contributors, upgraded to AsyncKeyedLocker 6.3.0 which now supports non-keyed locking using a similar interface and changed SemaphoreSlim-based locks to using AsyncNonKeyedLocker. 2024-01-14 12:11:16 +01:00
Bond_009
635d67d458 Revert "Use System.Net.IPNetwork"
This reverts commit 117d05d288.
2023-11-14 21:16:33 +01:00
Vincent Lark
123c6e7d1b Extract the MediaEncoder probing command arguments builder 2023-10-26 20:06:45 +02:00
Vincent Lark
8ee9a0adf9 Forward user_agent config to ffprobe 2023-10-21 23:57:05 +02:00
Nick
6b94d55e1e Fix for new WaitForExitAsync method 2023-10-18 20:01:40 -07: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
Claus Vium
733ee12ee4
Merge pull request #10378 from Bond-009/waitforexitasync
Use Process.WaitForExitAsync added in .NET 5
2023-10-10 20:12:07 +02:00
Bond_009
4757ce105b Use Process.WaitForExitAsync added in .NET 5 2023-10-10 00:18:50 +02:00
Bond_009
c707baed83 Jellyfin.Drawing minor improvements
Reduce duplicate/dead code
2023-10-08 17:10:04 +02:00
Bond-009
0b31997b2f
Merge pull request #10348 from Bond-009/strings 2023-10-08 14:07:30 +02:00
Stepan Goremykin
212976277d Remove redundant ToString call for value types 2023-10-08 01:17:32 +02:00
Stepan Goremykin
2d7835c848 Join declaration and assignment 2023-10-08 01:16:43 +02:00
Stepan Goremykin
3259d484ff Use generated regex 2023-10-08 01:16:00 +02:00
Stepan Goremykin
8ea812b65d Reduce string literal length by using verbatim string 2023-10-08 00:26:12 +02:00
Stepan Goremykin
0870af330d Remove redundant verbatim string prefixes 2023-10-08 00:15:38 +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
Thomas Johansen
d0dc080c93 I think this is better 2023-09-29 14:41:35 +02:00
Nick
f97e844c4f Minor code review changes (cvium) 2023-09-04 13:14:45 -07:00
Claus Vium
956e3dab43
fix: accessing Standard* of a Process requires manually disposing them afterwards (#10125) 2023-08-20 20:06:57 +02: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
Bond-009
b95fa294c9
Merge pull request #9799 from Bond-009/genregex 2023-07-06 19:56:00 +02: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
b5f0760db8 Use RegexGenerator where possible 2023-06-28 17:07:57 +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
6744e712d3 Use config values 2023-06-22 16:23:51 -07:00
nicknsy
6c649a7e72 Options 2023-06-22 16:19:59 -07:00
nicknsy
ca7d1a1300 Trickplay generation, manager, storage 2023-06-22 16:19:59 -07:00
Bond-009
3982b0e057
Reduce bottlenecks scan code (#9863) 2023-06-21 21:01:47 -06:00
nyanmisaka
be01aeecd9 Add AV1 hardware and software encoding
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-06-20 03:50:02 +08:00
Stepan Goremykin
910617bbc3 Remove redundant 'else' keywords 2023-04-06 19:38:34 +02:00
Stepan Goremykin
779a22a76a Remove redundant Cast 2023-04-06 19:17:27 +02:00
Bond-009
2ce08eb184
Merge pull request #9388 from Shadowghost/output-bitrate-channels-master 2023-03-20 17:46:11 +01:00
Bond-009
6351d1022b
Merge pull request #9254 from Shadowghost/dvdbdfix 2023-03-10 15:48:35 +01:00
Shadowghost
0da5255f12 Apply review suggestions 2023-03-10 15:27:17 +01:00
Shadowghost
cd852d43c1 Add more comments and logging, streamline code 2023-03-10 15:27:17 +01:00
Shadowghost
2403a0a367 Apply review suggestions 2023-03-10 15:27:05 +01:00
Róbert Örn Ketilsson
ef3868ff50 Backport pull request #9178 from jellyfin/release-10.8.z
Escape the path to pass as a command line argument

Original-merge: 09f1c7f535

Merged-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>

Backported-by: crobibero <cody@robibe.ro>
2023-03-09 19:29:39 -05:00
Shadowghost
f3840e0fdb Fix encoder checks for DTS and TrueHD 2023-02-26 22:38:00 +01:00
Bond_009
48263078b4 Reduce string allocations by regex 2023-02-17 15:00:06 +01:00
gnattu
ef4ae9a2dd
Implement hardware filters for videotoolbox, use Apple AAC encoder when available (#7807) 2023-02-08 23:42:17 +01:00
Shadowghost
f2b7f664aa Apply review suggestions 2023-02-04 20:16:45 +01:00
Shadowghost
d89cd188eb Fix BD ISO playback 2023-02-04 18:39:50 +01:00
Shadowghost
edf3909157 Use FFmpeg concat for DVD and BD folder playback 2023-02-04 18:39:45 +01:00
Shadowghost
ddfdec7f46 Fix BD and DVD folder probing and playback 2023-02-04 18:37:57 +01:00
Shadowghost
519709bf10 Revert "Remove DvdLib (#9068)"
This reverts commit db1913b08f.
2023-02-04 18:36:47 +01:00
Bond_009
65d605b17d Improve ffprobe json parsing and don't log error for Codec Type attachment 2023-02-01 14:58:04 +01:00
Patrick Barron
db1913b08f
Remove DvdLib (#9068)
* Remove DvdLib

* Update error message for blu-ray folders

Co-authored-by: Shadowghost <Shadowghost@users.noreply.github.com>

* Remove BDInfo

* Remove MediaEncoder.GetPrimaryPlaylistVobFiles

* Remove BlurayDiscInfo

Co-authored-by: Shadowghost <Shadowghost@users.noreply.github.com>
2023-01-20 13:29:45 +01:00
Bond-009
81c8890b6d
Fix all warnings in MediaBrowser.MediaEncoding (#9073) 2023-01-11 17:22:01 -07:00
Claus Vium
7195223dd8
Merge pull request #8866 from Bond-009/mediaencoder
Always log when starting ffprobe
2022-12-07 18:28:41 +01:00
Bond_009
b366dc2e6e Use ArgumentException.ThrowIfNullOrEmpty 2022-12-07 16:43:59 +01:00
Bond_009
ec6b7efe23 Always log when starting ffprobe
Now when we fail we can always see the filename in the logs
Don't log 2x in debug mode
2022-12-07 16:04:58 +01:00
Bond_009
52194f56b5 Replace != null with is not null 2022-12-05 15:01:13 +01:00
Bond_009
c7d50d640e Replace == null with is null 2022-12-05 15:00:20 +01:00
Bond-009
b2def4c9ea
Fix build (#8859) 2022-12-05 14:56:58 +01:00
Bond-009
210a4921f2
Fix some warnings and only disable TreatWarningsAsErrors for CodeAnalysis (#8709) 2022-12-05 13:54:28 +01:00
Negulici-R. Barnabas
7db1813cc8 changed ChapterImageResolution in model to enum type;
added 144p to the ImageResolution enum;
updated chapters limit comment inside FFProbeVideoInfo.cs;
2022-11-13 16:23:21 +02:00
Negulici-R. Barnabas
b7aa5ed862
Merge branch 'jellyfin:master' into master 2022-11-13 15:29:16 +02:00
nyanmisaka
560d0838c7 Add Vulkan filtering support for AMD VAAPI (Vega/gfx9+)
This requires:
- VK_EXT_image_drm_format_modifier extension
- Linux kernel version >= 5.15
- jellyfin-ffmpeg5 >= 5.0.1-2

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2022-10-16 23:08:59 +08:00
Bill Thornton
e8c12e5078 Backport pull request #8280 from jellyfin/release-10.8.z
Fix ffmpeg analyze duration env var taking priority over media source

Original-merge: 632fb05f46

Merged-by: Claus Vium <cvium@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2022-09-23 23:09:36 -04:00
nyanmisaka
0309c5622e Backport pull request #8213 from jellyfin/release-10.8.z
Fix high single thread usage in throttler

Original-merge: ba026716c1

Merged-by: Claus Vium <cvium@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2022-09-23 23:09:35 -04:00
luz paz
9ec2870b10 Fix various typos
Found via `codespell -q 3 -S ./Emby.Server.Implementations/Localization -L allready,doesnt,inh,receivedfrom,whoknows`
2022-08-15 06:48:34 -04:00
Negulici-R. Barnabas
12ec0e285d Chapter Images:
- chapter image extraction intervals, limit count and resolutions can be set by the user from the server general settings;
2022-07-18 17:50:52 +03:00
Cody Robibero
a65397ae14 Merge pull request #7950 from nyanmisaka/brighter-vpp-tonemap
(cherry picked from commit b36543275f)
Signed-off-by: Joshua Boniface <joshua@boniface.me>
2022-06-29 01:26:15 -04:00
Bond-009
c19c787273 Merge pull request #7828 from nyanmisaka/fix-dovi-tonemap
Fix Dolby Vision profile 5 and 8 to SDR HW tone-mapping

(cherry picked from commit 8595a979a8)
Signed-off-by: crobibero <cody@robibe.ro>
2022-06-10 23:43:17 -04:00