Commit Graph

247 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
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 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 d447207489 Apply suggestions from code review
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-08-28 03:20:04 +08: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: f7a90b6383

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: 6010bc01c3

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: 78eb9b2f78

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: 37b7e953f7

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
Bond_009 a9a5fcde81 Use ArgumentNullException.ThrowIfNull helper method
Did a simple search/replace on the whole repo (except the RSSDP project)
This reduces LOC and should improve performance (methods containing a throw statement don't get inlined)

```
if \((\w+) == null\)
\s+\{
\s+throw new ArgumentNullException\((.*)\);
\s+\}
```

```
ArgumentNullException.ThrowIfNull($1);
```
2022-10-06 20:21:23 +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
Hannes Braun 4edeccc5e0 Remove redundant using directives 2022-09-28 16:26:03 +02: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