00001 #include ".\oggrawaudioextractoroutputpin.h"
00002
00003 OggRawAudioExtractorOutputPin::OggRawAudioExtractorOutputPin(OggRawAudioExtractorFilter* inParentFilter)
00004 : CTransformOutputPin(NAME("PCMOut"), inParentFilter, &mHR, L"PCM Out Pin")
00005 , mDataQueue(NULL)
00006 , mHR(S_OK)
00007 {
00008 }
00009
00010 OggRawAudioExtractorOutputPin::~OggRawAudioExtractorOutputPin(void)
00011 {
00012 delete mDataQueue;
00013 }
00014 HRESULT OggRawAudioExtractorOutputPin::CompleteConnect(IPin *inReceivePin)
00015 {
00016 CAutoLock locLock(m_pLock);
00017
00018
00019 HRESULT locHR = S_OK;
00020 mDataQueue = new COutputQueue (inReceivePin, &locHR, FALSE, FALSE, 1, TRUE, 50);
00021
00022 if (FAILED(locHR)) {
00023
00024
00025 }
00026
00027 return CTransformOutputPin::CompleteConnect(inReceivePin);
00028 }
00029
00030 HRESULT OggRawAudioExtractorOutputPin::BreakConnect(void)
00031 {
00032 CAutoLock locLock(m_pLock);
00033
00034 delete mDataQueue;
00035 mDataQueue = NULL;
00036
00037 HRESULT locHR = CBaseOutputPin::BreakConnect();
00038
00039
00040 return locHR;
00041 }