Commit graph

474 commits

Author SHA1 Message Date
Bond_009 26d7fc8280 Enable nullable reference types for MediaBrowser.MediaEncoding.Subtitles 2021-05-20 22:10:19 +02:00
Bond_009 499bac5185 EncodingHelper: Fix circular dependency 2021-04-20 23:03:36 +02:00
BaronGreenback bc1cc2d04a Remove unused using directives 2021-04-17 11:37:55 +01:00
MrTimscampi ef9eba8bc9 Ignore format for ISO files 2021-03-25 12:23:29 +01:00
Bond_009 a8ed753f6c FxCop -> Net Analyzers (part 2) 2021-03-13 22:33:28 +01:00
Bond_009 9ed7f429c0 FxCop -> Net Analyzers (part 1) 2021-03-09 03:04:47 +01:00
Claus Vium e5f99762e2
Merge pull request #5073 from BaronGreenback/ffmpeg
Fix for 4933: Alternative ffmpeg fix
2021-02-27 19:55:52 +01:00
Bond_009 b1fe28d0a6 Use GetEncodingOptions where possible 2021-02-21 02:58:30 +01:00
nyanmisaka b0e0e19468 add cuda format converter 2021-02-06 13:21:40 +08:00
BaronGreenback df402df908 fix return 2021-01-21 12:48:43 +00:00
Nyanmisaka 060f6c194f
Apply suggestions from code review
Co-authored-by: Claus Vium <cvium@users.noreply.github.com>
2020-12-09 16:37:15 +08:00
nyanmisaka ebd9ab3ccc use larger batch size on mpegts to avoid corrupted thumbnails 2020-12-09 14:39:41 +08:00
crobibero ca5c20c988 Remove IIsoMounter and IsoMounter 2020-12-03 07:34:15 -07:00
Claus Vium 3b4f86579b
Merge pull request #4610 from nyanmisaka/hdr-extract
Extract tone mapped thumbnails for HDR videos
2020-12-02 09:50:54 +01:00
Joshua M. Boniface a6199f821b
Merge pull request #4169 from stanionascu/bdiso-playback
Playback (direct-stream/transcode) of BDISO/BDAV containers
2020-12-01 22:36:04 -05:00
Nyanmisaka 7b5285feac
Apply suggestions from code review
Co-authored-by: BaronGreenback <jimcartlidge@yahoo.co.uk>
2020-12-02 08:22:07 +08:00
nyanmisaka 3e9cf98c30 add hdr tone mapping to image extraction 2020-11-29 13:22:42 +08:00
nyanmisaka c2c06ae15b fix image extraction 2020-11-29 13:20:55 +08:00
nyanmisaka bb16174936 increase the default image extraction timeout 2020-11-29 13:12:41 +08:00
Nyanmisaka 0c6efe6317
Apply suggestions from code review
Co-authored-by: Claus Vium <cvium@users.noreply.github.com>
2020-11-28 22:32:54 +08:00
Nyanmisaka d72f3498bf
fix ci 2020-11-28 21:27:55 +08:00
Nyanmisaka 53c91c2c14
Apply suggestions from code review
Co-authored-by: BaronGreenback <jimcartlidge@yahoo.co.uk>
2020-11-28 21:14:55 +08:00
nyanmisaka d19edefbcd fix image extraction 2020-11-28 20:55:56 +08:00
Fernando Fernández e21e00cad5 Merge remote-tracking branch 'upstream/master' into no-scaling 2020-11-19 23:18:25 +01:00
Greenback 9a323f6df0 More spelling corrections. 2020-11-18 13:46:14 +00:00
Fernando Fernández 38c3b6fcd3 Fix build and thread detection logic 2020-11-18 10:20:59 +01:00
Fernando Fernández 94cae4f145 Specify threads to ffmpeg properly 2020-11-17 16:44:04 +01:00
Fernando Fernández a6ad36b57a Don't scale images extracted by ffmpeg 2020-11-17 14:20:18 +01:00
Stéphane Senart 28ee4f0a7f [AudioTranscoding] Add FLAC as supported target audio format and be able to define the corresponding target sample rate 2020-10-22 11:09:59 +02:00
Stanislav Ionascu cd4641dca0 Remove PlayableStreamFileNames as unused
Since ffmpeg can play and transcode ISO files and BDMV folders directly,
there's no use of that property.
2020-10-01 22:20:34 +02:00
Stanislav Ionascu 3ad6232973 Add probe / direct-stream / transcoding support for BluRays
This commit (and ffmpeg built with libbluray support), adds support
for playback of bluray images (bd-iso) and bluray folders.
2020-10-01 21:59:57 +02:00
BaronGreenback 5464eaed4a
Update EncoderValidator.cs 2020-09-19 16:40:39 +01:00
crobibero 8b96881aa1 Clean up json Converters 2020-08-26 08:22:48 -06:00
Bond_009 119f64f5e7 Make some methods async 2020-08-21 22:01:19 +02:00
Anthony Lavado 72115c91e0
Merge pull request #3943 from Bond-009/ffmpeg
Simplify FFmpeg detection code
2020-08-21 15:04:58 -04:00
Bond-009 6292a9e4e9
Merge branch 'master' into warn24 2020-08-20 18:50:15 +02:00
Bond_009 301e029d42 Add unsupported ffmpeg version to tests 2020-08-20 17:45:40 +02:00
Bond_009 cb5cb075a9 Simplify FFmpeg detection code 2020-08-20 17:16:09 +02:00
Bond-009 5160e627f1
Merge branch 'master' into feature/ffmpeg-version-check 2020-08-20 16:40:03 +02:00
Bond_009 ab2147751f Make MediaBrowser.MediaEncoding warnings free 2020-08-20 12:16:24 +02:00
Bond_009 2b400c99ef Fix warnings 2020-08-19 17:50:50 +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
Bond_009 e98351b912 Replace \d with [0-9] in ffmpeg detection and scan code 2020-07-20 14:14:15 +02:00
dkanada 87d7c4a62e
Merge pull request #3500 from nyanmisaka/vpp-qsv
Add FFmpeg 4.3 detection and solve the green line on QSV HWA
2020-07-14 20:31:13 +09:00
nyanmisaka f5c5352861 add FFmpeg 4.3 detection and tests 2020-07-04 19:14:49 +08:00
Max Git 3588ee5229 Merge branch 'master' into feature/ffmpeg-version-check 2020-07-02 23:50:13 +02:00
Neil Burrows 6b532b3da5
User string.Empty instead of ""
Co-authored-by: Patrick Barron <18354464+barronpm@users.noreply.github.com>
2020-06-29 20:52:20 +01:00
Neil Burrows 4389773508 Respect FFMpeg path passed via Environment Variable 2020-06-29 17:17:28 +01:00
Max Git c35c401d65 Merge branch 'master' into feature/ffmpeg-version-check 2020-06-23 09:20:50 +02:00
telans 8de6452967
fix some documentation periods 2020-06-20 18:13:11 +12:00
Max Git 33f78df051 Merge branch 'master' into feature/ffmpeg-version-check 2020-06-17 02:52:38 +02: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
Max Git e6c197b969 Cleanup 2020-06-16 01:09:41 +02:00
telans 9018f8d8be
Add full stop at end of comments (SA1629) 2020-06-16 10:37:52 +12:00
Max Git ef3200e178 Remove redundant cast 2020-06-15 19:50:09 +02:00
Max Git 11f3a0dc58 Use Version instead of double. Use correct version number for libavdevice. 2020-06-15 15:10:59 +02:00
dkanada dabb869a6b
Merge branch 'master' into hwaccel 2020-06-15 20:21:25 +09:00
Max Git 37e737e012 Merge from master & fix conflict 2020-06-15 12:12:03 +02: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
artiume 0476acf5d5 Update EncoderValidator.cs 2020-06-08 14:45:26 +03:00
crobibero 44957c5a9a Use typed logger where possible 2020-06-05 18:15:56 -06:00
rotvel 480fd0a66a
Update MediaBrowser.MediaEncoding/Encoder/EncoderValidator.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2020-06-01 16:00:58 +02:00
Max Git e103d087d3 Try harder at detecting FFmpeg version and enable the validation 2020-06-01 07:10:15 +02:00
Vasily aa17a53e83 Skip only line saying "Hardware acceleration methods:" instead of some random one 2020-05-26 19:05:44 +03:00
Vasily 628734931c Fix missing commas and merge defects 2020-05-26 18:49:15 +03:00
artiume 3c82379759 Update EncoderValidator.cs 2020-05-26 18:29:58 +03:00
artiume 407de0209e Update MediaEncoder.cs 2020-05-26 18:29:58 +03:00
artiume 1ff95289ef Update EncoderValidator.cs 2020-05-26 18:29:58 +03:00
nyanmisaka b4b93995f7 add more separate hw decoding toggles 2020-05-26 18:06:49 +03:00
Max Git cee587d6e3 Try harder to find ffmpeg in app directory. While here do some cleanup 2020-04-27 03:25:57 +02:00
Mark Monteiro 8f02fb9a4f Remove unused usings
This addresses the new issues identified in SonarCloud analysis
2020-04-22 13:09:59 -04:00
Mark Monteiro f815059698 Merge remote-tracking branch 'upstream/master' into register-services-correctly 2020-04-20 20:11:33 -04:00
Bond_009 a73e1f18b6 Minor improvements 2020-04-19 11:16:09 +02:00
Mark Monteiro 9728aa8b0a Merge branch 'master' into register-services-correctly 2020-04-13 17:06:24 -04:00
Joshua M. Boniface bf92694f8b
Merge pull request #2715 from nyanmisaka/libfdk-aac
Prefer to use libfdk_aac encoder for better audio quality when it is available
2020-04-12 19:17:11 -04:00
Mark Monteiro 7152b55747 Use a separate line for each property initializer 2020-04-11 13:28:21 -04:00
Mark Monteiro 17e8813378 Use ActivatorUtilities to construct MediaEncoder and update constructor to inject EncodingHelper correctly 2020-04-11 10:53:13 -04:00
Mark Monteiro e0f40f57d8 Merge remote-tracking branch 'upstream/master' into remove-common-process 2020-04-03 20:22:03 -04:00
Bond-009 f31efce52d
Merge branch 'master' into usings 2020-04-01 22:42:43 +02:00
nyanmisaka db23660660 prefer to use libfdk_aac for better audio quality 2020-03-30 15:53:49 +08:00
Mark Monteiro 1f5caa46c5 Fix some more issues with disposing Process instances 2020-03-27 01:53:08 +01:00
Mark Monteiro 97c36d11d4 Use a TimeSpan instead of ms and support providing a custom CancellationToken 2020-03-27 01:09:09 +01:00
Mark Monteiro b947d98266 Delete unnecessary ProcessFactory abstraction 2020-03-27 00:45:48 +01:00
Mark Monteiro ee2f911a2b Remove unnecessary CommonProcess abstraction 2020-03-27 00:10:16 +01: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
Bond-009 f3a1729964 Address comments 2020-01-16 15:02:50 +01:00
Bond-009 e882b03e81 Add back support for DVDs copied as folders 2020-01-16 13:30:38 +01:00
Nyanmisaka 2c10891b66
turn on indentation. 2020-01-15 18:45:28 +08:00
Nyanmisaka e95239e281
add support for AMD h264_amf & hevc_amf 2020-01-11 01:36:25 +08: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
Bond_009 0bf8bfbb0c Merge branch 'master' into mediaencoding 2019-12-10 23:00:59 +01:00
ferferga 94ef239de0 Add full Raspberry Pi hardware decoding support 2019-11-25 23:09:23 +01:00
Bond_009 cc5acf37f7 Make probesize and analyzeduration configurable and simplify circular
dependencies

Makes the probesize and analyzeduration configurable with env args.
(`JELLYFIN_FFmpeg_probesize` and `FFmpeg_analyzeduration`)
2019-11-25 12:07:59 +01:00
Bond_009 3e1aab6b29 Fix ffmpeg version check for unknown versions 2019-09-29 13:43:47 +02:00
Bond_009 1b01a6ece1 Add tests for EncoderValidator
* Add support for ffmpeg 4.2
* Parse the complete ffmpeg version instead of only the first 2 digits
* Make max and min version optional
* Remove max limitation (for now)
* Style improvements
2019-09-28 19:41:34 +02:00