diff options
Diffstat (limited to 'BDInfo/TSStreamClipFile.cs')
| -rw-r--r-- | BDInfo/TSStreamClipFile.cs | 121 |
1 files changed, 57 insertions, 64 deletions
diff --git a/BDInfo/TSStreamClipFile.cs b/BDInfo/TSStreamClipFile.cs index f2accb88d..3396f4c71 100644 --- a/BDInfo/TSStreamClipFile.cs +++ b/BDInfo/TSStreamClipFile.cs @@ -23,28 +23,24 @@ using System.Collections.Generic; using System.IO; using System.Text; using MediaBrowser.Model.IO; -using MediaBrowser.Model.Text; namespace BDInfo { public class TSStreamClipFile { private readonly IFileSystem _fileSystem; - private readonly ITextEncoding _textEncoding; public FileSystemMetadata FileInfo = null; public string FileType = null; public bool IsValid = false; public string Name = null; public Dictionary<ushort, TSStream> Streams = - new Dictionary<ushort,TSStream>(); + new Dictionary<ushort, TSStream>(); - public TSStreamClipFile( - FileSystemMetadata fileInfo, IFileSystem fileSystem, ITextEncoding textEncoding) + public TSStreamClipFile(FileSystemMetadata fileInfo, IFileSystem fileSystem) { FileInfo = fileInfo; _fileSystem = fileSystem; - _textEncoding = textEncoding; Name = fileInfo.Name.ToUpper(); } @@ -69,8 +65,8 @@ namespace BDInfo byte[] fileType = new byte[8]; Array.Copy(data, 0, fileType, 0, fileType.Length); - - FileType = _textEncoding.GetASCIIEncoding().GetString(fileType, 0, fileType.Length); + + FileType = Encoding.ASCII.GetString(fileType, 0, fileType.Length); if (FileType != "HDMV0100" && FileType != "HDMV0200") { @@ -78,7 +74,7 @@ namespace BDInfo "Clip info file {0} has an unknown file type {1}.", FileInfo.Name, FileType)); } -#if DEBUG +#if DEBUG Debug.WriteLine(string.Format( "\tFileType: {0}", FileType)); #endif @@ -110,12 +106,12 @@ namespace BDInfo TSStream stream = null; ushort PID = (ushort) - ((clipData[streamOffset] << 8) + + ((clipData[streamOffset] << 8) + clipData[streamOffset + 1]); - + streamOffset += 2; - TSStreamType streamType = (TSStreamType) + var streamType = (TSStreamType) clipData[streamOffset + 1]; switch (streamType) { @@ -127,18 +123,18 @@ namespace BDInfo case TSStreamType.MPEG1_VIDEO: case TSStreamType.MPEG2_VIDEO: case TSStreamType.VC1_VIDEO: - { - TSVideoFormat videoFormat = (TSVideoFormat) - (clipData[streamOffset + 2] >> 4); - TSFrameRate frameRate = (TSFrameRate) - (clipData[streamOffset + 2] & 0xF); - TSAspectRatio aspectRatio = (TSAspectRatio) - (clipData[streamOffset + 3] >> 4); - - stream = new TSVideoStream(); - ((TSVideoStream)stream).VideoFormat = videoFormat; - ((TSVideoStream)stream).AspectRatio = aspectRatio; - ((TSVideoStream)stream).FrameRate = frameRate; + { + var videoFormat = (TSVideoFormat) + (clipData[streamOffset + 2] >> 4); + var frameRate = (TSFrameRate) + (clipData[streamOffset + 2] & 0xF); + var aspectRatio = (TSAspectRatio) + (clipData[streamOffset + 3] >> 4); + + stream = new TSVideoStream(); + ((TSVideoStream)stream).VideoFormat = videoFormat; + ((TSVideoStream)stream).AspectRatio = aspectRatio; + ((TSVideoStream)stream).FrameRate = frameRate; #if DEBUG Debug.WriteLine(string.Format( "\t{0} {1} {2} {3} {4}", @@ -148,8 +144,8 @@ namespace BDInfo frameRate, aspectRatio)); #endif - } - break; + } + break; case TSStreamType.AC3_AUDIO: case TSStreamType.AC3_PLUS_AUDIO: @@ -162,23 +158,22 @@ namespace BDInfo case TSStreamType.LPCM_AUDIO: case TSStreamType.MPEG1_AUDIO: case TSStreamType.MPEG2_AUDIO: - { - byte[] languageBytes = new byte[3]; - Array.Copy(clipData, streamOffset + 3, - languageBytes, 0, languageBytes.Length); - string languageCode = - _textEncoding.GetASCIIEncoding().GetString(languageBytes, 0, languageBytes.Length); - - TSChannelLayout channelLayout = (TSChannelLayout) - (clipData[streamOffset + 2] >> 4); - TSSampleRate sampleRate = (TSSampleRate) - (clipData[streamOffset + 2] & 0xF); - - stream = new TSAudioStream(); - ((TSAudioStream)stream).LanguageCode = languageCode; - ((TSAudioStream)stream).ChannelLayout = channelLayout; - ((TSAudioStream)stream).SampleRate = TSAudioStream.ConvertSampleRate(sampleRate); - ((TSAudioStream)stream).LanguageCode = languageCode; + { + byte[] languageBytes = new byte[3]; + Array.Copy(clipData, streamOffset + 3, + languageBytes, 0, languageBytes.Length); + string languageCode = Encoding.ASCII.GetString(languageBytes, 0, languageBytes.Length); + + var channelLayout = (TSChannelLayout) + (clipData[streamOffset + 2] >> 4); + var sampleRate = (TSSampleRate) + (clipData[streamOffset + 2] & 0xF); + + stream = new TSAudioStream(); + ((TSAudioStream)stream).LanguageCode = languageCode; + ((TSAudioStream)stream).ChannelLayout = channelLayout; + ((TSAudioStream)stream).SampleRate = TSAudioStream.ConvertSampleRate(sampleRate); + ((TSAudioStream)stream).LanguageCode = languageCode; #if DEBUG Debug.WriteLine(string.Format( "\t{0} {1} {2} {3} {4}", @@ -188,20 +183,19 @@ namespace BDInfo channelLayout, sampleRate)); #endif - } - break; + } + break; case TSStreamType.INTERACTIVE_GRAPHICS: case TSStreamType.PRESENTATION_GRAPHICS: - { - byte[] languageBytes = new byte[3]; - Array.Copy(clipData, streamOffset + 2, - languageBytes, 0, languageBytes.Length); - string languageCode = - _textEncoding.GetASCIIEncoding().GetString(languageBytes, 0, languageBytes.Length); + { + byte[] languageBytes = new byte[3]; + Array.Copy(clipData, streamOffset + 2, + languageBytes, 0, languageBytes.Length); + string languageCode = Encoding.ASCII.GetString(languageBytes, 0, languageBytes.Length); stream = new TSGraphicsStream(); - stream.LanguageCode = languageCode; + stream.LanguageCode = languageCode; #if DEBUG Debug.WriteLine(string.Format( "\t{0} {1} {2}", @@ -209,16 +203,15 @@ namespace BDInfo streamType, languageCode)); #endif - } - break; + } + break; case TSStreamType.SUBTITLE: - { - byte[] languageBytes = new byte[3]; - Array.Copy(clipData, streamOffset + 3, - languageBytes, 0, languageBytes.Length); - string languageCode = - _textEncoding.GetASCIIEncoding().GetString(languageBytes, 0, languageBytes.Length); + { + byte[] languageBytes = new byte[3]; + Array.Copy(clipData, streamOffset + 3, + languageBytes, 0, languageBytes.Length); + string languageCode = Encoding.ASCII.GetString(languageBytes, 0, languageBytes.Length); #if DEBUG Debug.WriteLine(string.Format( "\t{0} {1} {2}", @@ -227,9 +220,9 @@ namespace BDInfo languageCode)); #endif stream = new TSTextStream(); - stream.LanguageCode = languageCode; - } - break; + stream.LanguageCode = languageCode; + } + break; } if (stream != null) @@ -240,7 +233,7 @@ namespace BDInfo } streamOffset += clipData[streamOffset] + 1; - } + } IsValid = true; } finally |
