46 |
static const GUID MEDIASUBTYPE_MP3 = |
static const GUID MEDIASUBTYPE_MP3 = |
47 |
{ 0x00000055, 0x0000, 0x0010, { 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 } }; |
{ 0x00000055, 0x0000, 0x0010, { 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 } }; |
48 |
|
|
49 |
|
// 6B6D0801-9ADA-11D0-A520-00A0D10129C0 |
50 |
|
static const GUID MEDIASUBTYPE_ASF = |
51 |
|
{0x6B6D0801, 0x9ADA, 0x11D0, { 0xA5, 0x20, 0x00, 0xA0, 0xD1, 0x01, 0x29, 0xC0 } }; |
52 |
|
|
53 |
|
static const GUID CLSID_HaaliMediaSplitter_AR = |
54 |
|
{0x564fd788, 0x86c9, 0x4444, { 0x97, 0x1e, 0xcc, 0x4a, 0x24, 0x3d, 0xa1, 0x50 } }; |
55 |
|
|
56 |
|
static const GUID CLSID_HaaliMediaSplitter = |
57 |
|
{0x55DA30FC, 0xF16B, 0x49FC, { 0xBA, 0xA5, 0xAE, 0x59, 0xFC, 0x65, 0xF8, 0x2D } }; |
58 |
|
|
59 |
|
// B98D13E7-55DB-4385-A33D-09FD1BA26338 |
60 |
|
static const GUID CLSID_LAVSource = |
61 |
|
{ 0xB98D13E7, 0x55DB, 0x4385, { 0xA3, 0x3D, 0x09, 0xFD, 0x1B, 0xA2, 0x63, 0x38 }}; |
62 |
|
|
63 |
|
// 171252A0-8820-4AFE-9DF8-5C92B2D66B04 |
64 |
|
static const GUID CLSID_LAVSplitter = |
65 |
|
{ 0x171252A0, 0x8820, 0x4AFE, { 0x9D, 0xF8, 0x5C, 0x92, 0xB2, 0xD6, 0x6B, 0x04 }}; |
66 |
|
|
67 |
|
// 0F40E1E5-4F79-4988-B1A9-CC98794E6B55 |
68 |
|
static const GUID CLSID_FFDshowAudioDecoder = |
69 |
|
{ 0x0F40E1E5, 0x4F79, 0x4988, { 0xB1, 0xA9, 0xCC, 0x98, 0x79, 0x4E, 0x6B, 0x55 }}; |
70 |
|
|
71 |
|
// 04FE9017-F873-410E-871E-AB91661A4EF7 |
72 |
|
static const GUID CLSID_FFDshowVideoDecoder = |
73 |
|
{ 0x04FE9017, 0xF873, 0x410E, { 0x87, 0x1E, 0xAB, 0x91, 0x66, 0x1A, 0x4E, 0xF7 }}; |
74 |
|
|
75 |
DECLARE_INTERFACE_(IRecProgressNotify, IUnknown) |
DECLARE_INTERFACE_(IRecProgressNotify, IUnknown) |
76 |
{ |
{ |
82 |
STDMETHOD (SetTotalSize)(int nbTotal) PURE; |
STDMETHOD (SetTotalSize)(int nbTotal) PURE; |
83 |
STDMETHOD (SetElapsedSize)(int nbElapsed) PURE; |
STDMETHOD (SetElapsedSize)(int nbElapsed) PURE; |
84 |
STDMETHOD (SetCurSize)(int nbCur) PURE; |
STDMETHOD (SetCurSize)(int nbCur) PURE; |
85 |
|
STDMETHOD (GetMeasuredTimes) (LONGLONG &outStopTimeMin, LONGLONG &outStopTimeMax, LONGLONG &outm_StartTimeMin, LONGLONG &outm_StartTimeMax) PURE; |
86 |
|
STDMETHOD (SetForceTimeParams) (LONGLONG inStartTimeOffset, LONGLONG inFpsNom, LONGLONG inFpsDen) PURE; |
87 |
|
STDMETHOD (SetAudioBitrate) (int Bitrate) PURE; |
88 |
}; |
}; |
89 |
|
|
90 |
class CIRecProgressNotify : public IRecProgressNotify |
class CIRecProgressNotify : public IRecProgressNotify |
100 |
LONGLONG m_stopTime; |
LONGLONG m_stopTime; |
101 |
int m_Width, m_Height; |
int m_Width, m_Height; |
102 |
int m_curSize, m_totalSize, m_elapsedSize; |
int m_curSize, m_totalSize, m_elapsedSize; |
103 |
|
LONGLONG m_FpsNom, m_FpsDen; |
104 |
|
LONGLONG m_StopTimeMin, m_StopTimeMax, m_StartTimeMin, m_StartTimeMax; |
105 |
|
int m_bForceTimeStamps; |
106 |
|
int m_AudioBitrate; |
107 |
|
|
108 |
public: |
public: |
109 |
CIRecProgressNotify(); |
CIRecProgressNotify(); |
115 |
STDMETHODIMP SetTotalSize(int nbTotal); |
STDMETHODIMP SetTotalSize(int nbTotal); |
116 |
STDMETHODIMP SetCurSize(int nbCur); |
STDMETHODIMP SetCurSize(int nbCur); |
117 |
STDMETHODIMP SetElapsedSize(int nbElapsed); |
STDMETHODIMP SetElapsedSize(int nbElapsed); |
118 |
|
STDMETHODIMP GetMeasuredTimes (LONGLONG &outStopTimeMin, LONGLONG &outStopTimeMax, LONGLONG &outStartTimeMin, LONGLONG &outStartTimeMax); |
119 |
|
STDMETHODIMP SetForceTimeParams (LONGLONG inStartTimeOffset, LONGLONG inFpsNom, LONGLONG inFpsDen); |
120 |
|
STDMETHODIMP SetAudioBitrate(int Bitrate); |
121 |
}; |
}; |
122 |
|
|
123 |
class CProgressNotifyFilter : public CTransInPlaceFilter, CIRecProgressNotify |
class CProgressNotifyFilter : public CTransInPlaceFilter, CIRecProgressNotify |
126 |
static CUnknown * WINAPI CreateInstance(IUnknown *pUnk, HRESULT *phr, int Type); |
static CUnknown * WINAPI CreateInstance(IUnknown *pUnk, HRESULT *phr, int Type); |
127 |
CProgressNotifyFilter(LPUNKNOWN pUnk, HRESULT *phr, int Type); |
CProgressNotifyFilter(LPUNKNOWN pUnk, HRESULT *phr, int Type); |
128 |
~CProgressNotifyFilter(); |
~CProgressNotifyFilter(); |
129 |
int m_FpsNom, m_FpsDen, m_MinSampleSize; |
int m_MinSampleSize; |
130 |
|
|
131 |
virtual HRESULT CompleteConnect(PIN_DIRECTION direction, IPin *pReceivePin); |
virtual HRESULT CompleteConnect(PIN_DIRECTION direction, IPin *pReceivePin); |
132 |
LONGLONG m_AvgTimeForFrame; |
LONGLONG m_AvgTimeForFrame; |
171 |
GUID m_SubtypeID; |
GUID m_SubtypeID; |
172 |
int m_OutFcc; |
int m_OutFcc; |
173 |
|
|
174 |
int m_FpsNom, m_FpsDen; |
LONGLONG m_UnitDuration, m_UnitTimeDelta, m_MaxStartTime, m_MaxStopTime; |
175 |
DWORD m_AvgTimeForFrame; |
DWORD m_AvgTimeForFrame; |
176 |
|
|
177 |
BYTE *m_pMpeg4Sequence; |
BYTE *m_pMpeg4Sequence; |