Commit graph

466 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
Nyanmisaka 4f1efb3996
Re-enable the legacy NVIDIA CUVID decoder in full HWA pipeline (#7413) 2022-03-08 16:36:30 +01:00
Isaac Gordezky 5e779f20ee Series: issue-6450
Issue: https://github.com/jellyfin/jellyfin/issues/6450

Enable DirectPlay responses
Rewrite DirectPlay and DirectStream resolution
Prefer copy transcode video codec options
Enhance condition processor
Support DirectStream and Transcode with parity
Rework audio stream selection and add tests for ExternalAudio
Update MediaInfoHelper to only call StreamBuilder once
2022-03-06 18:13:54 -07:00
Joshua M. Boniface 947ff9defe
Merge pull request #7404 from nyanmisaka/omx 2022-03-05 14:35:41 -05:00
nyanmisaka bfc27e494b Remove the deprecated OMX and MMAL HWA 2022-03-05 21:47:59 +08:00
nyanmisaka de4a084b03 Set the name of intel vaapi driver explicitly
Fix crashes on older intel gfx when both iHD and i965 driver are existed.
2022-03-05 01:32:06 +08:00
Claus Vium 6498a5baca
Merge pull request #7387 from jellyfin/nvdec-threads 2022-03-01 16:53:23 +01:00
Nyanmisaka 4239f80c81
Lowering the VRAM usage on NVDEC decoder 2022-03-01 23:14:35 +08:00
Nyanmisaka ba8e478a2f
Fix the path to the extracted fonts on Windows 2022-03-01 22:41:54 +08:00
Bond-009 eff3d3e67e
Merge pull request #7275 from Nalsai/burn-subtitle-attached-fonts 2022-03-01 11:21:19 +01:00
Cody Robibero 3c0c7572ef
Merge pull request #7338 from mueslimak3r/hls-remove-seek-param 2022-02-28 20:16:19 -07:00
Nyanmisaka 9251c875b1
Update presets for NVENC encoder 2022-02-28 23:05:08 +08:00
Isaac Gordezky def8500dd0
Update MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2022-02-21 07:54:13 -05:00
cameron 36cdeaa53c dont use noaccurate_seek for hls 2022-02-18 23:18:28 -08:00
Isaac Gordezky 151ddd400d [Bugfix] Provile bitStreamArgs for HLS fMP4
Enable the audio bitstream arguments to ffmpeg for both ts and fMP4 HLS streaming
2022-02-18 13:18:08 +00:00
Nils Fürniß ab40554759
add extracting attachments for ffmpeg to burn subs 2022-02-10 01:01:08 +01:00
Ace Olszowka ea7e5e639d Fix h264_v4l2m2m acceleration in Raspberry Pi 4 2022-02-07 20:41:07 -07:00
nyanmisaka 8c3f98f41b Also seek the external audio stream 2022-01-09 13:49:40 +08:00
nyanmisaka ddc2569258 Fix the wrong logic in HEVC VP9 10bit hwdec boxes 2022-01-08 22:31:45 +08:00
Cody Robibero 82260e22a2 ADd more null check 2022-01-06 21:49:13 -07:00
Cody Robibero 7bfc6b5679 Remove more warnings 2021-12-27 07:38:06 -07:00
Cody Robibero ebbde383e8 Fix analysis issues 2021-12-26 11:08:43 -07:00
nyanmisaka 728a5988b3 Merge remote-tracking branch 'origin/master' into hwa 2021-12-25 00:33:17 +08:00
nyanmisaka b2d85a02c2 Apply suggestions from code review
Co-authored-by: Cody Robibero <cody@robibe.ro>
Co-authored-by: Claus Vium <cvium@users.noreply.github.com>
Co-authored-by: Bond_009 <bond.009@outlook.com>
2021-12-24 17:03:57 +08:00
nyanmisaka 4b9c84c52e EncodingHelper hwaccel pipelines refactor
separate the HW pipeline according to HWA method for maintainability.
2021-12-24 17:03:57 +08:00
Jonas Resch d47811bdaf Fix wrong ffmpeg map argument due to wrong calculation 2021-12-08 10:17:25 +01:00
Jonas Resch 99a48554a6
Optimize calculation of external audio stream index in MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2021-12-03 19:19:22 +01:00
Jonas Resch 120828d8d0
Replace escaped quote string with quote character in MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2021-12-03 19:18:43 +01:00
Jonas Resch 0894a6193f Implement coding standards from 2nd code feedback 2021-11-30 19:31:46 +01:00
Jonas Resch a68e58556c Implement code feedback
- Rewrite AudioResolver
- Use async & await instead of .Result
- Add support for audio containers with multiple audio streams (e.g.
  mka)
- Fix bug when using external subtitle and external audio streams at the
  same time
2021-11-30 19:31:46 +01:00
Jonas Resch 9978164438 Add support for external audio files 2021-11-30 19:31:46 +01:00
Cody Robibero 9234e5bf80 Remove all instances of en-US culture 2021-09-26 09:11:25 -06:00
Bond_009 0d16c48998 Fix some warnings 2021-09-09 15:59:13 +02:00