skeleton updated, windows specific stuff added
This commit is contained in:
119
dxsdk/Include/mpegtype.h
Normal file
119
dxsdk/Include/mpegtype.h
Normal file
@@ -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__
|
||||
Reference in New Issue
Block a user