Commit Graph

157 Commits

Author SHA1 Message Date
Bond_009 d2db700402 Always await instead of directly returning Task
https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/blob/master/AsyncGuidance.md#prefer-asyncawait-over-directly-returning-task

The performance impact is negligible (and it's me saying that!)
2024-10-31 17:02:06 +01:00
Nyanmisaka b496f979f0 Clean up deprecated -vsync option (#12765) 2024-10-03 08:18:40 -06:00
gnattu 4502024468 Remove all subtitle options from audio endpoints
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-09-22 04:41:30 +08:00
gnattu 1346ebc134 Don't add subtitle option to audio endpoint 2024-09-22 03:13:30 +08:00
gnattu d944f415f3 Let HLS Controller decide if subtitle should be burn in
Previously, we predicted whether the subtitle should be burned in with transcode reasons, but that was not accurate because the actual transcoding codec is only determined after the client has requested the stream. This pass through the option to the `DynamicHlsController` to handle the subtitle burn-in during the actual transcoding process. Now the client should be responsible to conditionally load the subtitle when this option is enabled.
2024-09-22 00:35:41 +08:00
Tim Eisele 0d85af019c Use enums for encoding options (#12561) 2024-09-09 08:43:37 -06:00
Nyanmisaka 5d4f71eb9a Enable tone-mapping and HLS remuxing for DoVi Profile 10 in AV1 (#12604) 2024-09-07 11:19:26 -06:00
nyanmisaka d7be6a5ab0 Tune x264/5 encoding params for realtime playback
Some options that are too performance-intensive are disabled, while
others are left enabled to trade-off between real-time playback and quality.

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-08-30 00:57:00 +08:00
gnattu 2321866302 Remove more outdated options.
Signed-off-by: gnattu <gnattuoc@me.com>
2024-08-12 00:57:50 +08:00
gnattu 26489c4908 Remove container guessing doc from hls
Signed-off-by: gnattu <gnattuoc@me.com>
2024-08-12 00:11:22 +08:00
gnattu a3ebbabf95 Update api doc to remove outdated info
Signed-off-by: gnattu <gnattuoc@me.com>
2024-08-12 00:06:31 +08:00
gnattu 0a1a109b2e Add RFC7845 downmix algorithm (#12300) 2024-07-30 09:50:22 -06:00
Bond-009 d5cf0ad2c8 Merge pull request #11492 from jellyfin/better-vbr-settings
Add better audio VBR settings
2024-07-21 16:15:43 +02:00
gnattu 992eed5ef7 Fix AC-4 Sample rate check
Some Audio codec will have a null CodecTag, check for that to avoid null reference

If the client already requests a specific sample rate, use that instead of our default sample rate for AC-4

Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-18 11:45:16 +08:00
gnattu 8851ace543 Enable Dolby AC-4 decoder (#11486) 2024-07-17 12:35:40 -04:00
gnattu fd5df98616 Move default value to api spec
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-17 21:52:44 +08:00
gnattu 0381c5a288 Add EnableAudioVbrEncoding to TranscodingProfile
This will allow the client selectively disable VBR audio when it causes problems.

Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-17 21:27:35 +08:00
gnattu 78929418cc Use better audio VBR settings
LAME's VBR mode only has advantage over a certain bitrate range. For very low and very high bitrate, use the ABR mode instead.

aac_at's CVBR mode produces very good quality and is not worse than its TVBR mode in blind testing. Use this mode for convenience.

The ffmpeg native aac encoder will have quality regression with its VBR mode. Always use CBR mode for ffmpeg's native aac encoder.

Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-17 21:27:35 +08:00
Bond_009 2459b7e62e Properly await Task.Delay() 2024-04-29 10:16:28 +02:00
gnattu 374b6ca0e2 Only apply custom downmix to 5.1 audios (#11401) 2024-04-22 10:23:36 -06:00
gnattu 5db0c5a0e4 fix: forward port patch for GHSA-866x-wj5j-2vf4 (#11228) 2024-03-28 09:26:14 -06:00
nyanmisaka bf2ef63922 Fix codec vs ActualOutputVideoCodec
codec is copy
ActualOutputVideoCodec is hevc

fixes 3bbb57e

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-03-24 06:45:43 +08:00
vedant 3bbb57eb83 Add new VideoRangeTypes to fully support DoVi on webOS (#10469) 2024-03-23 07:39:49 -06:00
nyanmisaka a3ba974b7b Fix the trailing whitespace
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-03-17 20:44:42 +08:00
Nyanmisaka 98debe4817 Apply suggestions from code review
String interpolation is preferred.

Co-authored-by: Claus Vium <cvium@users.noreply.github.com>
2024-03-17 20:34:18 +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
Mark Cilia Vincenti d1677dc680 AsyncKeyedLock migration 2024-01-03 16:47:25 +01:00
Patrick Barron 9215a4d40a Add ITranscodeManager service 2023-12-21 12:53:50 -05:00
Patrick Barron c2081955c8 Rename and clean up TranscodingJob 2023-12-21 12:53:50 -05:00
Patrick Barron abd74fd5a4 Move TranscodingJobDto and TranscodingThrottler to Controller 2023-12-21 12:53:49 -05:00
Patrick Barron 01fd42cf95 Remove DLNA API code 2023-11-15 20:53:35 -05:00
Nick cd662506a1 Merge branch 'master' into trickplay 2023-10-18 19:27:05 -07:00
lonebyte 74f61fbd79 Fix HLS playback of m4a files with mjpeg stream (#10069) 2023-10-10 22:48:52 +02:00
Bond-009 d5695efad9 Merge pull request #10067 from lonebyte/flac-hls-fixes 2023-10-09 18:28:49 +02:00
Nyanmisaka aa073748c0 Drop experimental status of flac-in-MP4 for FFmpeg 6+
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-10-09 23:12:41 +08: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
Jan Müller fd022ee685 Merge branch 'master' into flac-hls-fixes
# Conflicts:
#	Jellyfin.Api/Controllers/DynamicHlsController.cs
2023-09-16 12:40:05 +02:00
nyanmisaka b2dcc7c90e Fix AV1 playback in LiveTV
AV1 in fMP4 requires global_header data for parsing.
Only disable global_header in TS since it has no global_header.

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-09-02 00:25:40 +08:00
Nyanmisaka c74d3e62d0 Fix the issue that audio bsf only takes effect for remuxing (#10172)
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-08-30 17:18:18 -06:00
Jan Müller 79cff704ff Allow flac inside mp4 for all HLS audio streams
The -strict -2 setting was only added if the encoder was set to 'copy'.
If 'flac' is explicitly requested, we also need to set it, so that
ffmpeg doesn't abort the conversion.

Fixes: #10066
2023-08-01 19:12:52 +02:00
Nick 6d9e43cfe0 Merge branch 'master' into trickplay 2023-06-28 21:43:23 -07:00
Bond-009 4ac07f6c76 Merge pull request #9890 from Shadowghost/videorange-rework 2023-06-28 17:30:26 +02:00
Shadowghost 20a4509991 Migrate VideoRange and VideoRangeType to Enum 2023-06-28 12:02:20 +02:00
nicknsy b18d6bd356 Trickplay playlist and image controller 2023-06-22 16:19:59 -07:00
nicknsy 515ee90fb9 Hls playlist 2023-06-22 16:19:59 -07:00
Dominik 0dffe64489 Add baseUrlParam back in and fix indentation 2023-06-15 19:55:11 +02:00
Dominik 17f1e8d19b Merge branch 'master' into segment-deletion 2023-06-15 19:38:42 +02:00
Stepan Goremykin e74630a613 Use MinBy and MaxBy 2023-04-01 23:00:51 +02: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