Compartilhar via


Usando mídias de hardware em codecs AVStream

Um minidriver AVStream que dá suporte a meios privados pode transferir dados no hardware do dispositivo, sem uma transferência intermediária para a memória do sistema.

Especificamente, se dois filtros compartilharem a mesma instância média e privada, o Media Foundation transferirá mídia exclusivamente no hardware do dispositivo. Essa transferência ocorre sem trazer as funções para a memória do sistema. Por exemplo, um decodificador e um codificador do mesmo dispositivo podem compartilhar um meio privado, o que resulta em um desempenho significativamente aprimorado.

Para usar meios privados, o minidriver deve fazer o seguinte na função AVStrMiniPinProcess do pino:

  1. Se o meio personalizado de um driver for selecionado para a conexão de pino (por exemplo, o meio do pino não é KSMEDIUMSETID_Standard), o driver deve rotear os dados por meio de seu barramento privado. O AVStream não habilita o transporte de ponteiro de fluxo para pinos conectados usando meios personalizados.

  2. O driver pode determinar o pino conectado chamando KsPinGetConnectedPinFileObject.

  3. Em seguida, o driver pode executar operações no buffer e roteá-lo para o objeto de filtro/pino conectado por meio de seu meio personalizado.