69 Commits

Author SHA1 Message Date
nyanmisaka f2d0ac7b28 Fix missing H.264 and AV1 SDR fallbacks in HLS playlist
Previously, if HEVC encoding was disabled on the server,
SDR fallbacks would not be provided.

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-12-19 20:33:24 +08:00
gnattu 49ac705867 Improve dynamic HDR metadata handling (#13277)
* Add support for bitstream filter to remove dynamic hdr metadata

* Add support for ffprobe's only_first_vframe for HDR10+ detection

* Add BitStreamFilterOptionType for metadata removal check

* Map HDR10+ metadata to VideoRangeType.cs

Current implementation uses a hack that abuses the EL flag to avoid database schema changes. Should add proper field once EFCore migration is merged.

* Add more Dolby Vision Range types

Out of spec ones are problematic and should be marked as a dedicated invalid type and handled by the server to not crash the player.

Profile 7 videos should not be treated as normal HDR10 videos at all and should remove the metadata before serving.

* Remove dynamic hdr metadata when necessary

* Allow direct playback of HDR10+ videos on HDR10 clients

* Only use dovi codec tag when dovi metadata is not removed

* Handle DV Profile 7 Videos better

* Fix HDR10+ with new bitmask

* Indicate the presence of HDR10+ in HLS SUPPLEMENTAL-CODECS

* Fix Dovi 8.4 not labeled as HLG in HLS

* Fallback to dovi_rpu bsf for av1 when possible

* Fix dovi_rpu cli for av1

* Use correct EFCore db column for HDR10+

* Undo outdated migration

* Add proper hdr10+ migration

* Remove outdated migration

* Rebase to new db code

* Add migrations for Hdr10PlusPresentFlag

* Directly use bsf enum

* Add xmldocs for SupportsBitStreamFilterWithOption

* Make `VideoRangeType.Unknown` explicitly default on api models.

* Unset default for non-api model class

* Use tuples for bsf dictionary for now
2025-04-02 18:06:02 -06:00
JPVenson 42bdb22bfb Fixed namespaces 2025-03-25 16:45:00 +01:00
Bond_009 3aa1ebb500 Enable adaptive bitrate streaming again 2025-01-22 17:36:26 +01:00
Bond_009 47f798827b Remove useless checks and dead code 2025-01-22 17:31:52 +01:00
Niels van Velzen 3b8e614819 Prefer ApiKey over api_key in generated URL's (#13342) 2025-01-11 09:35:44 -07:00
gnattu ced2d21f7b Add SUPPLEMENTAL-CODECS for Dolby Vision video with fallbacks (#12605) 2024-09-07 11:17:16 -06:00
gnattu 5a8a19e07b Add MediaStream.ReferenceFrameRate for problematic video files (#12603)
Co-authored-by: Nyanmisaka <nst799610810@gmail.com>
2024-09-07 11:16:23 -06:00
Nyanmisaka 00088c2954 Merge branch 'master' into fix-hwa-video-rotation 2024-07-23 15:37:33 +08:00
Cody Robibero 4239de1ee7 Merge pull request #11399 from jellyfin/audio-remux 2024-07-18 08:12:20 -04:00
gnattu e4101128e0 feat: add audio remux to UniversalAudioController
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-17 13:35:59 +08:00
gnattu 5df171b3f9 Add remuxing support for VP9
Add VP9 as a valid HLS format to enable remuxing. This is useful when audio processing is required, but the VP9 video can be passed as-is to avoid unnecessary video transcoding.

No VP9 encoder is enabled and should not be enabled. AV1 and HEVC should be preferred over VP9 if video transcoding is required.

Signed-off-by: gnattu <gnattuoc@me.com>
2024-05-16 09:34:21 +08:00
nyanmisaka 95b81ff54a Only streamCopy videos containing rotation data in fMP4
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-03-30 06:09:58 +08:00
Dmitry Lyzo 0dde8c0808 Make the bitrate of the fallback stream the same as the original (#9121) 2024-02-12 07:36:54 -07:00
nyanmisaka 5cc451992b Correct VIDEO-RANGE field for HLG content
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-02-06 20:36:15 +08:00
Patrick Barron 9215a4d40a Add ITranscodeManager service 2023-12-21 12:53:50 -05:00
Patrick Barron 01fd42cf95 Remove DLNA API code 2023-11-15 20:53:35 -05:00
Bond_009 b62b0ec2b5 Fix warnings 2023-11-14 21:14:21 +01:00
Nick cd662506a1 Merge branch 'master' into trickplay 2023-10-18 19:27:05 -07:00
Jan Müller 1635d82345 Remove workaround for codec capitalization
This is not required anymore as Shaka Player now supports the correct
codec strings.
2023-09-16 12:57:20 +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
Bond_009 18a311d32f == null -> is null 2023-08-22 21:14:54 +02:00
Nick 65b269c151 Minor code formatting (cvium) 2023-08-16 21:31:34 -07:00
Jan Müller 19fb061381 Correct the HLS Opus codec string
Apple doesn't support Opus via HLS yet, but if they ever do, they will
definitely expect "Opus" instead of "opus".

See https://mp4ra.org/#/codecs

Fixes: #10066
2023-08-01 19:06:30 +02:00
Jan Müller e9f23c61c9 Fix the fLaC/flac HLS issue also for audio-only
I moved the first application of the workaround out of the if block
so that it also applies to audio-only streams. The workaround was
extended likewise.

We should first and foremost adhere to the specifications and apply
workarounds afterwards for software that doesn't follow them. So I
turned around the workaround to first output the fLaC variant and then
the alternative flac variant.

Fixes: #10066
2023-08-01 17:11:32 +02:00
Joshua M. Boniface 93b400343e Merge pull request #8147 from Shadowghost/network-rewrite 2023-07-03 13:16:21 -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
Shadowghost 20a4509991 Migrate VideoRange and VideoRangeType to Enum 2023-06-28 12:02:20 +02:00
Nick ab20ceaad6 Migrate to trickplay table to EF. Rename vars/methods/members to have consistent use of tile and thumbnail 2023-06-26 17:40:10 -07:00
nyanmisaka df880ff785 Apply suggestions from code review
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-06-25 21:39:25 +08:00
Nick fe1c9d43ce Fix using order 2023-06-22 16:23:52 -07: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
nyanmisaka 0df6fd9cf2 Add AV1 support in HLS streaming
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-06-20 03:50:02 +08:00
Shadowghost 6cc1203c1b Merge branch 'master' into network-rewrite 2023-05-09 15:25:41 +02:00
Shadowghost 1f15724398 Use source audio bitrate if requested codec is lossless 2023-03-02 20:57:59 +01:00
knackebrot 3e74377036 Calculate output bitrate from output channel count 2023-02-26 22:37:01 +01:00
Shadowghost 20fd05b050 Consistently write IP in upercase 2023-02-17 19:27:36 +01:00
Shadowghost f5f890e685 Migrate to file-scoped namespaces 2023-02-02 18:50:33 +01:00
Bond_009 4261f15d41 Fix debug builds 2023-01-22 21:38:53 +01:00
Dmitry Lyzo 71a708cdb8 Backport pull request #9092 from jellyfin/release-10.8.z
Don't add additional entries if HEVC encoding is disabled

Original-merge: 2a5efeb3bb

Merged-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2023-01-22 14:06:19 -05: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
Cody Robibero 5787ab15dc Apply suggestions from code review
Co-authored-by: Bond-009 <bond.009@outlook.com>
2022-11-27 08:02:32 -07:00
nyanmisaka 37daeffafa Add support for OPUS and fixes for FLAC case issue in HLS
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2022-10-13 18:49:25 +08:00
cvium 5dc30c6a6d fix: use HttpContext and ClaimsPrincipal instead of IAuthorizationContext 2022-10-06 13:57:47 +02: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
Marius Luca 7d86ef6f22 - add an option for dropping specific subtitle formats using the DLNA SubtitleProfile 2021-12-09 17:52:51 +02:00
Fernando Fernández 3d0b1ccae6 Remove all unused usings 2021-09-06 21:15:30 +02:00