Compartilhar via


Interface IAMTimecodeReader (strmif.h)

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

A interface IAMTimecodeReader lê o código de tempo SMPTE ou MIDI de um dispositivo externo. Os drivers MSDV e MSTape dão suporte a essa interface para ler o código de tempo de um DV externo ou uma câmera MPEG-2.

Herança

A interface IAMTimecodeReader herda da interface IUnknown . IAMTimecodeReader também tem estes tipos de membros:

Métodos

A interface IAMTimecodeReader tem esses métodos.

 
IAMTimecodeReader::get_VITCLine

O método get_VITCLine recupera a linha de intervalo vertical que o leitor de código de tempo está usando para ler o código de tempo.
IAMTimecodeReader::GetTCRMode

O método GetTCRMode recupera as propriedades do leitor de código de tempo.
IAMTimecodeReader::GetTimecode

O método GetTimecode recupera os valores de código de tempo, userbit e sinalizador mais recentes disponíveis no fluxo.
IAMTimecodeReader::p ut_VITCLine

O método put_VITCLine especifica a linha de intervalo vertical que o leitor de código de tempo usará para ler o código de tempo.
IAMTimecodeReader::SetTCRMode

O método SetTCRMode define as propriedades do leitor de código de tempo.

Comentários

Para dispositivos WDM (Modelo de Driver do Windows), o Filtro de Captura de Vídeo do WDM expõe automaticamente essa interface se o driver WDM der suporte ao conjunto de propriedades PROPSETID_TIMECODE_READER. Para obter mais informações, consulte a documentação do WDK (Kit de Driver do Windows ).

O código de tempo SMPTE é um sistema de endereçamento de quadros que identifica fontes de áudio e vídeo, possibilita a sincronização automática de rastreamento e fornece um contêiner para dados adicionais relacionados ao material de origem. A finalidade main do código de tempo SMPTE é fornecer um endereço legível por computador para vídeo e áudio. Ele é exibido no formato hh:mm:ss:ff (horas, minutos, segundos, quadros) e é completamente definido em ANSI/SMPTE 12-1986.

Os aplicativos geralmente economizam o código de tempo de uma das duas maneiras. Ele é gravado no arquivo de captura como um fluxo adicional ou como uma tabela de descontinuidade armazenada no índice de arquivo AVI estendido. Normalmente, ele é usado para disparar a captura ou a reprodução e para criar listas de decisão de edição que descrevem como o material de origem é organizado em um produto concluído.

Se você pretende capturar o código de tempo, trate-o como um fluxo separado que tenha seu próprio tipo de mídia. Ele pode ser consumido por um filtro multiplexador de gravação de arquivo apropriado. No entanto, às vezes, há erros ao ler o código de tempo da fita devido a listas suspensas e outros problemas de fita mecânica. Nesses casos, o filtro de origem do código-hora deve simplesmente remover amostras e marcar a próxima válida com a propriedade de descontinuidade.

Se você pretende usar os códigos de tempo para disparar a captura ou a reprodução de uma fita de vídeo com código de tempo (ou "distribuído"), a sequência de eventos será a seguinte:

  1. Crie um grafo de captura, abra um arquivo AVI de destino e pré-alocar espaço em disco, se necessário. Se o material capturado for acrescentado a um arquivo AVI existente, procure até o final do arquivo antes de gravar. O grafo de captura está pausado neste ponto.
  2. Pesquise o VCR até o ponto inicial da captura e anote o código de tempo. Você pode inserir esse valor manualmente em seu programa ou o aplicativo pode lê-lo automaticamente. A leitura automática requer que o grafo esteja em execução, mas as interfaces de controle de fluxo nos pinos de entrada do multiplexador de arquivo estão descartando exemplos de entrada, gating efetivamente a captura.
  3. Indica o VCR para pré-registrar a posição, geralmente cinco segundos antes do ponto de destino.
  4. Inicie o VCR e o grafo. Quando o ponto de gatilho é atingido (ou o ponto de gatilho menos o pré-registro do gravador de arquivos), as interfaces de controle de fluxo liberam o multiplexador de arquivos e começam a transmitir amostras de mídia para o gravador de arquivos.
  5. Você pode interromper o processo de captura manualmente ou definindo uma propriedade de duração na interface de controle de fluxo.
Você deve considerar o código de tempo descontinuado, durante o pré-registro e durante o processo de captura; é razoável exigir que o código de tempo seja contínuo e monotonicamente crescente em todo o ponto inicial de pré-registro e captura. Isso impede um cálculo potencialmente ambíguo de tempos de fluxo relativos pelo método IMediaSeeking::ConvertTimeFormat . Além disso, o código de tempo não precisa ser o único sinal de gating para captura disparada. Todos os dados com carimbo de data/hora armazenados no intervalo de espaço em branco vertical, como Intercast ou XDS (dados com legenda oculta), podem ser usados para iniciar o streaming de dados de vídeo e áudio em disco.

Requisitos de hardware

Consulte a interface IAMExtTransport para obter requisitos de hardware.

Filtrar Desenvolvedores

Implemente essa interface em um filtro de dispositivo externo quando quiser especificar como um dispositivo externo deve ler informações de código de tempo SMPTE/MIDI. Exponha a interface IMediaSeeking no filtro para que os aplicativos possam converter o código de tempo em hora de referência, usando o método IMediaSeeking::ConvertTimeFormat .

O dispositivo externo deve ser capaz de ler o código de tempo e enviá-lo para o computador por meio de sua interface de controle. Se esse não for o caso, você deve ter um leitor de código de tempo cartão em seu computador ou pode escrever um decodificador de software que converte VITC (Código de Tempo de Intervalo Vertical) em quadros de vídeo capturados ou LTC (Código de Tempo Linear) capturado como um sinal de áudio em exemplos de código de tempo do DirectShow.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho strmif.h (inclua Dshow.h)

Confira também

Interfaces