Create a branch for network fixes.
[reactos.git] / include / dxsdk / mpegtype.h
1
2 #ifndef __MPEGTYPE__
3 #define __MPEGTYPE__
4
5 #ifdef __cplusplus
6 extern "C" {
7 #endif
8
9
10
11 typedef struct tagAM_MPEGSTREAMTYPE
12 {
13 DWORD dwStreamId;
14 DWORD dwReserved;
15 AM_MEDIA_TYPE mt;
16 BYTE bFormat[1];
17 } AM_MPEGSTREAMTYPE;
18
19 typedef struct tagAM_MPEGSYSTEMTYPE
20 {
21 DWORD dwBitRate;
22 DWORD cStreams;
23 AM_MPEGSTREAMTYPE Streams[1];
24 } AM_MPEGSYSTEMTYPE;
25
26 DECLARE_INTERFACE_(IMpegAudioDecoder, IUnknown)
27 {
28 STDMETHOD(get_FrequencyDivider) (THIS_ unsigned long *pDivider) PURE;
29 STDMETHOD(put_FrequencyDivider) (THIS_ unsigned long Divider) PURE;
30 STDMETHOD(get_DecoderAccuracy) (THIS_ unsigned long *pAccuracy) PURE;
31 STDMETHOD(put_DecoderAccuracy) (THIS_ unsigned long Accuracy) PURE;
32 STDMETHOD(get_Stereo) (THIS_ unsigned long *pStereo ) PURE;
33 STDMETHOD(put_Stereo) (THIS_ unsigned long Stereo) PURE;
34 STDMETHOD(get_DecoderWordSize) (THIS_ unsigned long *pWordSize) PURE;
35 STDMETHOD(put_DecoderWordSize) (THIS_ unsigned long WordSize) PURE;
36 STDMETHOD(get_IntegerDecode) (THIS_ unsigned long *pIntDecode) PURE;
37 STDMETHOD(put_IntegerDecode) (THIS_ unsigned long IntDecode) PURE;
38 STDMETHOD(get_DualMode) (THIS_ unsigned long *pIntDecode) PURE;
39 STDMETHOD(put_DualMode) (THIS_ unsigned long IntDecode) PURE;
40 STDMETHOD(get_AudioFormat) (THIS_ MPEG1WAVEFORMAT *lpFmt) PURE;
41 };
42
43 #ifdef
44 }
45 #endif
46 #endif
47
48 #define AM_MPEGSTREAMTYPE_ELEMENTLENGTH(pStreamType) FIELD_OFFSET(AM_MPEGSTREAMTYPE, bFormat[(pStreamType)->mt.cbFormat])
49 #define AM_MPEGSTREAMTYPE_NEXT(pStreamType) ((AM_MPEGSTREAMTYPE *)((PBYTE)(pStreamType) + ((AM_MPEGSTREAMTYPE_ELEMENTLENGTH(pStreamType) + 7) & ~7)))
50 #define AM_MPEG_AUDIO_DUAL_MERGE 0
51 #define AM_MPEG_AUDIO_DUAL_LEFT 1
52 #define AM_MPEG_AUDIO_DUAL_RIGHT 2
53