Partilhar via


Demux Comportamento do relógio

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEnginee Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no 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 o interface IReferenceClock. Ele atua como uma fonte ao vivo, por isso será escolhido como o relógio de referência do gráfico por padrão; consulte Fontes em tempo real 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 mais recentemente mapeado 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 procura o fluxo de PCR para esse PID e usa esse fluxo de PCR. (Atualmente, não há como o aplicativo especificar o PID PCR diretamente.)
  • Para fluxos de programas, o demux sincroniza seu relógio com o fluxo SCR.

A sincronização do relógio do filtro com o fluxo PCR ou SCR evita o estouro ou subfluxo de dados, o que poderia resultar se o relógio do gráfico variasse do relógio do fluxo. O demux também traduz valores PES PTS em tempos de referência do DirectShow e usa esses valores para carimbo de data/hora das amostras de mídia. Os carimbos de data/hora aplicam-se ao próximo limite de quadro; não há garantia de que o limite do quadro será alinhado com o início da amostra de mídia.

O demux garante que os carimbos de tempo aumentam 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 principal, o demux ajustará os carimbos de tempo de apresentação para ocultar a descontinuidade de tempo dos filtros a jusante.

Usando o MPEG-2 Demultiplexer