Commit Graph

460 Commits

Author SHA1 Message Date
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
Bond_009
1616f24cee Fix more warnings 2019-09-01 18:39:23 +02:00
JMCC
5d85076ad5 Enable Exynos V4L2-m2m HW encoder 2019-05-11 17:17:32 +02:00
Bond-009
91cd7d2f6b Limit amount of ffmpeg processes extracting images at once 2019-04-30 23:35:39 +02:00
Phallacy
a7e31ef31f applied changes to just also search jellyfin base dir 2019-04-09 00:27:41 -07: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
PloughPuff
b864e9da2a Finalise removal of --ffprobe switch
Removed --ffprobe from src files and server/docker scripts.
2019-03-12 22:09:18 +00:00
Bond-009
ab9859ecef Address comment 2019-03-07 21:42:56 +01:00
Bond_009
37ea50a572 Reduce the amount of exceptions thrown 2019-03-07 21:42:56 +01:00
PloughPuff
2617a49b78 Renamed Init() to SetFFmpegPath() 2019-03-05 21:29:15 +00:00
PloughPuff
656bffbbb2 Remove --ffprobe logic 2019-03-05 21:29:15 +00:00
PloughPuff
8104e739d5 Address review comments from Bond 2019-03-05 21:29:15 +00:00
PloughPuff
ed69e690b8 Review comments
Address review comments from JustAMan, Bond-009 and cvium.
2019-03-05 21:29:15 +00:00
PloughPuff
20775116f7 Reworked FFmpeg path discovery and always display to user
1) Reworked FFmpeg and FFprobe path discovery (CLI switch, Custom xml, system $PATH, UI update trigger).  Removed FFMpeg folder from Emby.Server.Implementations.  All path discovery now in MediaEncoder.

2) Always display FFmpeg path to user in Transcode page.

3) Allow user to remove a Custome FFmpeg path and return to using system $PATH (or --ffmpeg if available).

4) Remove unused code associated with 'prebuilt' FFmpeg.

5) Much improved logging during path discovery.
2019-03-05 21:24:54 +00:00