Интерфейсы внешних устройств для цифровых видеокамер DV
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Фильтр видеозахвата WDM предоставляет три интерфейса для управления видеокамерой.
Метка | Значение |
---|---|
IAMExtDevice | Базовый интерфейс для управления внешними устройствами. |
IAMExtTransport | Управляет функциями VCR. |
IAMTimecodeReader | Считывает код времени с устройства. |
Примечание
Чтобы использовать эти интерфейсы с драйвером видеокамеры MSDV, включите файл заголовка XPrtDefs.h в проект.
После выбора устройства захвата и создания экземпляра фильтра захвата запросите фильтр для этих интерфейсов. В следующем примере объявляется пользовательская структура, содержащая указатели интерфейса, а также логические значения, определяющие доступность каждого интерфейса:
struct _MyDevCap
{
IAMExtDevice *pDevice;
IAMExtTransport *pTransport;
IAMTimecodeReader *pTimecode;
BOOL bHasDevice;
BOOL bHasTransport;
BOOL bHasTimecode;
} MyDevCap;
HRESULT hr;
IBaseFilter *pDVCam; // Pointer to the capture filter.
// Create an instance of the capture filter (not shown).
hr = pDVCam->QueryInterface(IID_IAMExtDevice, (void **)&MyDevCap.pDevice);
MyDevCap.bHasDevice = (SUCCEEDED(hr));
hr = pDVCam->QueryInterface(IID_IAMExtTransport, (void **)&MyDevCap.pTransport);
MyDevCap.bHasTransport = (SUCCEEDED(hr));
hr = pDVCam->QueryInterface(IID_IAMTimecodeReader, (void **)&MyDevCap.pTimecode);
MyDevCap.bHasTimecode = (SUCCEEDED(hr));
Связанные темы