Compartilhar via


Método IKsInterfaceHandler::KsProcessMediaSamples (ksproxy.h)

O método KsProcessMediaSamples processa exemplos de mídia.

Sintaxe

HRESULT KsProcessMediaSamples(
  [in]      IKsDataTypeHandler *KsDataTypeHandler,
  [in]      IMediaSample       **SampleList,
  [in, out] PLONG              SampleCount,
  [in]      KSIOOPERATION      IoOperation,
  [out]     PKSSTREAM_SEGMENT  *StreamSegment
);

Parâmetros

[in] KsDataTypeHandler

Ponteiro para a interface IKsDataTypeHandler para o manipulador de tipo de dados que manipula o tipo de mídia listado em SampleList. Esse manipulador de tipo de dados tem informações específicas sobre o tipo de mídia que está sendo transmitido.

[in] SampleList

Ponteiro para um buffer que contém uma matriz de ponteiros para as interfaces IMediaSample para a lista de exemplos de mídia a serem processados.

[in, out] SampleCount

Ponteiro para uma variável que inicialmente contém o número de exemplos na lista em SampleList e, no retorno, recebe o número real de amostras processadas.

[in] IoOperation

Valor que especifica o tipo de operação de E/S. Esse valor pode ser um dos seguintes valores do tipo enumerado KSIOOPERATION:

Valor Descrição
KsIoOperation_Write Gravar dados no fluxo.
KsIoOperation_Read Ler dados do fluxo.

[out] StreamSegment

Ponteiro para um buffer que recebe um ponteiro para uma estrutura KSSTREAM_SEGMENT que contém informações de cabeçalho para um segmento de fluxo que é enviado para o pin do modo kernel.

Retornar valor

Retorna NOERROR se tiver êxito; caso contrário, retorna um código de erro.

Comentários

O método KsProcessMediaSamples move amostras de ou para um pin de filtro atribuído anteriormente. Um cabeçalho de fluxo é inicializado para representar cada exemplo de mídia no segmento de fluxo. A entrada e a saída (E/S) são executadas, a contagem de itens de espera é incrementada e o thread de E/S do proxy aguarda a conclusão.

O método KsProcessMediaSamples chama o método KsQueryExtendedSize da interface IKsDataTypeHandler recebida para recuperar o tamanho do cabeçalho estendido. Se um tamanho de cabeçalho estendido não for especificado, KsProcessMediaSamples descartará o ponteiro para a interface IKsDataTypeHandler . Se um tamanho de cabeçalho estendido for especificado, KsProcessMediaSamples manterá o ponteiro para a interface IKsDataTypeHandler até que o processamento dos exemplos de mídia seja concluído. O método KsProcessMediaSamples aloca os cabeçalhos de fluxo com os tamanhos de cabeçalho apropriados. Para cada exemplo de mídia, KsProcessMediaSamples inicializa o cabeçalho, copia ponteiros de dados, define carimbos de data/hora e assim por diante. Cada exemplo é adicionado à lista de exemplos. Se for uma operação de gravação, o exemplo será mantido incrementando a contagem de referência.

Para obter mais informações sobre iMediaSample, consulte a documentação do SDK do Microsoft Windows.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho ksproxy.h (inclua Ksproxy.h)

Confira também

IKsDataTypeHandler

IKsDataTypeHandler::KsQueryExtendedSize

KSSTREAM_SEGMENT