aboutsummaryrefslogtreecommitdiff
path: root/BDInfo/TSStreamClipFile.cs
diff options
context:
space:
mode:
Diffstat (limited to 'BDInfo/TSStreamClipFile.cs')
-rw-r--r--BDInfo/TSStreamClipFile.cs26
1 files changed, 16 insertions, 10 deletions
diff --git a/BDInfo/TSStreamClipFile.cs b/BDInfo/TSStreamClipFile.cs
index dbdf3ea41..118e3b5fc 100644
--- a/BDInfo/TSStreamClipFile.cs
+++ b/BDInfo/TSStreamClipFile.cs
@@ -22,12 +22,16 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
+using MediaBrowser.Model.IO;
+using MediaBrowser.Model.TextEncoding;
namespace BDInfo
{
public class TSStreamClipFile
{
- public FileInfo FileInfo = null;
+ private readonly IFileSystem _fileSystem;
+ private readonly IEncoding _textEncoding;
+ public FileSystemMetadata FileInfo = null;
public string FileType = null;
public bool IsValid = false;
public string Name = null;
@@ -36,15 +40,17 @@ namespace BDInfo
new Dictionary<ushort,TSStream>();
public TSStreamClipFile(
- FileInfo fileInfo)
+ FileSystemMetadata fileInfo, IFileSystem fileSystem, IEncoding textEncoding)
{
FileInfo = fileInfo;
+ _fileSystem = fileSystem;
+ _textEncoding = textEncoding;
Name = fileInfo.Name.ToUpper();
}
public void Scan()
{
- FileStream fileStream = null;
+ Stream fileStream = null;
BinaryReader fileReader = null;
try
@@ -55,7 +61,7 @@ namespace BDInfo
#endif
Streams.Clear();
- fileStream = File.OpenRead(FileInfo.FullName);
+ fileStream = _fileSystem.OpenRead(FileInfo.FullName);
fileReader = new BinaryReader(fileStream);
byte[] data = new byte[fileStream.Length];
@@ -64,7 +70,7 @@ namespace BDInfo
byte[] fileType = new byte[8];
Array.Copy(data, 0, fileType, 0, fileType.Length);
- FileType = ASCIIEncoding.ASCII.GetString(fileType);
+ FileType = _textEncoding.GetASCIIString(fileType, 0, fileType.Length);
if (FileType != "HDMV0100" &&
FileType != "HDMV0200")
{
@@ -161,7 +167,7 @@ namespace BDInfo
Array.Copy(clipData, streamOffset + 3,
languageBytes, 0, languageBytes.Length);
string languageCode =
- ASCIIEncoding.ASCII.GetString(languageBytes);
+ _textEncoding.GetASCIIString(languageBytes, 0, languageBytes.Length);
TSChannelLayout channelLayout = (TSChannelLayout)
(clipData[streamOffset + 2] >> 4);
@@ -192,9 +198,9 @@ namespace BDInfo
Array.Copy(clipData, streamOffset + 2,
languageBytes, 0, languageBytes.Length);
string languageCode =
- ASCIIEncoding.ASCII.GetString(languageBytes);
+ _textEncoding.GetASCIIString(languageBytes, 0, languageBytes.Length);
- stream = new TSGraphicsStream();
+ stream = new TSGraphicsStream();
stream.LanguageCode = languageCode;
#if DEBUG
Debug.WriteLine(string.Format(
@@ -212,7 +218,7 @@ namespace BDInfo
Array.Copy(clipData, streamOffset + 3,
languageBytes, 0, languageBytes.Length);
string languageCode =
- ASCIIEncoding.ASCII.GetString(languageBytes);
+ _textEncoding.GetASCIIString(languageBytes, 0, languageBytes.Length);
#if DEBUG
Debug.WriteLine(string.Format(
"\t{0} {1} {2}",
@@ -220,7 +226,7 @@ namespace BDInfo
streamType,
languageCode));
#endif
- stream = new TSTextStream();
+ stream = new TSTextStream();
stream.LanguageCode = languageCode;
}
break;