Compartilhar via


Comportamento do Relógio de Demux

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

No modo push, o MpEG-2 Demultiplexer (demux) expõe a interface IReferenceClock . Ele atua como uma fonte dinâmica, portanto, ele será escolhido como o relógio de referência de grafo por padrão; consulte Fontes dinâmicas para obter mais informações.

  • Para fluxos de transporte, o demux sincroniza seu relógio com o fluxo PCR que corresponde ao fluxo de áudio ou vídeo mapeado mais recentemente pelo aplicativo. Internamente, o demux rastreia as tabelas PAT e PMT. Quando o aplicativo mapeia um PID de fluxo elementar para um pino de saída, o demux pesquisa o fluxo pcr para esse PID e usa esse fluxo PCR. (Atualmente, não há como o aplicativo especificar o PID do PCR diretamente.)
  • Para fluxos de programas, o demux sincroniza seu relógio com o fluxo de SCR.

A sincronização do relógio de filtro com o fluxo PCR ou SCR impede o estouro de dados ou o subfluxo, o que pode resultar se o relógio do grafo variou do relógio de fluxo. O demux também converte valores de PES PTS em tempos de referência do DirectShow e usa esses valores para carimbar os exemplos de mídia. Os carimbos de data/hora se aplicam ao próximo limite de quadro; não há nenhuma garantia de que o limite de quadro será alinhado com o início do exemplo de mídia.

O demux garante que os carimbos de data/hora aumentem monotonicamente. Isso significa, por exemplo, que se um fluxo de transporte incluir um segmento como um comercial que foi criado com um relógio diferente do programa main, o demux ajustará os carimbos de data/hora da apresentação para ocultar a descontinuidade de tempo dos filtros downstream.

Usando o Demultiplexer MPEG-2