Compartilhar via


Função acmStreamConvert (msacm.h)

A função acmStreamConvert solicita que o ACM execute uma conversão no fluxo de conversão especificado. Uma conversão pode ser síncrona ou assíncrona, dependendo de como o fluxo foi aberto.

Sintaxe

MMRESULT ACMAPI acmStreamConvert(
  HACMSTREAM        has,
  LPACMSTREAMHEADER pash,
  DWORD             fdwConvert
);

Parâmetros

has

Manipule para o fluxo de conversão aberto.

pash

Ponteiro para um cabeçalho de fluxo que descreve buffers de origem e de destino para uma conversão. Esse cabeçalho deve ter sido preparado anteriormente usando a função acmStreamPrepareHeader .

fdwConvert

Sinalizadores para fazer a conversão. Os valores a seguir são definidos.

Valor Significado
ACM_STREAMCONVERTF_BLOCKALIGN Somente números integrais de blocos serão convertidos. Os dados convertidos terminarão em limites alinhados a blocos. Um aplicativo deve usar esse sinalizador para todas as conversões em um fluxo até que não haja dados de origem suficientes para converter em um destino alinhado a blocos. Nesse caso, a última conversão deve ser especificada sem esse sinalizador.
ACM_STREAMCONVERTF_END O fluxo de conversão do ACM deve começar a retornar dados de instância pendentes. Por exemplo, se um fluxo de conversão armazenar dados de instância, como o fim de uma operação de filtro de eco, esse sinalizador fará com que o fluxo comece a retornar esses dados restantes com dados opcionais de origem. Esse sinalizador pode ser especificado com o sinalizador ACM_STREAMCONVERTF_START.
ACM_STREAMCONVERTF_START O fluxo de conversão do ACM deve reinicializar seus dados de instância. Por exemplo, se um fluxo de conversão armazenar dados de instância, como informações delta ou de preditor, esse sinalizador restaurará o fluxo para os padrões iniciais. Esse sinalizador pode ser especificado com o sinalizador ACM_STREAMCONVERTF_END.

Valor retornado

Retorna zero se tiver êxito ou um erro de outra forma. Os valores de erro possíveis incluem o seguinte.

Código de retorno Descrição
ACMERR_BUSY
O cabeçalho de fluxo especificado no pash está atualmente em uso e não pode ser reutilizado.
ACMERR_UNPREPARED
O cabeçalho de fluxo especificado no pash não está preparado atualmente pela função acmStreamPrepareHeader .
MMSYSERR_INVALFLAG
Pelo menos um sinalizador é inválido.
MMSYSERR_INVALHANDLE
O identificador especificado é inválido.
MMSYSERR_INVALPARAM
Pelo menos um parâmetro é inválido.

Comentários

Você deve usar a função acmStreamPrepareHeader para preparar os buffers de origem e de destino antes que eles sejam passados para acmStreamConvert.

Se uma solicitação de conversão assíncrona for enfileirada com êxito pelo ACM ou driver e a conversão for posteriormente considerada impossível, a estrutura ACMSTREAMHEADER será postada novamente na função de retorno de chamada do aplicativo com o membro cbDstLengthUsed definido como zero.

Requisitos

   
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho msacm.h
Biblioteca Msacm32.lib
DLL Msacm32.dll

Confira também

Funções de compactação de áudio

Gerenciador de Compactação de Áudio