Commit Graph

224 Commits

Author SHA1 Message Date
Joe Rogers 31baea072a
Address review comments
Clean up style
Fix references in class summaries
Combine Where+FirstOrDefault queries
Break up large method, long lines
Add validation on file extension
Apply test naming conventions
Extract mock of Movie class, comment on why not mocking interface

Co-authored-by: Cody Robibero <cody@robibe.ro>
Co-authored-by: Claus Vium <cvium@users.noreply.github.com>
2021-10-20 14:10:16 +02:00
Joe Rogers 8d70cc2dde
Add support for non-jpg image extractions 2021-10-11 14:09:02 +02:00
Joe Rogers 6ce8cce12c
Add handling for embedded background and logo 2021-10-11 14:09:01 +02:00
Dominik Krivohlavek ef99225c40
Add 22/7 to split whitelist 2021-10-06 10:32:28 +02:00
Joe Rogers ce0457faf5
Add mp4 track title fallback (#6638) 2021-09-30 23:53:33 +02:00
Cody Robibero 9234e5bf80 Remove all instances of en-US culture 2021-09-26 09:11:25 -06:00
Bond_009 653df7d8e5 Specify DateTimeStyles when possible 2021-09-21 01:21:45 +02:00
Bond_009 a6d1e542e6 Reduce allocations 2021-09-19 20:53:31 +02:00
Claus Vium 74fef6c05b
Merge pull request #6177 from Bond-009/async
Use async FileStreams where it makes sense
2021-09-06 13:55:34 +02:00
Bond-009 3ec7ecf399
Merge pull request #6358 from MrTimscampi/audio-people 2021-09-03 17:15:58 +02:00
Bond_009 e3dac4fda2 Use async FileStreams where it makes sense 2021-09-02 14:02:04 +02:00
MrTimscampi 7f52cda03c Make performer regex static 2021-08-16 00:22:36 +02:00
MrTimscampi d82c2e4237 Address comments 2021-08-16 00:22:36 +02:00
MrTimscampi c9b1cd1d8c Add some new music-related person types and parse from ffprobe 2021-08-16 00:22:36 +02:00
MrTimscampi f35a527608 Add performers to the ffprobe normalization for audio 2021-08-16 00:22:36 +02:00
Nyanmisaka a84dc794c6
Merge branch 'master' into tonemap-overlay 2021-08-13 15:01:06 +08:00
Julien Machiels 6c2cbafee0
Update MediaBrowser.MediaEncoding/Probing/FFProbeHelpers.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2021-08-08 16:37:35 +02:00
MrTimscampi ba609aefea Attempt to parse YYYY format dates in GetDictionaryDateTime
DateTime.TryParse doesn't properly parse year-only dates, so parsing results from FFProbe sometimes returns null (for example, some music tagged with Beets has yyyy format dates for release dates).
As a result, Jellyfin would previously no get the date from the FFProbe results.
This adds DateTime.TryParseExact with a format of 'yyyy' as a fallback, to attempt to properly parse the value, even if it's only a year.
2021-08-07 22:11:32 +02:00
MrTimscampi 534e088105 Prefer original data when getting premiere date from ffprobe 2021-08-07 22:02:43 +02:00
nyanmisaka 3beda02d92 add support for cuda tonemap and overlay 2021-07-25 00:52:16 +08:00
natedawg 6957bc9a12 Fix spelling of artist K/DA in splitting whitelist 2021-07-10 16:26:42 -07:00
MrTimscampi 020c0fc4cb Add more artist names to the splitting whitelist 2021-07-10 17:09:44 +02:00
Maxr1998 11a5551218
Refactor ProbeResultNormalizer
Improve code structure and readability
2021-07-09 02:06:38 +02:00
Orry Verducci d5b63092ed Add H.264 MBAFF interlace check
Use the codec time base to determine if a MBAFF coded H.264 file is interlaced.
2021-06-24 17:51:35 +01:00
Claus Vium b12f509de3
Merge pull request #5696 from Maxr1998/fix-music-video-metadata-probing 2021-05-27 10:20:22 +02:00
Bond_009 26d7fc8280 Enable nullable reference types for MediaBrowser.MediaEncoding.Subtitles 2021-05-20 22:10:19 +02:00
Bond_009 e432796f6f Minor improvements 2021-05-05 14:39:50 +02:00
BaronGreenback 2e98de9062
Code Clean up: Convert to null-coalescing operator ?? (#5845)
Co-authored-by: Cody Robibero <cody@robibe.ro>
Co-authored-by: Patrick Barron <18354464+barronpm@users.noreply.github.com>
2021-05-05 13:51:14 +02:00
Bond-009 eeb5d4bd1e
Merge pull request #5842 from BaronGreenback/optimization
Code Clean up: Group Methods
2021-04-29 21:14:57 +02:00
BaronGreenback bc1cc2d04a Remove unused using directives 2021-04-17 11:37:55 +01:00
BaronGreenback bb6fddde9a Group Methods 2021-04-17 11:19:09 +01:00
Maxr1998 24ac8a1223
Improve metadata probing to better support music videos 2021-04-06 15:34:29 +02:00
Maxr1998 873ad72c18
Support MKV DATE_RELEASED tag for PremiereDate
https://www.matroska.org/technical/tagging.html#temporal-information
2021-04-04 15:41:01 +02:00
Maxr1998 8d27e10cb6
Interpret ffprobe date as UTC
Currently, dates are parsed according to the local time, which results in potentially wrong data being stored in the database after normalizing to UTC - e.g. 2021-04-04 would be stored as '2021-04-03 22:00:00Z' and displayed in the UI as 03.04.2021.
2021-04-04 15:13:54 +02:00
Maxr1998 e0f513232b
Reduce nesting 2021-04-04 15:13:54 +02:00
Bond_009 9ed7f429c0 FxCop -> Net Analyzers (part 1) 2021-03-09 03:04:47 +01:00
Bond_009 141efafd3d Enable TreatWarningsAsErrors for MediaBrowser.Model 2021-02-20 23:29:33 +01:00
Bond_009 65bab55ca0 Minor improvements 2021-02-13 00:39:18 +01:00
nyanmisaka 6536c81226 do not extract audio stream bitrate info for videos from formatInfo 2020-12-01 10:55:25 +08:00
nyanmisaka 92118c2129 allow to extract music bitrate info from formatInfo 2020-11-29 22:46:26 +08:00
Joshua M. Boniface f39e55e2e5
Merge pull request #4548 from orryverducci/mkv-interlaced-fix
Revert "Fix frame rate probing for interlaced MKV files"
2020-11-22 13:06:10 -05:00
Orry Verducci 812300ad33 Revert "Fix frame rate probing for interlaced MKV files"
This reverts commit 84fd5a0953.
2020-11-22 16:54:41 +00:00
Nyanmisaka 5ff08338d5
Apply suggestions from code review
Co-authored-by: Claus Vium <cvium@users.noreply.github.com>
2020-11-19 15:02:36 +00:00
nyanmisaka 488dbdb31d Merge remote-tracking branch 'upstream/master' into fmp4-hls 2020-11-16 12:36:55 +08:00
Bond_009 ff49a3bb61
Missed some stuff 2020-11-14 20:28:15 +01:00
nyanmisaka 6987cb8357 fix ci 2020-11-11 17:25:14 +08:00
nyanmisaka 57e5b59b93 adjust bitrate limit for HLS audio codecs 2020-11-11 17:10:08 +08:00
Orry Verducci 84fd5a0953 Fix frame rate probing for interlaced MKV files 2020-10-25 16:35:03 +00:00
Nyanmisaka 4cb0a57e46
Merge branch 'master' into tonemap 2020-09-04 02:55:57 +08:00
crobibero 8b96881aa1 Clean up json Converters 2020-08-26 08:22:48 -06:00
Bond_009 ab2147751f Make MediaBrowser.MediaEncoding warnings free 2020-08-20 12:16:24 +02:00
Bond-009 d9f6953416 Minor fixes 2020-08-04 17:14:07 +02:00
Bond-009 53f99d5d4b Add some analyzers to MediaBrowser.MediaEncoding 2020-08-04 17:08:09 +02:00
Bond-009 18efa25a6f Enable TreatWarningsAsErrors for MediaBrowser.MediaEncoding 2020-08-04 16:20:52 +02:00
Nyanmisaka c23d991c95
Merge branch 'master' into tonemap 2020-08-03 14:58:44 +08:00
Bond_009 d4092846e4 Optimize Substring and StringBuilder usage 2020-07-29 13:17:01 +02:00
nyanmisaka 7b862bba5a add Tonemapping relaying on nvdec and ocl 2020-07-25 00:57:34 +08:00
Patrick Barron 6d1b00da64 Use Array.Empty 2020-07-04 11:54:25 -04:00
telans 6556bec646
brace multiline if statements (cont.) 2020-06-20 21:19:16 +12:00
telans 98db8f72e0
fix SA1503 for one line if statements 2020-06-20 20:35:29 +12:00
Bond-009 9af6eda0b4
Merge pull request #3343 from telans/comment-stops
Add full stop at end of comments (SA1629)
2020-06-16 11:54:58 +02:00
telans 247f9c61e6
fix SA1513/SA1516 2020-06-16 16:11:30 +12:00
telans 9018f8d8be
Add full stop at end of comments (SA1629) 2020-06-16 10:37:52 +12:00
telans 3d9049ef08
fix SA1508 2020-06-15 10:45:55 +12:00
telans acd4389653
fix SA1005 2020-06-15 10:41:00 +12:00
aled 22a860a806 Fix a small number of compile warnings 2020-06-06 20:17:49 +01:00
MrTimscampi 9314434bbf Fix suggestions 2020-05-16 17:35:34 +02:00
MrTimscampi 2e18142bb3 Add color primaries to ffprobe output 2020-05-14 18:52:42 +02:00
MrTimscampi 428e1b04fc Add color transfer to ffprobe results 2020-05-14 18:11:32 +02:00
Bond-009 f31efce52d
Merge branch 'master' into usings 2020-04-01 22:42:43 +02:00
Bond_009 e9d1eabd53 Remove unused usings 2020-03-24 16:12:06 +01:00
Bond_009 a07ee65365 Minor improvements 2020-02-23 10:53:51 +01:00
Ulrich Wagner d7f199bb1c #2407: Prefer MP4-Metadata for episodes 2020-02-17 14:57:07 +01:00
Bond_009 93ab829df5 Attempt #3 2020-01-12 23:25:57 +01:00
Bond-009 b1af8a4178 Rename function 2020-01-08 18:14:01 +01:00
Bond-009 277e9d2b0b fix build 2020-01-08 18:13:11 +01:00
Bond-009 c3752b1a30 Merge branch 'master' into scanerrors 2020-01-08 18:10:17 +01:00
dkanada 423d50e978
Merge pull request #1838 from Unhelpful/media-attachments
Add support for embedded attachments in media files
2020-01-08 11:04:21 +09:00
dkanada 73fac50e57 rename two properties based on code suggestions 2020-01-08 10:52:48 +09:00
Bond-009 9dfafb9e9f
Update MediaBrowser.MediaEncoding/Probing/MediaFormatInfo.cs
Co-Authored-By: Erwin de Haan <EraYaN@users.noreply.github.com>
2020-01-07 11:13:47 +01:00
Bond-009 49fef5f09c
Update MediaBrowser.MediaEncoding/Probing/MediaChapter.cs
Co-Authored-By: Erwin de Haan <EraYaN@users.noreply.github.com>
2020-01-07 11:13:11 +01:00
Bond-009 70210b47a4
Update MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs
Co-Authored-By: dkanada <dkanada@users.noreply.github.com>
2020-01-06 10:39:01 +01:00
Bond_009 09d1f976d9 Replace unicode char with its integer value 2020-01-02 20:19:01 +01:00
Bond_009 a41ec5c9d4 Fix typo 2019-12-23 15:29:30 +01:00
Bond_009 cf2e2a3f30 Fix exceptions while scanning
Fixes these exceptions:
```
[2019-12-22 20:48:14.779 +01:00] [ERR] Error in WaitForExit
System.InvalidOperationException: No process is associated with this object.
   at System.Diagnostics.Process.EnsureState(State state)
   at System.Diagnostics.Process.EnsureState(State state)
   at System.Diagnostics.Process.GetWaitState()
   at System.Diagnostics.Process.WaitForExitCore(Int32 milliseconds)
   at System.Diagnostics.Process.WaitForExit(Int32 milliseconds)
   at Emby.Server.Implementations.Diagnostics.CommonProcess.WaitForExit(Int32 timeMs) in /home/pi/dev/jellyfin/Emby.Server.Implementations/Diagnostics/CommonProcess.cs:line 100
   at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.StopProcess(ProcessWrapper process, Int32 waitTimeMs) in /home/pi/dev/jellyfin/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs:line 785
[2019-12-22 20:48:14.790 +01:00] [INF] Killing ffmpeg process
[2019-12-22 20:48:14.795 +01:00] [ERR] Error killing process
System.InvalidOperationException: No process is associated with this object.
   at System.Diagnostics.Process.EnsureState(State state)
   at System.Diagnostics.Process.EnsureState(State state)
   at System.Diagnostics.Process.Kill()
   at Emby.Server.Implementations.Diagnostics.CommonProcess.Kill() in /home/pi/dev/jellyfin/Emby.Server.Implementations/Diagnostics/CommonProcess.cs:line 95
   at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.StopProcess(ProcessWrapper process, Int32 waitTimeMs) in /home/pi/dev/jellyfin/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs:line 799
[2019-12-22 20:48:14.808 +01:00] [ERR] Error in "ffprobe"
System.Text.Json.JsonException: The JSON value could not be converted to System.String. Path: $.streams[0].start_pts | LineNumber: 32 | BytePositionInLine: 26.
 ---> System.InvalidOperationException: Cannot get the value of a token type 'Number' as a string.
   at System.Text.Json.Utf8JsonReader.GetString()
   at System.Text.Json.Serialization.Converters.JsonConverterString.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options)
   at System.Text.Json.JsonPropertyInfoNotNullable`4.OnRead(JsonTokenType tokenType, ReadStack& state, Utf8JsonReader& reader)
   at System.Text.Json.JsonPropertyInfo.Read(JsonTokenType tokenType, ReadStack& state, Utf8JsonReader& reader)
   at System.Text.Json.JsonSerializer.HandleValue(JsonTokenType tokenType, JsonSerializerOptions options, Utf8JsonReader& reader, ReadStack& state)
   at System.Text.Json.JsonSerializer.ReadCore(JsonSerializerOptions options, Utf8JsonReader& reader, ReadStack& readStack)
   --- End of inner exception stack trace ---
   at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& readStack, Utf8JsonReader& reader, Exception ex)
   at System.Text.Json.JsonSerializer.ReadCore(JsonSerializerOptions options, Utf8JsonReader& reader, ReadStack& readStack)
   at System.Text.Json.JsonSerializer.ReadCore(JsonReaderState& readerState, Boolean isFinalBlock, ReadOnlySpan`1 buffer, JsonSerializerOptions options, ReadStack& readStack)
   at System.Text.Json.JsonSerializer.ReadAsync[TValue](Stream utf8Json, Type returnType, JsonSerializerOptions options, CancellationToken cancellationToken)
   at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, Boolean forceEnableLogging, CancellationToken cancellationToken) in /home/pi/dev/jellyfin/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs:line 399
   at MediaBrowser.Providers.MediaInfo.FFProbeVideoInfo.ProbeVideo[T](T item, MetadataRefreshOptions options, CancellationToken cancellationToken) in /home/pi/dev/jellyfin/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs:line 122
   at MediaBrowser.Providers.Manager.MetadataService`2.RunCustomProvider(ICustomMetadataProvider`1 provider, TItemType item, String logName, MetadataRefreshOptions options, RefreshResult refreshResult, CancellationToken cancellationToken) in /home/pi/dev/jellyfin/MediaBrowser.Providers/Manager/MetadataService.cs:line 815
```
2019-12-22 22:09:09 +01:00
Andrew Mahone 6ca252ba5c Remove check for "[0]" in codec_tag. 2019-11-05 07:09:55 -05:00
Andrew Mahone 321e5cba60 Add new MediaAttachment to store attachments found during media probing. 2019-10-22 10:30:55 -04:00
redSpoutnik 480a6607e2
Merge branch 'master' into subtitle-display-title 2019-03-16 17:54:57 +01:00
redSpoutnik 427688a0a0 Change subtitles DisplayTitle behavior 2019-03-14 22:31:51 +01:00
Bond_009 ffd6dac03a Remove useless comments 2019-03-07 12:24:44 +01:00
Erwin de Haan 38f96af079 Reformat JustAMan review pt2 changes
Refs #575
2019-01-17 20:24:39 +01:00
Erwin de Haan e867446437 ReSharper format: conform inline 'out' parameters. 2019-01-13 21:46:33 +01:00
Erwin de Haan 65bd052f3e ReSharper conform to 'var' settings 2019-01-13 21:37:13 +01:00
Erwin de Haan 8f41ba4d3a Find+Sed BOM removal *.cs: MediaBrowser.LocalMetadata-MediaBrowser.Model 2019-01-13 21:02:23 +01:00
Erwin de Haan f2e50f50bd Visual Studio Reformat: MediaBrowser.MediaEncoding 2019-01-13 20:26:04 +01:00
Erwin de Haan e2751d42e8 Merge branch 'dev' into code-cleanup 2019-01-11 12:50:36 +01:00
Erwin de Haan ec1f5dc317 Mayor code cleanup
Add Argument*Exceptions now use proper nameof operators.

Added exception messages to quite a few Argument*Exceptions.

Fixed rethorwing to be proper syntax.

Added a ton of null checkes. (This is only a start, there are about 500 places that need proper null handling)

Added some TODOs to log certain exceptions.

Fix sln again.

Fixed all AssemblyInfo's and added proper copyright (where I could find them)

We live in *current year*.

Fixed the use of braces.

Fixed a ton of properties, and made a fair amount of functions static that should be and can be static.

Made more Methods that should be static static.

You can now use static to find bad functions!

Removed unused variable. And added one more proper XML comment.
2019-01-10 20:38:53 +01:00
hawken bd169e4fd4 remove trailing whitespace 2019-01-07 23:27:46 +00:00
Bond_009 c99b45dbe0 Remove some warnings 2019-01-02 02:35:40 +03:00
Bond_009 ea4c914123 Fix exception logging 2018-12-30 22:44:39 +01:00