summaryrefslogtreecommitdiffstats
path: root/sdk/dx8sdk/Include/mpegtype.h
diff options
context:
space:
mode:
Diffstat (limited to 'sdk/dx8sdk/Include/mpegtype.h')
-rw-r--r--sdk/dx8sdk/Include/mpegtype.h119
1 files changed, 119 insertions, 0 deletions
diff --git a/sdk/dx8sdk/Include/mpegtype.h b/sdk/dx8sdk/Include/mpegtype.h
new file mode 100644
index 00000000..4e79fcb0
--- /dev/null
+++ b/sdk/dx8sdk/Include/mpegtype.h
@@ -0,0 +1,119 @@
+//------------------------------------------------------------------------------
+// File: MPEGType.h
+//
+// Desc: MPEG system stream compound type definition
+//
+// Copyright (c) 1996-2001, Microsoft Corporation. All rights reserved.
+//------------------------------------------------------------------------------
+
+
+#ifndef __MPEGTYPE__
+#define __MPEGTYPE__
+
+#ifdef __cplusplus
+extern "C" {
+#endif // __cplusplus
+
+//
+// AM_MPEGSYSTEMTYPE defines the format block contents for
+// data of type MEDIATYPE_MPEG1System when the format
+// block GUID is FORMAT_MPEG1System
+//
+// The format block consists of elements of type
+// AM_MPEGSYSTEMTYPE up to the length of the format block
+// Each format block is 8-byte aligned from the start of
+// the format block
+//
+
+typedef struct tagAM_MPEGSTREAMTYPE
+{
+ DWORD dwStreamId; // Stream id of stream to process
+ DWORD dwReserved; // 8-byte alignment
+ AM_MEDIA_TYPE mt; // Type for substream - pbFormat is NULL
+ BYTE bFormat[1]; // Format data
+} AM_MPEGSTREAMTYPE;
+
+typedef struct tagAM_MPEGSYSTEMTYPE
+{
+ DWORD dwBitRate; // Bits per second
+ DWORD cStreams; // Number of streams
+ AM_MPEGSTREAMTYPE Streams[1];
+} AM_MPEGSYSTEMTYPE;
+
+//
+// Helper macros for AM_MPEGSTREAMTYPE
+//
+#define AM_MPEGSTREAMTYPE_ELEMENTLENGTH(pStreamType) \
+ FIELD_OFFSET(AM_MPEGSTREAMTYPE, bFormat[(pStreamType)->mt.cbFormat])
+#define AM_MPEGSTREAMTYPE_NEXT(pStreamType) \
+ ((AM_MPEGSTREAMTYPE *)((PBYTE)(pStreamType) + \
+ ((AM_MPEGSTREAMTYPE_ELEMENTLENGTH(pStreamType) + 7) & ~7)))
+
+//
+// IMpegAudioDecoder
+//
+
+// Values for DualMode
+#define AM_MPEG_AUDIO_DUAL_MERGE 0
+#define AM_MPEG_AUDIO_DUAL_LEFT 1
+#define AM_MPEG_AUDIO_DUAL_RIGHT 2
+
+DECLARE_INTERFACE_(IMpegAudioDecoder, IUnknown) {
+
+ STDMETHOD(get_FrequencyDivider) (THIS_
+ unsigned long *pDivider /* [out] */
+ ) PURE;
+
+ STDMETHOD(put_FrequencyDivider) (THIS_
+ unsigned long Divider /* [in] */
+ ) PURE;
+
+ STDMETHOD(get_DecoderAccuracy) (THIS_
+ unsigned long *pAccuracy /* [out] */
+ ) PURE;
+
+ STDMETHOD(put_DecoderAccuracy) (THIS_
+ unsigned long Accuracy /* [in] */
+ ) PURE;
+
+ STDMETHOD(get_Stereo) (THIS_
+ unsigned long *pStereo /* [out] */
+ ) PURE;
+
+ STDMETHOD(put_Stereo) (THIS_
+ unsigned long Stereo /* [in] */
+ ) PURE;
+
+ STDMETHOD(get_DecoderWordSize) (THIS_
+ unsigned long *pWordSize /* [out] */
+ ) PURE;
+
+ STDMETHOD(put_DecoderWordSize) (THIS_
+ unsigned long WordSize /* [in] */
+ ) PURE;
+
+ STDMETHOD(get_IntegerDecode) (THIS_
+ unsigned long *pIntDecode /* [out] */
+ ) PURE;
+
+ STDMETHOD(put_IntegerDecode) (THIS_
+ unsigned long IntDecode /* [in] */
+ ) PURE;
+
+ STDMETHOD(get_DualMode) (THIS_
+ unsigned long *pIntDecode /* [out] */
+ ) PURE;
+
+ STDMETHOD(put_DualMode) (THIS_
+ unsigned long IntDecode /* [in] */
+ ) PURE;
+
+ STDMETHOD(get_AudioFormat) (THIS_
+ MPEG1WAVEFORMAT *lpFmt /* [out] */
+ ) PURE;
+};
+
+#ifdef __cplusplus
+}
+#endif // __cplusplus
+#endif // __MPEGTYPE__