Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Функция, связанная с этой страницей, DirectShow, является устаревшей функцией. Он был заменён MediaPlayer, IMFMediaEngineи аудио- и видеозахватом в «Media Foundation». Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует для новых программ использовать MediaPlayer, IMFMediaEngine и захват аудио и видео в Media Foundation, когда это возможно, вместо DirectShow. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
Если ваш фильтр имеет специальный распределитель, использующий ресурсы фильтра, метод IMemAllocator::GetBuffer должен содержать блокировку потоковой передачи, как и другие методы потоковой передачи:
HRESULT CMyInputAllocator::GetBuffer(
IMediaSample **ppBuffer,
REFERENCE_TIME *pStartTime,
REFERENCE_TIME *pEndTime,
DWORD dwFlags)
{
CAutoLock cObjectLock(&m_csReceive);
/* Use resources. */
return CMemAllocator::GetBuffer(ppBuffer, pStartTime, pEndTime, dwFlags);
}
Связанные разделы