aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs
diff options
context:
space:
mode:
authorcvium <clausvium@gmail.com>2019-01-16 20:50:40 +0100
committerClaus Vium <clausvium@gmail.com>2019-01-20 06:30:50 +0100
commitb35dcbb9f02c27d2d84ee3281a60d654a3fb1259 (patch)
tree12049e17ac9e6cdbe2e7fec5ec7a886cff8a8c6d /MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs
parent3a5e3ade01ab4b4fccca03ba2da969f03d5564f1 (diff)
Remove MediaBrowser.Text since it violates licenses and is overall hacky
Diffstat (limited to 'MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs')
-rw-r--r--MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs20
1 files changed, 9 insertions, 11 deletions
diff --git a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs
index 4f424d39b..ad9b0b1e9 100644
--- a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs
+++ b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs
@@ -18,8 +18,8 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.MediaInfo;
using MediaBrowser.Model.Serialization;
-using MediaBrowser.Model.Text;
using Microsoft.Extensions.Logging;
+using UtfUnknown;
namespace MediaBrowser.MediaEncoding.Subtitles
{
@@ -34,10 +34,8 @@ namespace MediaBrowser.MediaEncoding.Subtitles
private readonly IHttpClient _httpClient;
private readonly IMediaSourceManager _mediaSourceManager;
private readonly IProcessFactory _processFactory;
- private readonly ITextEncoding _textEncoding;
- public SubtitleEncoder(
- ILibraryManager libraryManager,
+ public SubtitleEncoder(ILibraryManager libraryManager,
ILogger logger,
IApplicationPaths appPaths,
IFileSystem fileSystem,
@@ -45,8 +43,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles
IJsonSerializer json,
IHttpClient httpClient,
IMediaSourceManager mediaSourceManager,
- IProcessFactory processFactory,
- ITextEncoding textEncoding)
+ IProcessFactory processFactory)
{
_libraryManager = libraryManager;
_logger = logger;
@@ -57,7 +54,6 @@ namespace MediaBrowser.MediaEncoding.Subtitles
_httpClient = httpClient;
_mediaSourceManager = mediaSourceManager;
_processFactory = processFactory;
- _textEncoding = textEncoding;
}
private string SubtitleCachePath => Path.Combine(_appPaths.DataPath, "subtitles");
@@ -196,13 +192,15 @@ namespace MediaBrowser.MediaEncoding.Subtitles
{
var bytes = await GetBytes(path, protocol, cancellationToken).ConfigureAwait(false);
- var charset = _textEncoding.GetDetectedEncodingName(bytes, bytes.Length, language, true);
- _logger.LogDebug("charset {0} detected for {1}", charset ?? "null", path);
+ var charset = CharsetDetector.DetectFromBytes(bytes).Detected?.EncodingName;
+ _logger.LogDebug("charset {CharSet} detected for {Path}", charset ?? "null", path);
if (!string.IsNullOrEmpty(charset))
{
+ // Make sure we have all the code pages we can get
+ Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
using (var inputStream = new MemoryStream(bytes))
- using (var reader = new StreamReader(inputStream, _textEncoding.GetEncodingFromCharset(charset)))
+ using (var reader = new StreamReader(inputStream, Encoding.GetEncoding(charset)))
{
var text = await reader.ReadToEndAsync().ConfigureAwait(false);
@@ -723,7 +721,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles
{
var bytes = await GetBytes(path, protocol, cancellationToken).ConfigureAwait(false);
- var charset = _textEncoding.GetDetectedEncodingName(bytes, bytes.Length, language, true);
+ var charset = CharsetDetector.DetectFromBytes(bytes).Detected?.EncodingName;
_logger.LogDebug("charset {0} detected for {Path}", charset ?? "null", path);