diff options
author | Fire-Head <Fire-Head@users.noreply.github.com> | 2019-06-02 05:00:38 +0200 |
---|---|---|
committer | Fire-Head <Fire-Head@users.noreply.github.com> | 2019-06-02 05:00:38 +0200 |
commit | b1f9e28cd155459ab2843690c248ed9f4767bc3f (patch) | |
tree | 8e7d2a33d4c5109ea3c3562940268afc57d0915c /dxsdk/Include/mpegtype.h | |
parent | rw skeleton (diff) | |
download | re3-b1f9e28cd155459ab2843690c248ed9f4767bc3f.tar re3-b1f9e28cd155459ab2843690c248ed9f4767bc3f.tar.gz re3-b1f9e28cd155459ab2843690c248ed9f4767bc3f.tar.bz2 re3-b1f9e28cd155459ab2843690c248ed9f4767bc3f.tar.lz re3-b1f9e28cd155459ab2843690c248ed9f4767bc3f.tar.xz re3-b1f9e28cd155459ab2843690c248ed9f4767bc3f.tar.zst re3-b1f9e28cd155459ab2843690c248ed9f4767bc3f.zip |
Diffstat (limited to 'dxsdk/Include/mpegtype.h')
-rw-r--r-- | dxsdk/Include/mpegtype.h | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/dxsdk/Include/mpegtype.h b/dxsdk/Include/mpegtype.h new file mode 100644 index 00000000..4e79fcb0 --- /dev/null +++ b/dxsdk/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__ |