Commit Graph

458 Commits

Author SHA1 Message Date
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
Joshua M. Boniface
5587dd8bfb
Merge pull request #900 from ploughpuff/validator
Implement proper FFmpeg version checking
2019-03-05 11:07:49 -05:00
Vasily
f1086a72bf
Improve logic when determining return value
Co-Authored-By: ploughpuff <33969763+ploughpuff@users.noreply.github.com>
2019-02-28 15:58:41 +00:00
PloughPuff
7668ecf9c9 Use Version Class to ease comparisons 2019-02-27 18:20:48 +00:00
Claus Vium
aafed63c3f Set EnableRaisingEvents to true for processes that require it 2019-02-24 16:33:05 +01:00
PloughPuff
69ea15f73a Use string interpolation
Two further review comments from JustAMan.
2019-02-16 00:47:38 +00:00
PloughPuff
d8d237f6f2 Review comments
Addressed review comments from JustAMan.  Removed code to determine experimental version.  Store major and minor as two ints.  Allow control of a min and max recommended version.
2019-02-15 23:51:22 +00:00
PloughPuff
a6bde0943e Implement proper FFmpeg version checking
Three routes to determine FFmpeg version:
1) Grab the 'ffmpeg version x.y' from from the -version output.  This should work for all pre-built binaries.
2) Compare the library versions against known contents of FFmpeg versions.  This is fallback aimed at custom builds.
3) Compare libavcodec version to determine if newer than latest known release.  This suggests user is running within latest/HEAD/master build.
2019-02-14 22:08:48 +00:00
Bond_009
1cdcace061 Remove dead code 2019-02-02 15:58:39 +01:00
Bond_009
95ee3c72e3 Properly dispose Tasks 2019-02-02 15:56:54 +01:00
Bond_009
66eabcdd39 Minor changes to encoding code
* Don't wait in intervals of 100ms for the file to exist
2019-02-02 15:56:54 +01:00
Bond-009
1ea219bf3f
Merge branch 'master' into culture 2019-01-30 16:57:15 +01:00
Vasily
91e99effc9
Apply suggestions from code review for flipped conditions.
Co-Authored-By: EraYaN <EraYaN@users.noreply.github.com>
2019-01-29 14:45:07 +01:00
Erwin de Haan
581a7fe078 Unwrapped MoveDirectory, DirectoryExists, FileExists & removed MoveFile 2019-01-28 22:10:00 +01:00
Erwin de Haan
d7c6d16250 Unwrapped CreateDirectory and DeleteDirectory 2019-01-28 22:09:56 +01:00
Erwin de Haan
3a831994f6 Unwrapped GetDirectoryName and DirectorySeperatorChar 2019-01-28 22:06:34 +01:00
Bond_009
a709cbdc64 Fix more analyzer warnings 2019-01-27 12:12:44 +01:00
Andrew Rabert
d16f38dbe1 Merge pull request #623 from wtayl0r/inject-logger-factories
Replaced injections of ILogger with ILoggerFactory
2019-01-20 18:12:50 -05:00
Andrew Rabert
a1fcf4ea0d Merge pull request #613 from MatMaul/mediaencoding-dev
Update MediaEncoding
2019-01-20 18:11:51 -05:00
Mathieu Velten
da16de48aa Revert back to 10e57ce8d21b4516733894075001819f3cd6db6b for MediaEncoding
Remove some duplicate code that were causing warnings
2019-01-20 22:50:09 +01:00
William Taylor
65cd3ed597 Replaced injections of ILogger with ILoggerFactory
This makes resolving dependencies from the container much easier as
you cannot resolve with primitives parameters in a way that is any
more readable.

The aim of this commit is to change as little as possible with the end
result, loggers that were newed up for the parent object were given the same
name. Objects that used the base or app loggers, were given a new logger with
an appropriate name.

