[xiph-commits] r10731 - in branches/oggdsf_new_demux/src/lib:
codecs/flac/filters/dsfFLACDecoder
codecs/flac/filters/dsfNativeFLACSource
codecs/flac/libs/libFLACHelper core/directshow/dsfOggDemux2
player/libDSPlayDotNET
illiminable at svn.xiph.org
illiminable at svn.xiph.org
Mon Jan 16 09:22:54 PST 2006
Author: illiminable
Date: 2006-01-16 09:22:38 -0800 (Mon, 16 Jan 2006)
New Revision: 10731
Modified:
branches/oggdsf_new_demux/src/lib/codecs/flac/filters/dsfFLACDecoder/FLACDecodeInputPin.cpp
branches/oggdsf_new_demux/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourceFilter.cpp
branches/oggdsf_new_demux/src/lib/codecs/flac/libs/libFLACHelper/FLACHeaderTweaker.cpp
branches/oggdsf_new_demux/src/lib/codecs/flac/libs/libFLACHelper/FLACPushDecoder.cpp
branches/oggdsf_new_demux/src/lib/codecs/flac/libs/libFLACHelper/FLACPushDecoder.h
branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/HTTPFileSource.cpp
branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/OggStreamMapper.cpp
branches/oggdsf_new_demux/src/lib/player/libDSPlayDotNET/DSPlay.cpp
Log:
* Hid a public variable which shouldn't have been exposed in flac decoder
* Fixed a bug in flac, where for some reason through a bad cut and paste, the pcm data was being halved before being put in the buffer, resulting in flac files being noticable quieter than they should be. Ooops. This is in both native flac and ogg flac.
* Add a missing (but redundant) break statement in the stream mapper, so it's more obvious which branches fall through and which don't
* Located, but not fixed a bug in flac for all sample widths except 16.
* General removal of dead code.
Modified: branches/oggdsf_new_demux/src/lib/codecs/flac/filters/dsfFLACDecoder/FLACDecodeInputPin.cpp
===================================================================
--- branches/oggdsf_new_demux/src/lib/codecs/flac/filters/dsfFLACDecoder/FLACDecodeInputPin.cpp 2006-01-13 05:42:22 UTC (rev 10730)
+++ branches/oggdsf_new_demux/src/lib/codecs/flac/filters/dsfFLACDecoder/FLACDecodeInputPin.cpp 2006-01-16 17:22:38 UTC (rev 10731)
@@ -136,7 +136,7 @@
unsigned long locBytesCopied = 0;
unsigned long locBytesToCopy = 0;
- locStart = convertGranuleToTime(locEnd) - (((mDecodedByteCount / mFLACDecoder.mFrameSize) * UNITS) / mFLACDecoder.mSampleRate);
+ locStart = convertGranuleToTime(locEnd) - (((mDecodedByteCount / mFLACDecoder.frameSize()) * UNITS) / mFLACDecoder.sampleRate());
do {
HRESULT locHR = mOutputPin->GetDeliveryBuffer(&locSample, NULL, NULL, NULL);
if (locHR != S_OK) {
@@ -153,7 +153,7 @@
locBytesToCopy = ((mDecodedByteCount - locBytesCopied) <= locSample->GetSize()) ? (mDecodedByteCount - locBytesCopied) : locSample->GetSize();
//locBytesCopied += locBytesToCopy;
- locSampleDuration = (((locBytesToCopy/mFLACDecoder.mFrameSize) * UNITS) / mFLACDecoder.mSampleRate);
+ locSampleDuration = (((locBytesToCopy/mFLACDecoder.frameSize()) * UNITS) / mFLACDecoder.sampleRate());
locEnd = locStart + locSampleDuration;
//Adjust the time stamps for rate and seeking
@@ -167,11 +167,11 @@
locSample->Release();
} else {
if (locAdjustedStart < 0) {
- locSeekStripOffset = (-locAdjustedStart) * mFLACDecoder.mSampleRate;
- locSeekStripOffset *= mFLACDecoder.mFrameSize;
+ locSeekStripOffset = (-locAdjustedStart) * mFLACDecoder.sampleRate();
+ locSeekStripOffset *= mFLACDecoder.frameSize();
locSeekStripOffset /= UNITS;
- locSeekStripOffset += (mFLACDecoder.mFrameSize - (locSeekStripOffset % mFLACDecoder.mFrameSize));
- __int64 locStrippedDuration = (((locSeekStripOffset/mFLACDecoder.mFrameSize) * UNITS) / mFLACDecoder.mSampleRate);
+ locSeekStripOffset += (mFLACDecoder.frameSize() - (locSeekStripOffset % mFLACDecoder.frameSize()));
+ __int64 locStrippedDuration = (((locSeekStripOffset/mFLACDecoder.frameSize()) * UNITS) / mFLACDecoder.sampleRate());
locAdjustedStart += locStrippedDuration;
}
@@ -256,112 +256,6 @@
return -1;
}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/*
-
- //What happens when another packet arrives and the other one is still there ?
- //delete mPendingPacket;
- //debugLog<<"decodeData : "<<endl;
- if(!m_bFlushing) {
- unsigned char* locBuff = new unsigned char[inNumBytes]; //Given to packet.
- memcpy((void*)locBuff, (const void*)inBuf, inNumBytes);
-
- OggPacket* locPacket = new OggPacket(locBuff, inNumBytes, false, false); //We give this away.
-
- if (mGotMetaData) {
- StampedOggPacket* locStamped = NULL;
- {
- CAutoLock locCodecLock(mCodecLock);
- //for(unsigned long i = 0; i < mPendingPackets.size(); i++) {
- locStamped = (StampedOggPacket*)mFLACDecoder.decodeFLAC(locPacket)->clone(); //clone deleted below, locpacket accepted by decoder.
- }
-
- if (locStamped != NULL) {
- //Do the directshow crap here....
-
- IMediaSample* locSample;
-
- HRESULT locHR = mOutputPin->GetDeliveryBuffer(&locSample, NULL, NULL, NULL);
-
- if (FAILED(locHR)) {
- //debugLog<<"Write_Callback : Get deliverybuffer failed. returning abort code."<<endl;
- // //We get here when the application goes into stop mode usually.
- delete locStamped;
- return S_FALSE;
- }
-
-
- BYTE* locBuffer = NULL;
-
-
- // //Make our pointers set to point to the samples buffer
- locSample->GetPointer(&locBuffer);
-
-
- //*** WARNING 4018: Leave this.
- if (locSample->GetSize() >= locStamped->packetSize()) {
- REFERENCE_TIME locFrameStart = (((__int64)(mUptoFrame * UNITS)) / mFLACDecoder.mSampleRate);
-
- //Increment the frame counter
- //NOTE::: The returned packet is stamped 0-numSamples so endTime will be in long range.
- mUptoFrame += (unsigned long)locStamped->endTime();
-
- // //Make the end frame counter
-
- REFERENCE_TIME locFrameEnd = (((__int64)(mUptoFrame * UNITS)) / mFLACDecoder.mSampleRate);
-
- memcpy((void*)locBuffer, (const void*)locStamped->packetData(), locStamped->packetSize());
- SetSampleParams(locSample, locStamped->packetSize(), &locFrameStart, &locFrameEnd);
- HRESULT locHR = ((FLACDecodeOutputPin*)(mOutputPin))->mDataQueue->Receive(locSample);
- if (locHR != S_OK) {
-
- } else {
- //debugLog<<"Write_Callback : Delivery of sample succeeded"<<endl;
- }
- } else {
- delete locStamped;
- throw 0; //SAMPLE SIZE IS TOO SMALL TO FIT DATA
- }
-
-
- delete locStamped;
- return S_OK;
- } else {
- return S_FALSE;
- }
- } else {
- {
- CAutoLock locCodecLock(mCodecLock);
- mGotMetaData = mFLACDecoder.acceptMetadata(locPacket); //Accepts the packet.
- }
- if (mGotMetaData) {
- return S_OK;
- } else {
- return S_FALSE;
- }
- }
-
- } else {
- //debugLog<<"decodeData : Filter flushing... bad things !!!"<<endl;
- return S_FALSE;
- }
-
-*/
}
@@ -448,15 +342,7 @@
throw 0;
}
- //if (inMediaType->subtype == MEDIASUBTYPE_FLAC) {
- //
- // //Keep the format block
- //
- // ((FLACDecodeFilter*)mParentFilter)->setFLACFormatBlock((sFLACFormatBlock*)inMediaType->pbFormat); //Copies the format in the mutator
- //} else {
- // throw 0;
- //}
return CBaseInputPin::SetMediaType(inMediaType);
}
@@ -548,47 +434,7 @@
}
- //switch (mSetupState) {
- // case VSS_SEEN_NOTHING:
- // if (strncmp((char*)inCodecHeaderPacket->packetData(), "fLaC", 4) == 0) {
- // //TODO::: Possibly verify version
- // if (fish_sound_decode(mFishSound, inCodecHeaderPacket->packetData(), inCodecHeaderPacket->packetSize()) >= 0) {
- // mSetupState = VSS_SEEN_BOS;
- // return IOggDecoder::AHR_MORE_HEADERS_TO_COME;
- // }
- // }
- // return IOggDecoder::AHR_INVALID_HEADER;
- //
- //
- // case VSS_SEEN_BOS:
- // //The comment packet can't be easily identified in speex.
- // //Just ignore the second packet we see, and hope fishsound does better.
- // //if (strncmp((char*)inCodecHeaderPacket->packetData(), "\003vorbis", 7) == 0) {
- // if (fish_sound_decode(mFishSound, inCodecHeaderPacket->packetData(), inCodecHeaderPacket->packetSize()) >= 0) {
- // mSetupState = VSS_ALL_HEADERS_SEEN;
-
- // fish_sound_command (mFishSound, FISH_SOUND_GET_INFO, &(mFishInfo), sizeof (FishSoundInfo));
- // mBegun = true;
- //
- // mNumChannels = mFishInfo.channels;
- // mFrameSize = mNumChannels * SIZE_16_BITS;
- // mSampleRate = mFishInfo.samplerate;
-
- // return IOggDecoder::AHR_ALL_HEADERS_RECEIVED;
- // }
- //
- //
- // //}
- // return IOggDecoder::AHR_INVALID_HEADER;
- //
- //
- //
- // case VSS_ALL_HEADERS_SEEN:
- // case VSS_ERROR:
- // default:
- // return IOggDecoder::AHR_UNEXPECTED;
- //}
}
string FLACDecodeInputPin::getCodecShortName()
{
Modified: branches/oggdsf_new_demux/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourceFilter.cpp
===================================================================
--- branches/oggdsf_new_demux/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourceFilter.cpp 2006-01-13 05:42:22 UTC (rev 10730)
+++ branches/oggdsf_new_demux/src/lib/codecs/flac/filters/dsfNativeFLACSource/NativeFLACSourceFilter.cpp 2006-01-16 17:22:38 UTC (rev 10731)
@@ -155,35 +155,8 @@
init();
bool locResult = process_until_end_of_metadata();
- return S_OK;
- ////Initialise the file here and setup the stream
- //CAutoLock locLock(m_pLock);
- //mFileName = inFileName;
+ return (locResult ? S_OK : E_FAIL);
- //mInputFile.open(StringHelper::toNarrowStr(mFileName).c_str(), ios_base::in | ios_base::binary);
-
- //mInputFile.seekg(0, ios_base::end);
- //mFileSize = mInputFile.tellg();
- //mInputFile.seekg(0, ios_base::beg);
-
- //unsigned char locBuff[64];
- //mInputFile.read((char*)&locBuff, 64);
- //const unsigned char FLAC_CHANNEL_MASK = 14; //00001110
- //const unsigned char FLAC_BPS_START_MASK = 1; //00000001
- //const unsigned char FLAC_BPS_END_MASK = 240; //11110000
-
- //mNumChannels = (((locBuff[20]) & FLAC_CHANNEL_MASK) >> 1) + 1;
- //mSampleRate = (iBE_Math::charArrToULong(&locBuff[18])) >> 12;
- //mBitsPerSample = (((locBuff[20] & FLAC_BPS_START_MASK) << 4) | ((locBuff[21] & FLAC_BPS_END_MASK) >> 4)) + 1;
- //mTotalNumSamples = (((__int64)(locBuff[21] % 16)) << 32) + ((__int64)(iBE_Math::charArrToULong(&locBuff[22])));
-
- ////TODO::: NEed to handle the case where the number of samples is zero by making it non-seekable.
- //mInputFile.seekg(0, ios_base::beg);
-
- //init();
- //bool locResult = process_until_end_of_metadata();
-
- //return S_OK;
}
STDMETHODIMP NativeFLACSourceFilter::NonDelegatingQueryInterface(REFIID riid, void **ppv)
@@ -298,22 +271,24 @@
return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_OK;
}
::FLAC__StreamDecoderWriteStatus NativeFLACSourceFilter::write_callback(const FLAC__Frame* inFrame,const FLAC__int32 *const inBuffer[]) {
- //Do the magic !
+
+
if (! mBegun) {
- //This may not even be needed any more.
mBegun = true;
+
const int SIZE_16_BITS = 2;
+
mNumChannels = inFrame->header.channels;
mFrameSize = mNumChannels * SIZE_16_BITS;
mSampleRate = inFrame->header.sample_rate;
}
unsigned long locNumFrames = inFrame->header.blocksize;
- unsigned long locActualSize = locNumFrames * mFrameSize;
+ unsigned long locBufferSize = locNumFrames * mFrameSize;
unsigned long locTotalFrameCount = locNumFrames * mNumChannels;
//BUG::: There's a bug here. Implicitly assumes 2 channels. I think.
- unsigned char* locBuff = new unsigned char[locActualSize]; //Gives to the deliverdata method
+ unsigned char* locBuff = new unsigned char[locBufferSize]; //Gives to the deliverdata method
//It could actually be a single buffer for the class.
signed short* locShortBuffer = (signed short*)locBuff; //Don't delete this.
@@ -326,14 +301,15 @@
tempLong = inBuffer[j][i];
//FIX::: Why on earth are you dividing by 2 ? It does not make sense !
- tempInt = (signed short)(tempLong/2);
+ //tempInt = (signed short)(tempLong/2);
+ tempInt = (signed short)(tempLong);
*locShortBuffer = tempInt;
locShortBuffer++;
}
}
- mFLACSourcePin->deliverData(locBuff, locActualSize, (mUpto*UNITS) / mSampleRate, ((mUpto+locNumFrames)*UNITS) / mSampleRate);
+ mFLACSourcePin->deliverData(locBuff, locBufferSize, (mUpto*UNITS) / mSampleRate, ((mUpto+locNumFrames)*UNITS) / mSampleRate);
mUpto += locNumFrames;
return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
}
Modified: branches/oggdsf_new_demux/src/lib/codecs/flac/libs/libFLACHelper/FLACHeaderTweaker.cpp
===================================================================
--- branches/oggdsf_new_demux/src/lib/codecs/flac/libs/libFLACHelper/FLACHeaderTweaker.cpp 2006-01-13 05:42:22 UTC (rev 10730)
+++ branches/oggdsf_new_demux/src/lib/codecs/flac/libs/libFLACHelper/FLACHeaderTweaker.cpp 2006-01-16 17:22:38 UTC (rev 10731)
@@ -83,36 +83,37 @@
}
-bool FLACHeaderTweaker::createNewHeaderList() {
-
+bool FLACHeaderTweaker::createNewHeaderList()
+{
//debugLog<<"Create new header list method"<<endl;
+ //debugLog<<"Filling first pack"<<endl;
- //debugLog<<"Filling first pack"<<endl;
- unsigned char* locFirstPackBuff = new unsigned char[51];
- locFirstPackBuff[0] = '\177';
- locFirstPackBuff[1] = 'F';
- locFirstPackBuff[2] = 'L';
- locFirstPackBuff[3] = 'A';
- locFirstPackBuff[4] = 'C';
- locFirstPackBuff[5] = 1;
- locFirstPackBuff[6] = 0;
- locFirstPackBuff[7] = 0; //Num header HIGH BYTE
+
+ unsigned char* locFirstPacketBuffur = new unsigned char[51];
+ locFirstPacketBuffur[0] = '\177';
+ locFirstPacketBuffur[1] = 'F';
+ locFirstPacketBuffur[2] = 'L';
+ locFirstPacketBuffur[3] = 'A';
+ locFirstPacketBuffur[4] = 'C';
+ locFirstPacketBuffur[5] = 1;
+ locFirstPacketBuffur[6] = 0;
+ locFirstPacketBuffur[7] = 0; //Num header HIGH BYTE
//*** VERIFY ::: Is this even safe ie -2 ... are we sure this can't go negative ????
- locFirstPackBuff[8] = mOldHeaderList.size() - 2; //Num headers LOW BYTE
- locFirstPackBuff[9] = 'f';
- locFirstPackBuff[10] = 'L';
- locFirstPackBuff[11] = 'a';
- locFirstPackBuff[12] = 'C';
+ locFirstPacketBuffur[8] = mOldHeaderList.size() - 2; //Num headers LOW BYTE
+ locFirstPacketBuffur[9] = 'f';
+ locFirstPacketBuffur[10] = 'L';
+ locFirstPacketBuffur[11] = 'a';
+ locFirstPacketBuffur[12] = 'C';
//debugLog<<"Copying in packet data"<<endl;
- memcpy((void*)(locFirstPackBuff + 13), (const void*) mOldHeaderList[1]->packetData(), 38);
+ memcpy((void*)(locFirstPacketBuffur + 13), (const void*) mOldHeaderList[1]->packetData(), 38);
mNewHeaderList.empty();
mNewHeaderList.clear();
//debugLog<<"Putting first header into new list"<<endl;
- mNewHeaderList.push_back(new OggPacket(locFirstPackBuff, 51, false, false));
- locFirstPackBuff = NULL;
+ mNewHeaderList.push_back(new OggPacket(locFirstPacketBuffur, 51, false, false));
+ locFirstPacketBuffur = NULL;
bool locFoundComment = false;
int locCommentNo = -1;
Modified: branches/oggdsf_new_demux/src/lib/codecs/flac/libs/libFLACHelper/FLACPushDecoder.cpp
===================================================================
--- branches/oggdsf_new_demux/src/lib/codecs/flac/libs/libFLACHelper/FLACPushDecoder.cpp 2006-01-13 05:42:22 UTC (rev 10730)
+++ branches/oggdsf_new_demux/src/lib/codecs/flac/libs/libFLACHelper/FLACPushDecoder.cpp 2006-01-16 17:22:38 UTC (rev 10731)
@@ -121,7 +121,9 @@
//Convert 32 bit to 16 bit
//FIX::: Why on earth are you dividing by 2 ? It does not make sense !
- tempInt = (signed short)(tempLong/2);
+ //tempInt = (signed short)(tempLong/2);
+ tempInt = (signed short)(tempLong);
+
*locShortBuffer = tempInt;
locShortBuffer++;
Modified: branches/oggdsf_new_demux/src/lib/codecs/flac/libs/libFLACHelper/FLACPushDecoder.h
===================================================================
--- branches/oggdsf_new_demux/src/lib/codecs/flac/libs/libFLACHelper/FLACPushDecoder.h 2006-01-13 05:42:22 UTC (rev 10730)
+++ branches/oggdsf_new_demux/src/lib/codecs/flac/libs/libFLACHelper/FLACPushDecoder.h 2006-01-16 17:22:38 UTC (rev 10731)
@@ -3,6 +3,9 @@
#include <libOOOgg/StampedOggPacket.h>
#include <libOOOgg/OggPacket.h>
#include "FLAC++/decoder.h"
+
+//Flac Stream Format Documentation http://flac.sourceforge.net/format.html#stream
+
using namespace FLAC::Decoder;
class FLACPushDecoder
: protected Stream
@@ -16,13 +19,17 @@
void initCodec();
void flushCodec();
- //Probably shouldn't be public... but who cares for now.
+
+ unsigned long numberOfChannels() { return mNumChannels; }
+ unsigned long frameSize() { return mFrameSize; }
+ unsigned long sampleRate() { return mSampleRate; }
+private:
+ static const int SIZE_16_BITS = 2;
+
unsigned long mNumChannels;
unsigned long mFrameSize;
unsigned long mSampleRate;
- bool mBegun;
-protected:
- static const int SIZE_16_BITS = 2;
+
//Virtuals frmo FLAC decoder
virtual ::FLAC__StreamDecoderReadStatus read_callback(FLAC__byte buffer[], unsigned *bytes);
virtual ::FLAC__StreamDecoderWriteStatus write_callback(const ::FLAC__Frame *frame, const FLAC__int32 * const buffer[]);
@@ -33,5 +40,6 @@
StampedOggPacket* mOutPacket;
bool mGotMetaData;
+ bool mBegun;
};
Modified: branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/HTTPFileSource.cpp
===================================================================
--- branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/HTTPFileSource.cpp 2006-01-13 05:42:22 UTC (rev 10730)
+++ branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/HTTPFileSource.cpp 2006-01-16 17:22:38 UTC (rev 10731)
@@ -31,7 +31,7 @@
#include "stdafx.h"
#include "httpfilesource.h"
-//#define OGGCODECS_LOGGING
+#define OGGCODECS_LOGGING
HTTPFileSource::HTTPFileSource(void)
: mBufferLock(NULL)
, mIsChunked(false)
@@ -69,7 +69,7 @@
//This method is a bit rough and ready !!
ASSERT(inNumBytes > 2);
rawDump.write((char*)inBuff, inNumBytes);
- debugLog<<"UnChunk"<<endl;
+ //debugLog<<"UnChunk"<<endl;
unsigned long locNumBytesLeft = inNumBytes;
memcpy((void*)(mInterBuff + mNumLeftovers), (const void*)inBuff, inNumBytes);
@@ -321,6 +321,7 @@
Reply(S_OK);
DataProcessLoop();
break;
+ //return S_OK;
}
@@ -452,11 +453,13 @@
//debugLog<<"read : Can't read is error or eof"<<endl;
return 0;
} else {
- debugLog<<"Reading from buffer"<<endl;
+ //debugLog<<"Reading from buffer"<<endl;
unsigned long locNumRead = mFileCache.read((unsigned char*)outBuffer, inNumBytes);
- //debugLog<<locNumRead<<" bytes read from buffer"<<endl;
+ if (locNumRead > 0) {
+ debugLog<<locNumRead<<" bytes read from buffer"<<endl;
+ }
return locNumRead;
}
} //END CRITICAL SECTION
Modified: branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/OggStreamMapper.cpp
===================================================================
--- branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/OggStreamMapper.cpp 2006-01-13 05:42:22 UTC (rev 10730)
+++ branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/OggStreamMapper.cpp 2006-01-16 17:22:38 UTC (rev 10731)
@@ -65,6 +65,7 @@
}
}
+ break;
case STRMAP_FINISHED:
return false;
case STRMAP_ERROR:
Modified: branches/oggdsf_new_demux/src/lib/player/libDSPlayDotNET/DSPlay.cpp
===================================================================
--- branches/oggdsf_new_demux/src/lib/player/libDSPlayDotNET/DSPlay.cpp 2006-01-13 05:42:22 UTC (rev 10730)
+++ branches/oggdsf_new_demux/src/lib/player/libDSPlayDotNET/DSPlay.cpp 2006-01-16 17:22:38 UTC (rev 10731)
@@ -427,35 +427,7 @@
}
- ////If it's an annodex file, then put the VMR 9 in the graph.
- //if (isFileAnnodex(inFileName)) {
- // *debugLog<<"Is annodex"<<endl;
- // IBaseFilter* locVMR9 = NULL;
- // HRESULT locHR2 = S_OK;
- // locHR2 = mGraphBuilder->FindFilterByName(L"Video Mixing Renderer 9", &locVMR9);
- // if (locVMR9 == NULL) {
- // *debugLog<<"Not in graph... making it !"<<endl;
- // locHR2= CoCreateInstance(CLSID_VideoMixingRenderer9, NULL, CLSCTX_INPROC, IID_IBaseFilter, (void **)&locVMR9);
- // if (locHR2 == S_OK) {
- // locHR2 = mGraphBuilder->AddFilter(locVMR9, L"Video Mixing Renderer 9");
- // numRef =
- // locVMR9->Release();
- // *debugLog<<"VMR9 ref count = "<<numRef<<endl;
- //
- // }
- // } else {
- // numRef =
- // locVMR9->Release();
-
- // *debugLog<<"VMR9 ref count = "<<numRef<<endl;
- // }
-
-
- //
-
- //}
-
mVideoRenderType = VR_NONE;
//Attempt to use VMR9
IBaseFilter* locVMR9 = NULL;
More information about the commits
mailing list