Commit graph

656 commits

Author SHA1 Message Date
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
Joshua Boniface d5ea136dc5 Backport pull request #8174 from jellyfin/release-10.8.z
Disable auto inserted SW scaler for HW decoders

Authored-by: nyanmisaka <nst799610810@gmail.com>

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

Original-merge: 7297431f23
2022-08-01 14:25:45 -04:00
Joshua Boniface 38f6f589d9 Backport pull request #8127 from jellyfin/release-10.8.z
Workaround for linux 5.18+ i915 hang at cost of performance

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

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

Original-merge: 484427b4aa
2022-08-01 14:25:43 -04:00
Joshua Boniface 3e24b8943d Backport pull request #8061 from jellyfin/release-10.8.z
Fix intel dx11-ocl interop taking too long to initialize on windows

Authored-by: nyanmisaka <nst799610810@gmail.com>

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

Original-merge: 9854751137
2022-08-01 14:25:41 -04:00
Joshua Boniface 76f7a80a97 Backport pull request #8152 from jellyfin/release-10.8.z
Fix support for rtsp streams over tcp

Authored-by: Bill Thornton <billt2006@gmail.com>

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

Original-merge: b2fb96ffed
2022-07-24 12:35:46 -04:00
Joshua Boniface adc08b5b4c Backport pull request #8092 from jellyfin/release-10.8.z
Change allow higher opus, vorbis transcode bitrates

Authored-by: Andy Walsh <andy.walsh44+github@gmail.com>

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

Original-merge: 7ef9e95d75
2022-07-20 19:29:07 -04:00
Joshua Boniface a9449d0f23 Backport pull request #8078 from jellyfin/release-10.8.z
fix copy&paste error for requestedRangeTypes preventing stream copy

Authored-by: Andy Walsh <andy.walsh44+github@gmail.com>

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

Original-merge: 47c2c536e4
2022-07-20 19:29:06 -04:00
Joseph 54b3debd27
Add referer parameter to ffmpeg
As of https://trac.ffmpeg.org/ticket/2179, ffmpeg supports referer parameter which injects Referer header to the HTTP request for remote content. Have EncodingHelper pass this in if it's included in RemoteHttpHeaders.
2022-07-18 23:30:27 -07:00
Claus Vium 3e2fbb2685 Merge pull request #8001 from jellyfin/fix-yuvj420p-hwdec
Fix yuvj420p pixel format hardware decoding

(cherry picked from commit d342b79218)
Signed-off-by: Joshua Boniface <joshua@boniface.me>
2022-06-29 01:26:38 -04:00
Joshua M. Boniface 9c97c533ef Merge pull request #7994 from nyanmisaka/fix-throttler
(cherry picked from commit a7d45b5d3a)
Signed-off-by: Joshua Boniface <joshua@boniface.me>
2022-06-29 01:26:38 -04:00
Bond-009 7dab8b8f88 Merge pull request #7975 from jellyfin/libva-driver-env
(cherry picked from commit 910df89cce)
Signed-off-by: Joshua Boniface <joshua@boniface.me>
2022-06-29 01:26:15 -04:00
Bond-009 074d7dc6b6 Merge pull request #7968 from jellyfin/fix-hwa-bluray
(cherry picked from commit 5f15339919)
Signed-off-by: Joshua Boniface <joshua@boniface.me>
2022-06-29 01:26:15 -04:00
Joshua M. Boniface fe32b5e333 Merge pull request #7964 from jellyfin/dovi-side-data
(cherry picked from commit 39d185c7b1)
Signed-off-by: Joshua Boniface <joshua@boniface.me>
2022-06-29 01:26:15 -04: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
Cody Robibero 38102499cb Merge pull request #7947 from nyanmisaka/video-range-condition
(cherry picked from commit f1d56aa5ce)
Signed-off-by: Joshua Boniface <joshua@boniface.me>
2022-06-29 01:26:14 -04:00
Cody Robibero a168040cc8 Merge pull request #7941 from jellyfin/fix-overflow
(cherry picked from commit fd4ffc6ba3)
Signed-off-by: Joshua Boniface <joshua@boniface.me>
2022-06-29 01:26:14 -04:00
Cody Robibero 9c5d30c217 Merge pull request #7925 from nyanmisaka/remove-mpeg4-amf
(cherry picked from commit b295b0478c)
Signed-off-by: crobibero <cody@robibe.ro>
2022-06-14 19:32:09 -04:00
Cody Robibero db8047136d Merge pull request #7924 from jellyfin/improve-swdec-amf-tonemap
(cherry picked from commit 2888080098)
Signed-off-by: crobibero <cody@robibe.ro>
2022-06-14 19:32:09 -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
Joshua M. Boniface 8e9c02f4c6 Merge pull request #7736 from jellyfin/fix-swscale-pgs
(cherry picked from commit 5da4bcc782)
Signed-off-by: Joshua Boniface <joshua@boniface.me>
2022-05-20 23:49:38 -04:00
Cody Robibero 1922ee153e Merge pull request #7716 from Shadowghost/opus-fix
Respect limited opus sampling rates when building trancoding command

(cherry picked from commit 5a9afb0874)
Signed-off-by: crobibero <cody@robibe.ro>
2022-05-20 18:30:57 -04:00
Cody Robibero efcdab116f Merge pull request #7529 from Shadowghost/strm-ffprobe-external-fix
(cherry picked from commit 60affd0965)
Signed-off-by: crobibero <cody@robibe.ro>
2022-05-20 18:30:56 -04:00
Cody Robibero 76cfb8c903 Merge pull request #7643 from jellyfin/h264-level
(cherry picked from commit 12f9132975)
Signed-off-by: crobibero <cody@robibe.ro>
2022-04-28 09:26:45 -04:00
Cody Robibero fe3dbabbff Merge pull request #7580 from jellyfin/external-audio-map
(cherry picked from commit c5212a20a3)
Signed-off-by: Joshua Boniface <joshua@boniface.me>
2022-04-17 15:45:11 -04:00
Cody Robibero a2f1ec23ce Merge pull request #7557 from jellyfin/pgs-qsv-iris655
(cherry picked from commit 620625c4c1)
Signed-off-by: crobibero <cody@robibe.ro>
2022-04-07 12:54:58 -04:00
Cody Robibero 96a03776e1 Fix TranscodeReasons property name 2022-03-26 12:20:29 -06:00
Joshua M. Boniface c229f3ae0a
Merge pull request #7333 from eyezak/hls/audio-bitstream-fmp4 2022-03-25 10:13:58 -04:00
Nyanmisaka 3cea6c61f3
Apply suggestions from code review 2022-03-25 22:12:56 +08:00
Joshua M. Boniface 97d3212410
Merge pull request #7437 from Nalsai/mks-attachments 2022-03-23 20:19:32 -04:00
Nils Fürniß 90463d5e4f
Pass CancellationToken to ExtractAllAttachments 2022-03-22 19:17:48 +01:00
Nils Fürniß 6904edf68c
add extracting attachments from external subs 2022-03-22 19:17:48 +01:00
Nyanmisaka fb8ae0e9a1
Improve fps for cuda tonemap in sw decoding
avoid second copy if subtitle is not applied.
2022-03-22 00:45:07 +08:00
Cody Robibero e6df698df1
Merge pull request #7325 from eyezak/issue/6450 2022-03-12 09:08:25 -07:00
nyanmisaka b2c58338f2 Fix the fMP4 HLS audio sync issue on Safari 2022-03-09 21:28:58 +08:00