Also removed some unused dependencies.
2019-01-20 21:05:12 +00:00
Claus Vium
e8cf72e925 Change CanExtractSubtitles to true to allow conversion during direct streaming 2019-01-20 21:03:18 +01:00
Erwin de Haan
38f96af079 Reformat JustAMan review pt2 changes
Refs #575
2019-01-17 20:24:39 +01:00
Erwin de Haan
65bd052f3e ReSharper conform to 'var' settings 2019-01-13 21:37:13 +01:00
Erwin de Haan
a36658f6f0 ReSharper Reformat: Properties to expression bodied form. 2019-01-13 21:31:14 +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
Joshua M. Boniface
15c89d281e Merge pull request #506 from hawken93/linting
Removing tabs and trailing whitespace
2019-01-10 19:54:18 -05: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
Bond_009
f520ddc966 Remove useless properties from IEnvironmentInfo 2019-01-08 17:35:56 +01:00
hawken
bd169e4fd4 remove trailing whitespace 2019-01-07 23:27:46 +00:00
Bond_009
abddc4786c Reduce log spam from ffmpeg info 2019-01-05 22:40:33 +01:00
Bond_009
ec47c5b0f7 Remove unused FontConfigLoader 2019-01-02 15:12:52 +01:00
Bond_009
f3030812ea Use static regex 2019-01-02 16:21:24 +03:00
Bond_009
d6f3ca859e Change regex to multiline
ex: https://regex101.com/r/bn9IOy/12
2019-01-02 16:21:24 +03:00
Bond_009
c05e8088d6 Remove extra capture group from regex
https://regex101.com/r/bn9IOy/11/
2019-01-02 16:21:24 +03:00
Bond_009
12c43cd769 Use regex to check if ffmpeg output contains codec
Demo of the regex: https://regex101.com/r/bn9IOy/10/
2019-01-02 16:21:24 +03:00
Bond_009
0042b96c80 Use ValueTuple and Linq 2019-01-02 16:21:24 +03:00
Bond_009
96ad22a009 Reduce log spam and clean up EncoderValidator 2019-01-02 16:21:24 +03: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
Bond_009
0c1b9d3bff Rebase 2018-12-30 22:44:38 +01:00
Andrew Rabert
a86b71899e Add GPL modules 2018-12-27 18:27:57 -05:00
Mathieu Velten
1d7d52ff9e Port MediaEncoding and Api.Playback from 10e57ce8d21b4516733894075001819f3cd6db6b 2018-12-14 17:32:54 +01:00
Luke Pulverenti
40442f887b consolidate emby.server.core into emby.server.implementations 2017-08-09 15:56:38 -04:00
Luke Pulverenti
b89af7af43 fixes #2121 - background roku thumbnail generation (or maybe... any scheduled task?) should be "niced" 2017-08-01 15:43:39 -04:00
Luke Pulverenti
d270b10db6 move auto-organize to plugin 2017-07-27 01:18:39 -04:00
Luke Pulverenti
bd32c8ba49 update lg dlna profile 2017-07-13 15:04:59 -04:00
Luke Pulverenti
a759b09577 support max audio bit depth 2017-06-26 11:10:52 -04:00
Luke Pulverenti
1e5c3db9eb support individual library refreshing 2017-06-23 12:04:45 -04:00
Luke Pulverenti
1663b258a7 update home sections 2017-06-13 02:33:29 -04:00
Luke Pulverenti
9f0e6d17c8 add hevc cuvid 2017-06-12 03:11:54 -04:00
Luke Pulverenti
2c54390c38 enable h264_cuvid decoder 2017-06-10 14:24:53 -04:00
Luke Pulverenti
820b4873fb move methods to base class 2017-06-04 16:28:27 -04:00
Luke Pulverenti
3e15b28b18 add IsInterlaced param 2017-05-29 08:35:59 -04:00
Luke Pulverenti
33014f77aa update GetItems method 2017-05-26 02:48:54 -04:00
Luke Pulverenti
0beb803aed add sample rate condition 2017-05-13 15:31:25 -04:00
Luke Pulverenti
ef41f919a6 fix movie db find by external id 2017-05-08 14:07:42 -04:00
Luke Pulverenti
696a6b34ea improve smb support 2017-05-04 14:14:45 -04:00
Luke Pulverenti
53024bd149 removed dead code 2017-05-04 03:01:35 -04:00
Luke Pulverenti
fc7ab45fb3 unify audio conversion 2017-04-27 14:13:16 -04:00
Luke Pulverenti
da39d9a5bf update folder queries 2017-04-27 14:12:44 -04:00
Luke Pulverenti
8755886761 switch to hwaccel auto 2017-04-21 16:03:07 -04:00
Luke Pulverenti
561028c907 update automated checkins 2017-04-17 15:01:16 -04:00
Luke Pulverenti
8eb4c034b4 update audio sync params 2017-04-15 15:45:33 -04:00
Luke Pulverenti
4154fdf9c6 update omdb info parsing 2017-04-12 13:09:12 -04:00
Luke Pulverenti
e56faea17a update vsync 2017-04-09 17:38:59 -04:00
Luke Pulverenti
463cb3e354 update live stream management 2017-04-04 02:01:20 -04:00
Luke Pulverenti
abc54d1ea3 determine interlaced from ffprobe data 2017-03-26 00:20:00 -04:00
Luke Pulverenti
c9be9b4141 update hls params 2017-03-24 11:03:49 -04:00
Luke Pulverenti
38e05b11e2 unify encodng param creation 2017-03-19 14:59:05 -04:00
Luke Pulverenti
59ac045c6b increase unification of param building 2017-03-19 02:10:11 -04:00
Luke Pulverenti
44a4e662ac update hdhomerun model info caching 2017-03-16 13:21:24 -04:00
Luke Pulverenti
ce3f2bdd20 reduce AnalyzeDurationMs for live tv 2017-03-05 10:38:36 -05:00
gerrit507
c70dfc713b Add hevc hw-decoders and encodrs to var required.
These hardware decoders should be added for letting emby recognize this hw-decoders and encoders. This in addition to  #2506 and on the dev branch as wished.
2017-03-04 11:51:06 +01:00
Luke Pulverenti
0ee1a0d7bd fix mapping multiple tuner channels to same epg channel 2017-02-18 22:46:09 -05:00
Luke Pulverenti
58fad600c9 restore changes 2017-02-09 19:42:57 -05:00
Luke Pulverenti
35415d6a50 add error handling 2017-02-09 18:59:27 -05:00
Luke Pulverenti
8deb423883 restore config settings for now 2017-02-08 13:50:33 -05:00
Luke Pulverenti
b35051463b restore features 2017-02-06 01:05:34 -05:00
Luke Pulverenti
f94353250f disable input modifiers for now 2017-02-06 01:04:38 -05:00
Luke Pulverenti
2a34c30313 update input params 2017-02-06 01:03:01 -05:00
Luke Pulverenti
5edaf12d40 move encoding methods to shared classes 2017-02-02 11:02:01 -05:00
Luke Pulverenti
45398959d7 update media probe 2017-01-31 16:25:29 -05:00
Luke Pulverenti
ab026ab2de restore localized guids switch 2017-01-29 15:00:29 -05:00
Luke Pulverenti
8d668095bb add IsRemote property 2017-01-20 12:53:48 -05:00
Luke Pulverenti
80a9bbf5ef support rtp protocol 2017-01-18 01:05:33 -05:00
Luke Pulverenti
c0ddeaab77 update maxrate 2017-01-02 18:15:16 -05:00
Luke Pulverenti
dbba636290 handle unknown video stream 2017-01-01 15:47:54 -05:00
Luke Pulverenti
9da48106c8 update logging 2016-12-29 16:50:53 -05:00
Luke Pulverenti
cb8751f985 fixes #2365 - External bitmap subtitles are loaded incorrectly 2016-12-26 16:22:45 -05:00
Luke Pulverenti
a5ffea5752 update video audio encoding 2016-12-26 14:47:37 -05:00
Luke Pulverenti
5833aedb15 update bitrate filter 2016-12-23 03:50:32 -05:00
Luke Pulverenti
f8c88aa632 add null checks 2016-12-22 10:58:31 -05:00
Luke Pulverenti
de9cd28a79 remove tvos dts hack no longer needed 2016-12-14 15:58:55 -05:00
Luke Pulverenti
afabbfa22b add ios dts workaround 2016-12-13 12:04:37 -05:00
Luke Pulverenti
e936f49518 update use of shellexecute 2016-12-09 20:58:52 -05:00
Luke Pulverenti
c30b82ab44 update recording encoder 2016-11-29 14:13:20 -05:00
Luke Pulverenti
ffb1ec76a7 update components 2016-11-19 02:51:07 -05:00
Luke Pulverenti
9b5a4c22e3 update image & subtitle extraction 2016-11-14 01:44:21 -05:00
Luke Pulverenti
635c8d50a3 update character escaping 2016-11-13 22:44:54 -05:00
Luke Pulverenti
0e9cd51f9c update .net core startup 2016-11-13 16:04:21 -05:00