Compartilhar via


Modos de Run-Time de Demux MPEG-2

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

O MpEG-2 Demultiplexer ("demux") pode operar no modo de push ou no modo de pull. No modo push, os dados vêm de uma fonte ao vivo, como uma transmissão de rede. No modo de pull, os dados são provenientes de um arquivo local.

  • O modo de pull está disponível no Windows XP e posterior, somente para fluxos de programas. Em plataformas de nível inferior, use o filtro Divisor MPEG-2 .
  • O modo push está disponível em todas as plataformas, tanto para fluxos de programas quanto para fluxos de transporte.

Portanto, o demux dá suporte a três modos possíveis: Fluxos de programas no modo de pull, fluxos de programas no modo push e fluxos de transporte no modo push. O demux determina qual modo usar em tempo de execução. O modo é determinado quando o pino de entrada se conecta ou quando o primeiro pino de saída é configurado, o que ocorrer primeiro:

  • Quando o pino de entrada se conecta: no Windows XP e posterior, o demux consulta o filtro upstream para a interface IAsyncReader; se o filtro upstream expõe essa interface, o demux se configura para fluxos de programas no modo de pull. Caso contrário, o demux usará o modo de push e o tipo de mídia determinará o tipo de fluxo (fluxo de programa ou fluxo de transporte). Consulte Tipos de mídia mpeg-2 demultiplexer para obter uma lista de tipos de entrada.
  • Quando o primeiro pino de saída é configurado: se você criar um pino de saída e consultá-lo para IMPEG2PIDMap, o demux se configurará para fluxos de transporte no modo push. Se você consultar o pino para IMPEG2StreamIdMap, o demux se configurará para fluxos de programas, também no modo push. As consultas subsequentes para a outra interface falham, pois o demux não pode operar em dois modos ao mesmo tempo.

Depois que o demux tiver se configurado para um modo específico, ele permanecerá nesse modo. Para usar um modo diferente, você deve criar uma nova instância do demux.

Usando o Demultiplexer MPEG-2