Suporte de exemplo alocado pelo usuário
[O recurso associado a esta página, Windows Media Format 11 SDK, é um recurso herdado. Ele foi substituído por Leitor de Origem e Gravador de Coletor. O Leitor de Origem e o Gravador de Coletor foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use o Leitor de Origem e o Gravador de Coletor em vez do SDK do Windows Media Format 11, 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.]
Em circunstâncias normais, o objeto leitor e o objeto leitor síncrono criam um novo objeto buffer para cada amostra entregue ao aplicativo. Isso ocorre porque o objeto de leitura não tem como saber o que seu aplicativo faz com os exemplos depois que ele os obtém. Embora muitos aplicativos leiam exemplos apenas para renderizá-los imediatamente, alguns aplicativos podem precisar manter exemplos por um longo tempo. O objeto de leitura não pode, portanto, reutilizar nenhum dos buffers alocados; ele os entrega ao seu aplicativo, que, em seguida, tem controle sobre eles.
O problema com essa abordagem é que um arquivo pode conter um número imenso de amostras. Se cada um deles exigir que um novo objeto buffer seja criado, muito tempo de processador será desperdiçado alocando e liberando memória. Em aplicativos sensíveis ao tempo, como players de mídia, essa sobrecarga pode ser muito prejudicial ao desempenho.
Para aliviar os problemas de desempenho de exemplos alocados pelo leitor, o leitor e o leitor síncrono dão suporte a exemplos alocados pelo usuário. Para usar exemplos alocados pelo aplicativo, o objeto de leitura faz chamadas para um método de retorno de chamada de alocação de exemplo que você implementa. A lógica usada pelo retorno de chamada para entregar buffers ao objeto de leitura cabe inteiramente a você. Você pode usar um pool de buffers para todo o arquivo ou usar vários pools de buffers, um para cada saída ou fluxo ou qualquer outro esquema que funcione para seu aplicativo.
Tópicos relacionados