Filtros de áudio

Um filtro KS é um objeto kernel e é identificado por um identificador de objeto kernel. Na figura a seguir, a caixa grande no centro é um filtro KS que representa um dispositivo de áudio. O fluxo de dados flui para o filtro da esquerda, passa por alguns nós para processamento e sai do filtro à direita. O filtro é criado por uma fábrica de filtros, que é mostrada como uma caixa com bordas tracejadas na parte inferior do filtro.

Diagrama mostrando um filtro KS com dois nós, representando um dispositivo de áudio com fluxo de fluxo de dados.

Na figura, dois pinos são instanciados no filtro. O pino à esquerda é um coletor de dados e o pino à direita é uma fonte de dados. Os dados fluem para o filtro por meio do pino do coletor e fluem para fora do filtro por meio do pino de origem.

Por convenção, o uso dos termos origem e coletor em KS é centrado em buffer (ou talvez, em geral, centrado em conexão). Um buffer de dados é frequentemente necessário no ponto em que um pino de origem em um filtro se conecta ao pino do coletor de outro. O buffer suaviza as irregularidades nas taxas nas quais os dados chegam do pino de origem e saem para o pino do coletor. (É claro que nem todas as conexões exigem buffer. Uma conexão sem buffer pode ocorrer entre dois dispositivos no mesmo adaptador cartão, por exemplo, em que as taxas de dados de origem e coletor são mais facilmente correspondidas.)

Por outro lado, a terminologia da API do mixer para linhas de mixer SRC e DST (origem e destino) é centrada no dispositivo:

  • O fluxo entra em um dispositivo de mixer por meio da linha de mixer SRC.

  • O fluxo sai de um dispositivo de mixer por meio da linha do mixer DST.

Em outras palavras, uma linha de mixer SRC é mapeada para um pino de coletor de dados em um filtro KS e uma linha de mixer DST é mapeada para um pin de fonte de dados. Para obter mais informações, consulte Kernel Streaming Topology to Audio Mixer API Translation.

Para simplificar, a figura omite as fábricas de pinos do filtro, que criam as instâncias de pino.

Além de serem coletores de dados e fontes de dados, os pinos e filtros também podem ser coletores IRP e fontes IRP. Não só os pinos e filtros podem receber IRPs, como também podem enviar IRPs. As três setas escuras na figura representam IRPs. O pino no lado esquerdo da figura é um coletor IRP. O pino à direita é uma origem IRP. A figura também mostra um IRP sendo enviado para o próprio objeto de filtro.