Condividi tramite


Modalità di Run-Time MPEG-2 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.

MPEG-2 Demultiplexer ("demux") può funzionare in modalità push o pull. In modalità push, i dati provengono da un'origine live, ad esempio una trasmissione di rete. In modalità pull, i dati provengono da un file locale.

  • La modalità pull è disponibile in Windows XP e versioni successive solo per i flussi di programma. Nelle piattaforme di livello inferiore usare il filtro splitter MPEG-2 .
  • La modalità push è disponibile in tutte le piattaforme, sia per i flussi di programma che per i flussi di trasporto.

Il demux supporta quindi tre modalità possibili: programmi in modalità pull, flussi di programma in modalità push e flussi di trasporto in modalità push. Il demux determina la modalità da usare in fase di esecuzione. La modalità viene determinata quando il pin di input si connette o quando viene configurato il primo pin di output, a ogni condizione che si verifica per prima:

  • Quando il pin di input si connette: in Windows XP e versioni successive, il demux esegue una query sul filtro upstream per l'interfaccia IAsyncReader ; se il filtro upstream espone tale interfaccia, il demux si configura per i flussi di programma in modalità pull. In caso contrario, demux usa la modalità push e il tipo di supporto determina il tipo di flusso (flusso di programma o flusso di trasporto). Vedere MPEG-2 Demultiplexer Media Types (Tipi di supporti demultiplexer ) per un elenco di tipi di input.
  • Quando viene configurato il primo pin di output: se si crea un pin di output ed esegue una query per IMPEG2PIDMap, il demux si configura per i flussi di trasporto in modalità push. Se si esegue una query sul pin per IMPEG2StreamIdMap, il demux si configura per i flussi di programma, anche in modalità push. Tutte le query successive per l'altra interfaccia hanno esito negativo perché il demux non può funzionare in due modalità contemporaneamente.

Una volta configurato il demux per una particolare modalità, rimane in tale modalità. Per usare una modalità diversa, è necessario creare una nuova istanza del demux.

Uso di MPEG-2 Demultiplexer