Controlador MSDV

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

MSDV es el controlador microsoft Windows Driver Model (WDM) para videocámaras DV. El controlador aparece como filtro DirectShow cuando el dispositivo está conectado. Se enumera en dos categorías de filtro:

  • CLSID_VideoInputDeviceCategory ("Orígenes de captura de vídeo")
  • AM_KSCATEGORY_RENDER ("Dispositivos de representación de streaming de WDM")

El nombre descriptivo del filtro es Microsoft DV Camera and VCRo un equivalente localizado. En algunos dispositivos, la propiedad Description contiene una descripción del modelo específico, que se puede usar en lugar del nombre descriptivo genérico. Para obtener más información, vea Seleccionar un dispositivo de captura.

MSDV tiene dos patillas de salida. Un pin ofrece fotogramas DV que contienen datos de audio y vídeo intercalados. El otro pin ofrece fotogramas de solo vídeo sin audio. MSDV no puede transmitir desde ambas patillas a la vez, por lo que solo se puede conectar un pin de salida a la vez. Para obtener más información sobre cómo capturar vídeo desde un dispositivo DV, consulta Capturar DV a archivo.

capturar datos dv desde el dispositivo

La mayoría de las videocámaras DV tienen una subunidad de grabadora de cinta de vídeo (VTR), que puede transmitir datos de cinta a la computadora. Para la aplicación, la captura de la cinta funciona igual que la captura de vídeo en directo. La única diferencia es que la aplicación debe controlar el transporte de cinta externa: inicie y detenga la cinta, rebobine, etc. Para ello, MSDV expone las interfaces IAMExtDevice, IAMExtTransport e IAMTimecodeReader . Para obtener más información sobre cómo controlar un VTR, consulta Controlar una videocámara DV.

También puede transmitir DV desde el ordenador a la videocámara. A continuación, el vídeo se puede ver en la pantalla incorporada de la videocámara o grabar en cinta. Para admitir esta funcionalidad, MSDV tiene un pin de entrada que puede recibir una secuencia DV intercalada. Cuando el pin de entrada está conectado, MSDV actúa como filtro de representador en lugar de como filtro de captura. MSDV no admite la búsqueda en este modo. Para obtener más información sobre el envío de DV al dispositivo, consulta Transmitir DV de archivo a cinta.

transmitir datos dv al dispositivo

Tenga en cuenta que las patillas de entrada y salida no se pueden conectar al mismo tiempo, ya que el dispositivo no puede transmitir en ambas direcciones al mismo tiempo.

En muchas videocámaras, el cambio entre el modo VTR y el modo de cámara hace que el dispositivo se apague. Por lo tanto, DirectShow puede perder el dispositivo cuando el usuario cambia de modo. Para obtener información sobre los eventos de eliminación de dispositivos, consulte Notificación de eliminación de dispositivos.

Observaciones

Para obtener información sobre qué formatos DV son compatibles con el controlador MSDV, consulte Dv Video Subtypes.

Algunas sugerencias para crear gráficos de filtros con MSDV:

  • No se puede usar IGraphBuilder::Render para representar un pin de salida en MSDV. (El Administrador de gráficos de filtros intenta conectar el pin de salida al pin de entrada de MSDV, que produce un error). En su lugar, use IGraphBuilder::Connect o ICaptureGraphBuilder2::RenderStream.

  • Cuando un gráfico de filtro contiene MSDV, MSDV debe proporcionar el reloj de referencia para el gráfico. A partir de DirectX 8.0, el Administrador de gráficos de filtros elegirá automáticamente MSDV como reloj de referencia. Con versiones anteriores, debe llamar al método IMediaFilter::SetSyncSource en el Administrador de gráficos de filtros. Para obtener más información sobre los relojes, vea Time and Clocks in DirectShow.

  • Según el dispositivo, algunos métodos de IAMExtDevice, IAMExtTransport e IAMTimeCodeReader podrían devolver códigos de error de Windows en lugar de valores HRESULT . Entre los posibles códigos de error se incluyen los siguientes.

    Código de error Descripción
    ERROR_TIMEOUT Se ha agotado el tiempo de espera de un comando de dispositivo externo.
    ERROR_REQ_NOT_ACCEP El dispositivo no aceptó este comando de dispositivo externo.
    ERROR_NOT_SUPPORTED El dispositivo no admite este comando de dispositivo externo.
    ERROR_REQUEST_ABORTED Se anuló un comando de dispositivo externo. Posiblemente se quitó el dispositivo o se produjo un restablecimiento de bus.

     

Información del dispositivo

En Windows Millennium Edition y Windows XP, el moniker de dispositivo del filtro DV admite una propiedad Description además de la propiedad FriendlyName . Esta propiedad devuelve una descripción del dispositivo, tomada del archivo INF, que normalmente contiene el nombre de marca del dispositivo. Sin embargo, esta propiedad no se admite para todos los modelos de dispositivo.

Para obtener más información sobre los monikers de dispositivos, consulte Uso del enumerador de dispositivos del sistema.

Horas del reloj

El controlador MSDV usa el reloj de bus 1394 que se encuentra en los paquetes de datos de 1394 para derivar el reloj. Usa estos valores para marcar el tiempo de las muestras de medios DV. Dado que este reloj de origen no es el reloj del sistema informático, las horas se desviarán finalmente del reloj del sistema informático. Como se indicó anteriormente, de forma predeterminada, el Administrador de gráficos de filtros seleccionará MSDV como reloj de referencia del grafo.

La interfaz IAMDroppedFrames informa de la medida actual del controlador de fotogramas quitados; Este valor puede no estar perfectamente sincronizado con el número real de fotogramas quitados en un momento dado. Si se quitan fotogramas, indica que el sistema no está equilibrado (la producción de datos supera el consumo de datos). Por ejemplo, es posible que el disco duro del usuario no sea lo suficientemente rápido como para admitir las velocidades de captura dv.

Filtros directShow

Vídeo digital en DirectShow