68 Commits

Author SHA1 Message Date
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: 2a5efeb3bb5938b614cb159868e98d56487040c9

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 fd4ffc6ba3317987856629088b759db8c1128ecd)
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
Cody Robibero
9154f20b34
Don't dispose managed CancellationTokenSource (#6139) 2021-06-04 14:36:58 +02:00