Поделиться через


Драйвер MSDV

[Функция, связанная с этой страницей, DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngineи аудио и видеозахват в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код MediaPlayer, IMFMediaEngine и аудио-видеозахват в Media Foundation вместо DirectShowпо возможности. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]

MSDV — это драйвер модели драйвера Microsoft Windows (WDM) для камкордеров DV. Драйвер отображается как фильтр DirectShow при подключении устройства. Он перечисляется в двух категориях фильтров:

  • CLSID_VideoInputDeviceCategory ("Источники записи видео")
  • AM_KSCATEGORY_RENDER ("Устройства потоковой отрисовки WDM")

Понятное имя фильтра — Microsoft DV Camera and VCRили локализованный эквивалент. На некоторых устройствах свойство описания содержит описание конкретной модели, которую можно использовать вместо универсального понятного имени. Дополнительные сведения см. в разделе Выборустройства записи.

MSDV имеет два выходных закрепления. Один пин-код предоставляет кадры DV, содержащие перекрестиные звуковые и видеоданные. Другой пин-код предоставляет только видеокадры без звука. MSDV не может одновременно передаваться из обоих закреплений, поэтому одновременно можно подключить только один выходной пин-код. Дополнительные сведения о захвате видео с устройства DV см. в разделе Запись DV в файл.

записи данных dv с устройства

Большинство камкордеров DV имеют подсоединитель видеозаписи (VTR), который может передавать данные с ленты на компьютер. Для приложения запись из ленты работает так же, как запись видео в реальном времени. Единственное различие заключается в том, что приложение должно контролировать внешний ленточный транспорт — запускать и останавливать ленту, перемотку и т. д. Для этого MSDV предоставляет интерфейсы IAMExtDevice, IAMExtTransportи интерфейсы IAMTimecodeReader. Дополнительные сведения об управлении VTR см. в управленииdv Camcorder.

Вы также можете передать DV с компьютера на камкордер. Затем видео можно просмотреть на экране подключения камкордера или записать на ленту. Для поддержки этой функции MSDV имеет входной пин-код, который может получать чередуемый поток DV. При подключении входных контактов MSDV выступает в качестве фильтра отрисовщика вместо фильтра записи. MSDV не поддерживает поиск в этом режиме. Дополнительные сведения о отправке DV на устройство см. в разделе Передача DV из файла в ленту.

передачи данных dv на устройство

Обратите внимание, что входные и выходные контакты не могут быть подключены одновременно, так как устройство не может выполнять потоковую передачу в обоих направлениях одновременно.

Во многих камкордерах переключение между режимом VTR и режимом камеры приводит к отключению устройства. Таким образом, DirectShow может потерять устройство, когда пользователь переключает режимы. Сведения о событиях удаления устройств см. в уведомления об удалении устройств.

Замечания

Сведения о том, какие форматы DV поддерживаются драйвером MSDV, см. в разделе подтипов видео DV.

Некоторые советы по созданию графов фильтров с помощью MSDV:

  • Не удается использовать IGraphBuilder::Render для отображения выходных закреплений в MSDV. (Диспетчер графов фильтра пытается подключить выходной пин-код к входному пину MSDV, который завершается ошибкой.) Вместо этого используйте IGraphBuilder::Connect или ICaptureGraphBuilder2::RenderStream.

  • Если граф фильтра содержит MSDV, MSDV должен предоставить эталонные часы для графа. По состоянию на DirectX 8.0 диспетчер графов фильтров автоматически выбирает MSDV в качестве эталонных часов. В более ранних версиях следует вызвать метод IMediaFilter::SetSyncSource в диспетчере графов фильтра. Дополнительные сведения о часах см. в разделе Time and Clocks in DirectShow.

  • В зависимости от устройства некоторые методы в IAMExtDevice, IAMExtTransportи IAMTimeCodeReader могут возвращать коды ошибок Windows вместо значений HRESULT. Возможные коды ошибок включают следующие коды.

    Код ошибки Описание
    ERROR_TIMEOUT Время ожидания команды внешнего устройства.
    ERROR_REQ_NOT_ACCEP Устройство не принимает эту команду внешнего устройства.
    ERROR_NOT_SUPPORTED Устройство не поддерживает эту команду внешнего устройства.
    ERROR_REQUEST_ABORTED Команда внешнего устройства была прервана. Возможно, устройство было удалено или произошла сброс шины.

     

Сведения об устройстве

В Windows Millennium Edition и Windows XP моникер устройства DV-фильтра поддерживает свойство Description в дополнение к свойству FriendlyName. Это свойство возвращает описание устройства, взятого из INF-файла, который обычно содержит фирменное имя устройства. Однако это свойство не поддерживается для всех моделей устройств.

Дополнительные сведения об моникерах устройств см. в с помощьюперечисления системных устройств.

Время часов

Драйвер MSDV использует 1394 шины часы, содержащиеся в пакетах данных 1394 для получения часов. В нем используются эти значения для метки времени для примеров мультимедиа DV. Так как эти исходные часы не являются часами компьютерной системы, время в конечном итоге будет дрейфовать с компьютерных системных часов. Как отмечалось выше, по умолчанию диспетчер графов фильтров выбирает MSDV в качестве эталонных часов графа.

Интерфейс IAMDroppedFrames сообщает текущей мере драйвера удаленных кадров; это значение может быть не полностью синхронизировано с фактическим числом удаленных кадров в определенное время. Если кадры удаляются, это означает, что система не сбалансирована (производство данных превышает потребление данных). Например, жесткий диск пользователя может быть недостаточно быстрым для поддержки скорости записи DV.

фильтры DirectShow

цифровое видео в DirectShow