226 Commits

Author SHA1 Message Date
Bond-009
74230131a1
Fix OverflowException when scanning media with a very short duration (#13949) 2025-04-19 13:08:29 -06: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
Marc Brooks
114591c1aa Clean up usings and honor SortName 2025-02-25 01:51:38 -06:00
Marc Brooks
e8cbcde02e
Merge branch 'master' into sort-nfo-data 2025-02-03 19:48:59 -06:00
Bond-009
ceb850c770
Update projects to .NET 9 (#13023) 2024-11-16 10:11:01 -07:00
Marc Brooks
6dc61a430b Sort embedded collections in Nfo files
Because the Nfo files emit the collections as they are in-memory, the
files are not stable in format, genres, tags, albums, people, etc. are emitted in random orders. Add ordering of the collections when emitting the Nfo files so the file remains stable (unchanged) when underlying media information doesn't change.

In the process of this, it became clear that most of the providers and probes don't trim the strings like people's names, genre names, etc. so did a pass of Trim cleanup too.

Specific ordering: (alphabetical/numeric ascending after trimming blanks and defaulting to zero for missing numbers)

BaseItem: Directors, Writers, Trailers (by Url), Production Locations, Genres, Studios, Tags, Custom Provider Data (by key), Linked Children  (by Path>LibraryItemId), Backdrop Images (by path), Actors (by SortOrder>Name)

AlbumNfo: Artists, Album Artists, Tracks (by ParentIndexNumber>IndexNumber>Name)

ArtistNfo: Albums (by Production Year>SortName>Name)

MovieNfo: Artists

Fix Debug build lint


Fix CI debug build lint issue.


Fix review issues

Fixed debug-build lint issues.
Emits the `disc` number to NFO for tracks with a non-zero ParentIndexNumber and only emit `position` if non-zero.
Removed the exception filtering I put in for testing.

Don't emit actors for MusicAlbums or MusicArtists


Swap from String.Trimmed() to ?.Trim()
Addressing PR feedback

Can't use ReadOnlySpan in an async method

Removed now-unused namespace
2024-09-18 20:33:18 -05:00
Nyanmisaka
2aa9cf4007
Merge branch 'master' into fix-hwa-video-rotation 2024-08-05 16:37:09 +08:00
Bond-009
095d4d4d15
Merge pull request #12295 from Bond-009/trysetproviderid
Add TrySetProviderId extension
2024-07-29 00:13:40 +02:00
Nyanmisaka
00088c2954
Merge branch 'master' into fix-hwa-video-rotation 2024-07-23 15:37:33 +08:00
Bond-009
46fde9aa04 Backport pull request #12278 from jellyfin/release-10.9.z
Fix localization of audio title

Original-merge: f7a90b6383aed557c0c2d3a824fc00340f72fe40

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

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-07-21 00:58:05 -04:00
Bond_009
ecd2dab0a2 Add TrySetProviderId extension 2024-07-17 15:48:21 +02:00
Bond_009
19dc0872a9 Fix ArgumentNullException while scanning music
```
[2024-07-16 18:00:20.517 +02:00] [ERR] [65] MediaBrowser.Providers.Music.AudioMetadataService: Error in "Probe Provider"
System.ArgumentNullException: Value cannot be null. (Parameter 'value')
   at System.ArgumentNullException.Throw(String paramName)
   at System.ArgumentNullException.ThrowIfNull(Object argument, String paramName)
   at System.ArgumentException.ThrowNullOrEmptyException(String argument, String paramName)
   at MediaBrowser.Model.Entities.ProviderIdsExtensions.SetProviderId(IHasProviderIds instance, String name, String value) in /home/loma/dev/jellyfin/MediaBrowser.Model/Entities/ProviderIdsExtensions.cs:line 121
   at MediaBrowser.Model.Entities.ProviderIdsExtensions.SetProviderId(IHasProviderIds instance, MetadataProvider provider, String value) in /home/loma/dev/jellyfin/MediaBrowser.Model/Entities/ProviderIdsExtensions.cs:line 151
   at MediaBrowser.MediaEncoding.Probing.ProbeResultNormalizer.SetAudioInfoFromTags(MediaInfo audio, Dictionary`2 tags) in /home/loma/dev/jellyfin/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs:line 1322
   at MediaBrowser.MediaEncoding.Probing.ProbeResultNormalizer.GetMediaInfo(InternalMediaInfoResult data, Nullable`1 videoType, Boolean isAudio, String path, MediaProtocol protocol) in /home/loma/dev/jellyfin/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs:line 199
```
2024-07-16 18:23:21 +02:00
nyanmisaka
d37c5d8921 Backport pull request #12149 from jellyfin/release-10.9.z
Fix MicroDVD being recognized as DVDSUB subtitles

Original-merge: 6010bc01c321ea85935314191f5f8c19fd4b3bfb

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-23 11:40:59 -04:00
gnattu
91f5f0bfc4 Backport pull request #12046 from jellyfin/release-10.9.z
Fix mpeg-ts detection

Original-merge: 78eb9b2f78edcec869845bce1a96528985a66f12

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

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-23 11:40:50 -04:00
nyanmisaka
b0f2135762 Backport pull request #12031 from jellyfin/release-10.9.z
Fix video embedded image detection

Original-merge: 37b7e953f73532aad5e87dd62d8b6b63d8e52ed6

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

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-23 11:40:44 -04:00
Bond-009
ac108690a8
Use StringSplitOptions.TrimEntries where possible (#11421) 2024-04-24 08:35:15 -06:00
nyanmisaka
bf654bde60 Add json parser for video rotation side data
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-03-30 06:09:58 +08:00
Joe Rogers
4f7a341c14
Add LSR/CITY to artist whitelist 2024-03-15 14:05:38 -04:00
Bond-009
f888ee3dfc
Merge pull request #10772 from dmitrylyzo/normalize-mkv-webm
Discard WebM if there is an unsupported codec
2024-02-11 00:26:19 +01:00
nyanmisaka
9323390add Fix the display aspect ratio of PGSSUB subtitle burn-in
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-01-28 20:06:42 +08:00
Dmitry Lyzo
ba877283a1
fix: add av1 to webm
At least AV1 in WebM is supported by Chrome and Firefox.
2024-01-18 08:01:06 +03:00
Dmitry Lyzo
39088b5ad2 fix: discard webm if there is an unsupported codec 2024-01-09 10:39:31 +03:00
Bond_009
635d67d458 Revert "Use System.Net.IPNetwork"
This reverts commit 117d05d288da1d412159a29c0cb8d5c8259e48ae.
2023-11-14 21:16:33 +01:00
Bond_009
b62b0ec2b5 Fix warnings 2023-11-14 21:14:21 +01:00
Stepan Goremykin
3259d484ff Use generated regex 2023-10-08 01:16:00 +02:00
Joe Rogers
b95040bc5e
Add We;Na to split whitelist 2023-10-02 23:00:51 -04:00
Nyanmisaka
debbfaa502
Fix MJPEG video is recognized as embedded image (#10173)
fixes 1d729b2

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-08-30 17:19:52 -06:00
Shadowghost
f20856411e Fix format normalizer for multiple input formats 2023-07-28 22:52:54 +02:00
Joe Rogers
ba336c25e1
Whitelist Smith/Kotzen 2023-05-04 15:04:38 -04:00
Michael Fuchs
a59ae91d5d
Add artist to artist split whitelist
# Changes
Added an artist whose name has forward slashes in it to the artist "/" split whitelist

# Issues
Related to issue #2305
2023-04-29 13:47:09 +02:00
Penelope Gwen / Pogmommy
20cf27f637
Add artist to artist split whitelist (#9659) 2023-04-20 07:39:34 -06:00
Cody Robibero
89be3aa37f
Convert Person.Type to use PersonKind enum (#9487) 2023-03-25 11:52:02 -06:00
Bond-009
6351d1022b
Merge pull request #9254 from Shadowghost/dvdbdfix 2023-03-10 15:48:35 +01:00
Shadowghost
47aa07c342 Fix DLNA playback of DVD and BD folders 2023-03-10 15:27:17 +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
Bond_009
65d605b17d Improve ffprobe json parsing and don't log error for Codec Type attachment 2023-02-01 14:58:04 +01:00
Lars Strojny
44a870ca83
Add Phantom/Ghost to whitelist 2023-01-26 00:28:17 +01:00
Bond_009
75fe640f2b Revert 'Fix interlace check for H.264 MBAFF coded MP4 files' (#6222) 2023-01-19 14:20:04 +01:00
bradvolen
f20dee8e0d
Adding "creation_time" as a tag lookup for FFProbe for premiere date (#8884) 2022-12-19 19:52:09 +01: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
Joe Rogers
62799697a1
Fix localization lookup 2022-10-07 07:48:31 -04:00
Joe Rogers
2e4db18ebe
Add hearing impaired subtitle stream indicator (#7379)
Co-authored-by: Claus Vium <cvium@users.noreply.github.com>
2022-10-07 12:38:05 +02:00
markus
0a15634550 Streams with CodecType "data" (like "epg" streams in DVB
recordings) get ignored. This results in wrong stream specifiers for all
 subsequent streams. This fix correctly handles "data" streams without any
 further processing.
2022-10-01 08:53:54 -06:00
jakka
0b581aa655 added more artists with '/' in their names 2022-09-11 20:27:58 +03:00
jakka
778baf7bf5 added A/T/O/S to separator whitelist 2022-09-10 23:30:53 +03:00
Joshua M. Boniface
fe32b5e333 Merge pull request #7964 from jellyfin/dovi-side-data
(cherry picked from commit 39d185c7b19ed2da1ae46566152fb1cf182266cd)
Signed-off-by: Joshua Boniface <joshua@boniface.me>
2022-06-29 01:26:15 -04:00
Cody Robibero
28223704f3
Merge pull request #7441 from 1337joe/add-external-stream-indicator
Add label for external audio/sub tracks
2022-03-11 07:48:23 -07:00
Joe Rogers
1a307db7eb
Add label for external audio/sub tracks 2022-03-10 22:20:35 +01:00
Mayur Panchal
96de01ce01
ProbeResultNormalizer: fix framerate compare + tests (#7167) 2022-03-10 20:55:30 +01:00