Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

101 lines
2.5 KiB

/*++
Copyright (c) 1998 Microsoft Corporation
Module Name:
bgaudio.h
Abstract:
Definitions for the audio bridge filters
Author:
Mu Han (muhan) 11/12/1998
--*/
#ifndef _BGAUDIO_H_
#define _BGAUDIO_H_
class CTAPIAudioBridgeSinkFilter :
public CTAPIBridgeSinkFilter
{
public:
CTAPIAudioBridgeSinkFilter(
IN LPUNKNOWN pUnk,
IN IDataBridge * pIDataBridge,
OUT HRESULT * phr
);
static HRESULT CreateInstance(
IN IDataBridge * pIDataBridge,
OUT IBaseFilter ** ppIBaseFilter
);
// methods called by the input pin.
HRESULT GetMediaType(IN int iPosition, IN CMediaType *pMediaType);
HRESULT CheckMediaType(IN const CMediaType *pMediatype);
};
class CTAPIAudioBridgeSourceFilter :
public CTAPIBridgeSourceFilter
{
public:
CTAPIAudioBridgeSourceFilter(
IN LPUNKNOWN pUnk,
OUT HRESULT *phr
);
~CTAPIAudioBridgeSourceFilter ();
static HRESULT CreateInstance(
OUT IBaseFilter ** ppIBaseFilter
);
// override the IDataBridge methods.
STDMETHOD (SendSample) (
IN IMediaSample *pSample
);
// methods called by the output pin.
HRESULT GetMediaType(IN int iPosition, IN CMediaType *pMediaType);
HRESULT CheckMediaType(IN const CMediaType *pMediatype);
// overrides the base filter
// IAMBufferNegotiation stuff
STDMETHOD (SuggestAllocatorProperties) (IN const ALLOCATOR_PROPERTIES *pprop);
STDMETHOD (GetAllocatorProperties) (OUT ALLOCATOR_PROPERTIES *pprop);
// IAMStreamConfig stuff
STDMETHOD (SetFormat) (IN AM_MEDIA_TYPE *pmt);
STDMETHOD (GetFormat) (OUT AM_MEDIA_TYPE **ppmt);
protected:
// following members were moved from CTAPIBridgeSourceOutputPin
// because they are only need in audio part; we implement a derived filter class
// for audio; same pin is shared by both audio and video
ALLOCATOR_PROPERTIES m_prop;
BOOL m_fPropSet;
AM_MEDIA_TYPE m_mt;
BOOL m_fMtSet;
BOOL m_fClockStarted;
BOOL m_fJustBurst;
REFERENCE_TIME m_last_wall_time;
REFERENCE_TIME m_last_stream_time;
// assume output sample won't change size
REFERENCE_TIME m_output_sample_time;
// algorithm of SendSample can only deal with samples with fixed size
LONG m_nInputSize, m_nOutputSize, m_nOutputFree;
IMediaSample *m_pOutputSample;
};
#endif