Condividi tramite


Comportamento dell'orologio Demux

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

In modalità push, MPEG-2 Demultiplexer (demux) espone l'interfaccia IReferenceClock . Funge da origine dinamica, quindi verrà scelto come orologio di riferimento del grafico per impostazione predefinita; per altre informazioni, vedere Origini live .

  • Per i flussi di trasporto, il demux sincronizza l'orologio con il flusso PCR che corrisponde al flusso audio o video di recente mappato dall'applicazione. Internamente, il demux tiene traccia delle tabelle PAT e PMT. Quando l'applicazione esegue il mapping di un PID di flusso elementare a un pin di output, il demux cerca il flusso PCR per tale PID e usa tale flusso PCR. Attualmente, non esiste un modo per l'applicazione di specificare direttamente il PID PCR.
  • Per i flussi di programma, il demux sincronizza l'orologio con il flusso SCR.

La sincronizzazione dell'orologio del filtro con il flusso PCR o SCR impedisce l'overflow o l'underflow dei dati, il che potrebbe determinare se l'orologio del grafo è diverso dall'orologio del flusso. Il demux converte anche i valori DI PES PTS in orari di riferimento DirectShow e usa questi valori per impostare il timestamp degli esempi multimediali. I timestamp si applicano al limite di frame successivo; non esiste alcuna garanzia che il limite del frame sia allineato all'inizio dell'esempio multimediale.

Il demux garantisce che i timestamp aumentino in modo monotonico. Ciò significa, ad esempio, che se un flusso di trasporto include un segmento, ad esempio un commerciale creato con un orologio diverso dal programma principale, il demux regola i timestamp della presentazione per nascondere la discontinuità temporale dai filtri downstream.

Uso di MPEG-2 Demultiplexer