Commit Graph

163 Commits

Author SHA1 Message Date
Shadowghost 6d7950bddc Fix container parameter validation 2025-03-28 08:21:37 +01:00
Bond-009 9734892322 Merge pull request #12925 from Bond-009/await
Always await instead of directly returning Task
2025-01-28 11:29:46 +01:00
Bond-009 bcdffa74a8 Remove useless checks and dead code (#13405)
* Remove useless checks and dead code

* Enable adaptive bitrate streaming again

* Disable adaptive bitrate streaming by default
2025-01-28 11:29:22 +01:00
Josh Soref 044cf9fb85 chore: fix spelling
* a
* acceleration
* addition
* altogether
* api clients
* artist
* associated
* bandwidth
* cannot
* capabilities
* case-insensitive
* case-sensitive
* configuration
* delimiter
* dependent
* diacritics
* directors
* enable
* explicitly
* filters
* finish
* have
* hierarchy
* implicit
* include
* information
* into
* its
* keepalive
* localization
* macos
* manual
* matching
* metadata
* nonexistent
* options
* overridden
* parsed
* parser
* playback
* preferring
* processes
* processing
* provider
* ratings
* retrieval
* running
* segments
* separate
* should
* station
* subdirectories
* superseded
* supported
* system
* than
* the
* throws
* transpose
* valid
* was

link: forum or chat rooms

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-01-25 20:05:15 -05:00
Bond_009 a70200af14 Disable adaptive bitrate streaming by default 2025-01-23 10:42:53 +01:00
gnattu b7f6ccc306 Backport pull request #13113 from jellyfin/release-10.10.z
Only do DoVi remux when the client supports profiles without fallbacks

Original-merge: 9464f9e62266266bcec2a97f88fcc988aa4976a6

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

Backported-by: Bond_009 <bond.009@outlook.com>
2024-11-30 17:59:39 -05:00
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