aboutsummaryrefslogtreecommitdiff
path: root/BDInfo/TSCodecMPEG2.cs
diff options
context:
space:
mode:
Diffstat (limited to 'BDInfo/TSCodecMPEG2.cs')
-rw-r--r--BDInfo/TSCodecMPEG2.cs208
1 files changed, 0 insertions, 208 deletions
diff --git a/BDInfo/TSCodecMPEG2.cs b/BDInfo/TSCodecMPEG2.cs
deleted file mode 100644
index 8bcd07d02..000000000
--- a/BDInfo/TSCodecMPEG2.cs
+++ /dev/null
@@ -1,208 +0,0 @@
-//============================================================================
-// BDInfo - Blu-ray Video and Audio Analysis Tool
-// Copyright © 2010 Cinema Squid
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//=============================================================================
-
-#undef DEBUG
-
-
-namespace BDInfo
-{
- public abstract class TSCodecMPEG2
- {
- public static void Scan(
- TSVideoStream stream,
- TSStreamBuffer buffer,
- ref string tag)
- {
- int parse = 0;
- int pictureParse = 0;
- int sequenceHeaderParse = 0;
- int extensionParse = 0;
- int sequenceExtensionParse = 0;
-
- for (int i = 0; i < buffer.Length; i++)
- {
- parse = (parse << 8) + buffer.ReadByte();
-
- if (parse == 0x00000100)
- {
- pictureParse = 2;
- }
- else if (parse == 0x000001B3)
- {
- sequenceHeaderParse = 7;
- }
- else if (sequenceHeaderParse > 0)
- {
- --sequenceHeaderParse;
- switch (sequenceHeaderParse)
- {
-#if DEBUG
- case 6:
- break;
-
- case 5:
- break;
-
- case 4:
- stream.Width =
- (int)((parse & 0xFFF000) >> 12);
- stream.Height =
- (int)(parse & 0xFFF);
- break;
-
- case 3:
- stream.AspectRatio =
- (TSAspectRatio)((parse & 0xF0) >> 4);
-
- switch ((parse & 0xF0) >> 4)
- {
- case 0: // Forbidden
- break;
- case 1: // Square
- break;
- case 2: // 4:3
- break;
- case 3: // 16:9
- break;
- case 4: // 2.21:1
- break;
- default: // Reserved
- break;
- }
-
- switch (parse & 0xF)
- {
- case 0: // Forbidden
- break;
- case 1: // 23.976
- stream.FrameRateEnumerator = 24000;
- stream.FrameRateDenominator = 1001;
- break;
- case 2: // 24
- stream.FrameRateEnumerator = 24000;
- stream.FrameRateDenominator = 1000;
- break;
- case 3: // 25
- stream.FrameRateEnumerator = 25000;
- stream.FrameRateDenominator = 1000;
- break;
- case 4: // 29.97
- stream.FrameRateEnumerator = 30000;
- stream.FrameRateDenominator = 1001;
- break;
- case 5: // 30
- stream.FrameRateEnumerator = 30000;
- stream.FrameRateDenominator = 1000;
- break;
- case 6: // 50
- stream.FrameRateEnumerator = 50000;
- stream.FrameRateDenominator = 1000;
- break;
- case 7: // 59.94
- stream.FrameRateEnumerator = 60000;
- stream.FrameRateDenominator = 1001;
- break;
- case 8: // 60
- stream.FrameRateEnumerator = 60000;
- stream.FrameRateDenominator = 1000;
- break;
- default: // Reserved
- stream.FrameRateEnumerator = 0;
- stream.FrameRateDenominator = 0;
- break;
- }
- break;
-
- case 2:
- break;
-
- case 1:
- break;
-#endif
-
- case 0:
-#if DEBUG
- stream.BitRate =
- (((parse & 0xFFFFC0) >> 6) * 200);
-#endif
- stream.IsVBR = true;
- stream.IsInitialized = true;
- break;
- }
- }
- else if (pictureParse > 0)
- {
- --pictureParse;
- if (pictureParse == 0)
- {
- switch ((parse & 0x38) >> 3)
- {
- case 1:
- tag = "I";
- break;
- case 2:
- tag = "P";
- break;
- case 3:
- tag = "B";
- break;
- default:
- break;
- }
- if (stream.IsInitialized) return;
- }
- }
- else if (parse == 0x000001B5)
- {
- extensionParse = 1;
- }
- else if (extensionParse > 0)
- {
- --extensionParse;
- if (extensionParse == 0)
- {
- if ((parse & 0xF0) == 0x10)
- {
- sequenceExtensionParse = 1;
- }
- }
- }
- else if (sequenceExtensionParse > 0)
- {
- --sequenceExtensionParse;
-#if DEBUG
- if (sequenceExtensionParse == 0)
- {
- uint sequenceExtension =
- ((parse & 0x8) >> 3);
- if (sequenceExtension == 0)
- {
- stream.IsInterlaced = true;
- }
- else
- {
- stream.IsInterlaced = false;
- }
- }
-#endif
- }
- }
- }
- }
-}