Здравствуйте lavrov_alex, Вы писали:
LA>Так как мне не зависить от этого и самому указывать размер буфера?
А как же основы демократии? А если другие фильтры не умеют работать с такими
большими/маленькими буферами? Не, ты кончно можешь
предложить свой размер
буффера через
DecideBufferSize, но будь готов к тому, что тебя никто не поддержит
HRESULT CMySuperPupperPhylter::DecideBufferSize(IMemAllocator *pAlloc, ALLOCATOR_PROPERTIES *pProperties)
{
CAutoLock cAutoLock(m_pFilter->pStateLock());
ASSERT(pAlloc);
ASSERT(pProperties);
HRESULT hr;
pProperties->cbBuffer = 1024*1024; // Мег!
pProperties->cBuffers = 2; // Два буффера по мегу
ALLOCATOR_PROPERTIES Actual;
hr = pAlloc->SetProperties(pProperties,&Actual);
if (FAILED(hr))
return hr; // Что-то сломалось
if (Actual.cbBuffer < pProperties->cbBuffer)
return E_FAIL; // Не согласны. Вот ламеры!
return S_OK;
}