Commit graph

689 commits

Author SHA1 Message Date
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
Claus Vium 956e3dab43
fix: accessing Standard* of a Process requires manually disposing them afterwards (#10125) 2023-08-20 20:06:57 +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 6744e712d3 Use config values 2023-06-22 16:23:51 -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
knackebrot e0a7e9baa0 Fix audio VBR calculation
Pass encoder, not codec
2023-03-21 15:01:32 +01:00
Bond-009 2ce08eb184
Merge pull request #9388 from Shadowghost/output-bitrate-channels-master 2023-03-20 17:46:11 +01:00
Shadowghost 3f6a23d7d0 Fix condition in CanStreamCopyAudio 2023-03-17 11:49:07 +01:00
Shadowghost ee4ffd64e1 Prefer other codecs over DTS and TrueHD on transcode 2023-03-15 10:13:06 +01:00
Shadowghost 21dc3fa042 Backport pull request #9485 from jellyfin/release-10.8.z
Fix the bitrate scale factor for h264-to-hevc transcoding

Original-merge: 173a963dbf

Merged-by: Nyanmisaka <nst799610810@gmail.com>

Backported-by: crobibero <cody@robibe.ro>
2023-03-14 18:21:01 -04: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
nyanmisaka 2146ddd20c Backport pull request #9430 from jellyfin/release-10.8.z
Fix Live TV hardware decoding

Original-merge: efc79295de

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

Backported-by: crobibero <cody@robibe.ro>
2023-03-09 19:38:16 -05:00
nyanmisaka f21ab50a81 Backport pull request #9422 from jellyfin/release-10.8.z
Fix stream map when using filter_complex with unlabeled output

Original-merge: 6821a2ab35

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

Backported-by: crobibero <cody@robibe.ro>
2023-03-09 19:38:15 -05:00
nyanmisaka 638bda629b Backport pull request #9391 from jellyfin/release-10.8.z
Fix H.264 baseline hwaccel and enable enhanced Nvdec by default

Original-merge: 22a8283a9e

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

Backported-by: crobibero <cody@robibe.ro>
2023-03-09 19:35:54 -05:00
nyanmisaka f6060bd14b Backport pull request #9355 from jellyfin/release-10.8.z
Some VAAPI VPP and OpenCL fixes

Original-merge: c807712246

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

Backported-by: crobibero <cody@robibe.ro>
2023-03-09 19:33:52 -05:00
nyanmisaka 0905d62224 Adapt vulkan filtering to 6.0 2023-03-05 01:39:58 +08:00
Shadowghost 1f15724398 Use source audio bitrate if requested codec is lossless 2023-03-02 20:57:59 +01:00
Shadowghost c760a50d59 Apply review suggestions 2023-02-27 16:03:12 +01:00
Shadowghost 4a1498f614 Add DTS and TrueHD bitrate limits, enforce bitrate limits if no bitrate is requested 2023-02-26 22:38:02 +01:00
Shadowghost f3840e0fdb Fix encoder checks for DTS and TrueHD 2023-02-26 22:38:00 +01:00
Shadowghost 2e3b4bda7b Take channels into account when calculating fallback audio bitrate 2023-02-26 22:37:01 +01:00
knackebrot aa99aaebc4 Add audio vbr calculation 2023-02-26 22:37:01 +01:00
knackebrot 3e74377036 Calculate output bitrate from output channel count 2023-02-26 22:37:01 +01:00
Nyanmisaka edc627fd5b
Improve the Vulkan based subtitle burn-in performance (#9402)
https://gitlab.freedesktop.org/mesa/mesa/-/issues/850
Currently Mesa RADV does not support a dedicated transfer queue.

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-02-26 07:33:27 -07:00
Cody Robibero 49eb04899c
Update MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
Co-authored-by: Shadowghost <Shadowghost@users.noreply.github.com>
2023-02-24 08:53:08 -07:00
Cody Robibero b3273f0f9a Simplify audio transcode channel lookup 2023-02-24 08:06:19 -07:00
Bond-009 720852f708
Merge pull request #9356 from Bond-009/tryparse 2023-02-20 11:09:54 +01:00
Bond-009 69379d80a1
Merge pull request #9266 from holow29/increase-transcoding-ac-max 2023-02-20 10:26:41 +01:00
Bond_009 24a7e210c3 Optimize tryparse
* Don't check for null before
* Don't try different formats when not needed (NumberFormat.Integer is the fast path)
2023-02-19 16:52:29 +01:00
holow29 724d2986a3 Change transcoderChannelLimit default to 8
Change transcoderChannelLimit default to 8 from 6
Switch to querying for encoder and added more cases to transcoderChannelLimit
Refactor GetNumAudioChannelsParam
2023-02-09 17:37:57 -05: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
James Harvey 4a2245fe1e Move mp4 container names to class and use StringComparer.OrdinalIgnoreCase 2023-02-04 18:52:35 +00: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
James Harvey 42b4ef4529 Remove frag_keyframe on audio, not video 2023-02-04 03:59:35 +00:00
James Harvey c9627f8839 Fix Use built-in type alias 2023-02-04 02:46:14 +00:00
James Harvey 83ae6fcdb4 Fix Braces for multi-line statements should not share line 2023-02-04 02:45:24 +00:00
James Harvey a3f41bbc0c Remove frag_keyframe as it is not relevant for audio 2023-02-04 02:29:21 +00:00
James Harvey f2cc0e7069 Fill in issue/PR comment 2023-02-04 02:17:55 +00:00
James Harvey c70508b089 Add movflags to mp4 audio encoding 2023-02-04 01:56:14 +00:00
James Harvey 29c1f54b57
Fix audio codec not being used in UniversalAudio (#9192) 2023-02-02 14:54:05 +01:00
Bond-009 2436233d9f
Merge pull request #9146 from nyanmisaka/fix-pgs-vulkan 2023-01-24 11:26:35 +01:00
nyanmisaka 6d6b9044ab Backport pull request #9145 from jellyfin/release-10.8.z
Fix PGS position issue in sw decoding #8602

Original-merge: fbb9acf58b

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

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2023-01-22 14:06:20 -05:00
nyanmisaka d6f44818e4 Backport pull request #9050 from jellyfin/release-10.8.z
Update workaround for i915 hang in linux 5.18 to 6.1.3

Original-merge: 464136cfc9

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

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2023-01-22 14:05:00 -05:00
nyanmisaka c9badabe96 Fix PGS position issue in Vulkan pipeline
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-01-21 22:41:26 +08: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
Shadowghost 407c716f82 Add stereo downmix algorithm selection. 2023-01-10 15:29:39 +01:00
Cody Robibero 9a740344be
Add support for .sup subtitle (#8808)
Fixes https://github.com/jellyfin/jellyfin/issues/8628
2022-12-30 08:24:06 -07: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 210a4921f2
Fix some warnings and only disable TreatWarningsAsErrors for CodeAnalysis (#8709) 2022-12-05 13:54:28 +01:00
Bill Thornton 79f01834c1 Add delay_moov flag for progressive mp4 transcoding 2022-12-01 15:31:59 -05:00
Bond-009 da5913aa30
The -autoscale option was added in FFmpeg 4.4 (#8813) 2022-11-30 21:00:39 +01:00
Bond_009 556cc8062d Investigate some TODO comments 2022-11-27 14:13:31 +01:00
Dominik 87f3bdb918 Do not set different force_key_frames for vod streams 2022-11-15 11:32:58 +01:00
nyanmisaka a214ca2598 Backport pull request #8620 from jellyfin/release-10.8.z
Fix the DG2 HDR TM tearing issue on Windows

Original-merge: 3bdc2bff5f

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

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2022-10-28 22:39:01 -04:00
Joshua M. Boniface 74eae1e789
Merge pull request #7708 from nyanmisaka/amd-vaapi-vulkan 2022-10-18 12:13:02 -04: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
Bond_009 a9a5fcde81 Use ArgumentNullException.ThrowIfNull helper method
Did a simple search/replace on the whole repo (except the RSSDP project)
This reduces LOC and should improve performance (methods containing a throw statement don't get inlined)

```
if \((\w+) == null\)
\s+\{
\s+throw new ArgumentNullException\((.*)\);
\s+\}
```

```
ArgumentNullException.ThrowIfNull($1);
```
2022-10-06 20:21:23 +02:00
Hannes Braun 4edeccc5e0
Remove redundant using directives 2022-09-28 16:26:03 +02: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
Bond-009 43ec8e9743
Merge pull request #8144 from joseph39/ffmpeg-referer 2022-09-14 19:49:04 +02: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
Shadowghost 3e5cf9395f Backport pull request #8182 from jellyfin/release-10.8.z
Extract external subs from container before determining characterset

Original-merge: 1faee43b11

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

Backported-by: Joshua Boniface <joshua@boniface.me>
2022-08-13 21:46:33 -04:00