Compartir a través de


Interfaz IAMTimecodeReader (strmif.h)

[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.

La interfaz IAMTimecodeReader lee el código de tiempo SMPTE o MIDI de un dispositivo externo. Los controladores MSDV y MSTape admiten esta interfaz para leer el código de tiempo desde una videocámara DV o MPEG-2 externa.

Herencia

La interfaz IAMTimecodeReader hereda de la interfaz IUnknown . IAMTimecodeReader también tiene estos tipos de miembros:

Métodos

La interfaz IAMTimecodeReader tiene estos métodos.

 
IAMTimecodeReader::get_VITCLine

El método get_VITCLine recupera la línea de intervalo vertical que el lector de código de tiempo usa para leer el código de tiempo.
IAMTimecodeReader::GetTCRMode

El método GetTCRMode recupera las propiedades del lector de código de tiempo.
IAMTimecodeReader::GetTimecode

El método GetTimecode recupera los valores de marca, userbit y timecode más recientes disponibles en la secuencia.
IAMTimecodeReader::p ut_VITCLine

El método put_VITCLine especifica la línea de intervalo vertical que el lector de código de tiempo usará para leer el código de tiempo.
IAMTimecodeReader::SetTCRMode

El método SetTCRMode establece las propiedades del lector de código de tiempo.

Comentarios

En el caso de los dispositivos windows Driver Model (WDM), el filtro de captura de vídeo WDM expone automáticamente esta interfaz si el controlador WDM admite el conjunto de propiedades PROPSETID_TIMECODE_READER. Para obtener más información, consulte la documentación del Kit de controladores de Windows (WDK).

El código de tiempo de SMPTE es un sistema de direccionamiento de fotogramas que identifica orígenes de audio y vídeo, hace posible la sincronización automática de pistas y proporciona un contenedor para datos adicionales relacionados con el material de origen. El propósito principal del código de tiempo de SMPTE es proporcionar una dirección legible por la máquina para el vídeo y el audio. Se muestra en formato hh:mm:ss:ff (horas, minutos, segundos, fotogramas) y se define exhaustivamente en ANSI/SMPTE 12-1986.

Las aplicaciones suelen ahorrar código de tiempo de una de estas dos maneras. Se escribe en el archivo de captura como una secuencia adicional o como una tabla de discontinuidad almacenada en el índice de archivo AVI extendido. Normalmente se usa para desencadenar la captura o reproducción y crear listas de decisiones de edición que describen cómo se organiza el material de origen en un producto terminado.

Si piensa capturar el código de tiempo, tótelo como una secuencia independiente que tenga su propio tipo de medio. Puede consumirlo un filtro de multiplexador de escritura de archivos adecuado. Sin embargo, a veces hay errores al leer el código de tiempo fuera de la cinta debido a las listas desplegables y otros problemas de cinta mecánica. En tales casos, el filtro de origen del código de tiempo simplemente debe quitar muestras y marcar el siguiente válido con la propiedad discontinuidad.

Si piensa usar códigos de tiempo para desencadenar la captura o reproducción desde una cinta de vídeo codificada (o "seccionada"), la secuencia de eventos es la siguiente:

  1. Cree un grafo de captura, abra un archivo AVI de destino y asigne previamente el espacio en disco si es necesario. Si el material capturado se anexará a un archivo AVI existente, busque al final del archivo antes de escribirlo. El gráfico de captura está en pausa en este momento.
  2. Busque el VCR en el punto de inicio de la captura y anote el código de tiempo. Puede escribir este valor manualmente en el programa o la aplicación puede leerlo automáticamente. La lectura automática requiere que el grafo se esté ejecutando, pero las interfaces de control de flujo en los pins de entrada del multiplexador de archivos descartan las muestras entrantes, lo que valida eficazmente la captura.
  3. Cuele la VCR para preinscribir la posición, normalmente cinco segundos antes del punto de destino.
  4. Inicie el VCR y el gráfico. Cuando se alcanza el punto de desencadenador (o el punto de desencadenador menos la inscripción previa del escritor de archivos), las interfaces de control de secuencia liberan el multiplexador de archivos y comienzan a transmitir ejemplos multimedia al escritor de archivos.
  5. Puede detener el proceso de captura manualmente o estableciendo una propiedad duration en la interfaz de control de secuencia.
Debe considerar el código de tiempo discontinuo, tanto durante la inscripción previa como durante el proceso de captura; es razonable exigir que el código de tiempo sea continuo y monotonicalmente creciente a lo largo del punto de inicio de la inscripción previa y captura. Esto evita un cálculo potencialmente ambiguo de los tiempos de secuencia relativos por el método IMediaSeeking::ConvertTimeFormat . Además, el código de tiempo no debe ser la única señal de acceso para la captura desencadenada. Los datos con marca de tiempo almacenados en el intervalo de en blanco vertical, como interdifusión o datos con subtítulos (XDS), se pueden usar para iniciar el streaming de datos de vídeo y audio al disco.

Requisitos de hardware

Consulte la interfaz IAMExtTransport para conocer los requisitos de hardware.

Filtrar desarrolladores

Implemente esta interfaz en un filtro de dispositivo externo cuando desee especificar cómo un dispositivo externo debe leer información de código de tiempo SMPTE/MIDI. Exponga la interfaz IMediaSeeking en el filtro para que las aplicaciones puedan convertir el código de tiempo a la hora de referencia mediante el método IMediaSeeking::ConvertTimeFormat .

El dispositivo externo debe poder leer el código de tiempo y enviarlo al equipo a través de su interfaz de control. Si este no es el caso, debe tener una tarjeta de lector de código de tiempo en el equipo, o puede escribir un descodificador de software que convierta VITC (código de tiempo de intervalo vertical) en fotogramas de vídeo capturados o LTC (código de tiempo lineal) capturado como una señal de audio en ejemplos de código de tiempo directShow.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado strmif.h (incluya Dshow.h)

Consulte también

Interfaces