Compartilhar via


Método IMFDeviceTransform::P rocessOutput (mftransform.h)

O método ProcessOutput obtém a saída processada dos fluxos de saída MFT do dispositivo.

Sintaxe

HRESULT ProcessOutput(
  [in] DWORD                  dwFlags,
  [in] DWORD                  cOutputBufferCount,
  [in] MFT_OUTPUT_DATA_BUFFER *pOutputSample,
  [in] DWORD                  *pdwStatus
);

Parâmetros

[in] dwFlags

OR bit a bit de zero ou mais sinalizadores da enumeração _MFT_PROCESS_OUTPUT_FLAGS .

[in] cOutputBufferCount

Número de elementos na matriz pOutputSamples . O valor deve ser pelo menos 1.

[in] pOutputSample

Ponteiro para uma matriz de estruturas MFT_OUTPUT_DATA_BUFFER , alocadas pelo chamador. O MFT usa essa matriz para retornar dados de saída para o chamador.

[in] pdwStatus

Recebe um OR bit a bit de zero ou mais sinalizadores da enumeração _MFT_PROCESS_OUTPUT_STATUS .

Valor retornado

O método retorna um HRESULT. Os valores possíveis incluem, mas não se limitam aos valores fornecidos na tabela a seguir.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
E_INVALIDARG
Argumento inválido passado.
MF_E_INVALIDREQUEST
O dispositivo MFT não pôde dar suporte à solicitação no momento.
MF_E_INVAILIDSTREAMNUMBER
Uma ID de fluxo inválida foi passada.
MF_E_INVALID_STREAM_STATE
A transição de fluxo solicitada não é possível.
MF_E_TRANSFORM_TYPE_NOT_SET
O tipo de mídia de entrada não foi definido.

Comentários

Na maioria dos casos, se o método for bem-sucedido, a MFT (transformação da Media Foundation) armazenará a amostra e conterá uma contagem de referência no ponteiro IMFSample . Quando o MFT terminar de usar o exemplo, ele deverá liberá-lo para evitar vazamentos de memória.

Depois que o DTM (gerenciador de transformações de dispositivo) tiver definido tipos de mídia válidos em todos os fluxos, o MFT sempre deverá ser capaz de aceitar mais entradas e ser capaz de produzir mais saída.

Se um MFT encontrar um erro não fatal nos dados de entrada, ele poderá simplesmente remover os dados e tentar recuperar quando obter mais dados de entrada. Se o MFT remover dados, ele deverá definir o atributo MFSampleExtension_Discontinuity no próximo exemplo de saída, para notificar o chamador de que há uma lacuna no fluxo de dados.

Requisitos

   
Cliente mínimo com suporte Windows 10, versão 1703
Plataforma de Destino Windows
Cabeçalho mftransform.h

Confira também

IMFDeviceTransform