summaryrefslogtreecommitdiffstats
path: root/dxsdk/Include/Mpeg2Bits.h
diff options
context:
space:
mode:
Diffstat (limited to 'dxsdk/Include/Mpeg2Bits.h')
-rw-r--r--dxsdk/Include/Mpeg2Bits.h95
1 files changed, 95 insertions, 0 deletions
diff --git a/dxsdk/Include/Mpeg2Bits.h b/dxsdk/Include/Mpeg2Bits.h
new file mode 100644
index 00000000..45debbb6
--- /dev/null
+++ b/dxsdk/Include/Mpeg2Bits.h
@@ -0,0 +1,95 @@
+/////////////////////////////////////////////////////////////////////////////
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+// Module Name:
+//
+// Mpeg2Bits.h
+//
+// Abstract:
+//
+// This file defines the MPEG-2 section header bitfields. These are
+// defined here instead of in mpegstructs.idl because of MIDL
+// compiler conflicts with bitfield definitions.
+//
+/////////////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+#pragma pack(push)
+#pragma pack(1)
+
+
+//
+// PID structure
+//
+
+#ifdef __midl
+
+typedef struct
+{
+ WORD Bits;
+} PID_BITS_MIDL;
+
+#else
+
+typedef struct
+{
+ WORD Reserved : 3;
+ WORD ProgramId : 13;
+} PID_BITS, *PPID_BITS;
+
+#endif
+
+
+
+//
+// Generic MPEG packet header structure
+//
+
+#ifdef __midl
+
+typedef struct
+{
+ WORD Bits;
+} MPEG_HEADER_BITS_MIDL;
+
+#else
+
+typedef struct
+{
+ WORD SectionLength : 12;
+ WORD Reserved : 2;
+ WORD PrivateIndicator : 1;
+ WORD SectionSyntaxIndicator : 1;
+} MPEG_HEADER_BITS, *PMPEG_HEADER_BITS;
+
+#endif
+
+
+
+//
+// Long MPEG packet header structure
+//
+
+#ifdef __midl
+
+typedef struct
+{
+ BYTE Bits;
+} MPEG_HEADER_VERSION_BITS_MIDL;
+
+#else
+
+typedef struct
+{
+ BYTE CurrentNextIndicator : 1;
+ BYTE VersionNumber : 5;
+ BYTE Reserved : 2;
+} MPEG_HEADER_VERSION_BITS, *PMPEG_HEADER_VERSION_BITS;
+
+#endif
+
+
+
+#pragma pack(pop)