Compartilhar via


Método IMFSourceReader::SetStreamSelection (mfreadwrite.h)

Seleciona ou desmarca um ou mais fluxos.

Sintaxe

HRESULT SetStreamSelection(
  [in] DWORD dwStreamIndex,
  [in] BOOL  fSelected
);

Parâmetros

[in] dwStreamIndex

O fluxo a ser definido. O valor pode ser qualquer um dos seguintes.

Valor Significado
0 a 0xFFFFFFFB
O índice baseado em zero de um fluxo.
MF_SOURCE_READER_FIRST_VIDEO_STREAM
0xFFFFFFFC
O primeiro fluxo de vídeo.
MF_SOURCE_READER_FIRST_AUDIO_STREAM
0xFFFFFFFD
O primeiro fluxo de áudio.
MF_SOURCE_READER_ALL_STREAMS
0xFFFFFFFE
Todos os fluxos.

[in] fSelected

Especifique TRUE para selecionar fluxos ou FALSE para desmarcar fluxos. Se um fluxo for desmarcado, ele não gerará dados.

Retornar valor

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

Há dois usos comuns para este método:

  • Para alterar a seleção de fluxo padrão. Alguns arquivos de mídia contêm vários fluxos do mesmo tipo. Por exemplo, um arquivo pode incluir fluxos de áudio para vários idiomas. Você pode usar esse método para alterar qual dos fluxos está selecionado. Para obter informações sobre cada fluxo, chame IMFSourceReader::GetPresentationAttribute ou IMFSourceReader::GetNativeMediaType.
  • Se você não precisar de dados de um dos fluxos, é uma boa ideia desmarcar esse fluxo. Se o fluxo estiver selecionado, a fonte de mídia poderá manter uma fila de dados não lidos e a fila poderá crescer indefinidamente, consumindo memória.
Para obter um exemplo de desmarcação de um fluxo, consulte Tutorial: Decodificação de áudio.

Se um fluxo for desmarcado, o método IMFSourceReader::ReadSample retornará MF_E_INVALIDREQUEST para esse fluxo. Outros métodos IMFSourceReader são válidos para fluxos desmarcados.

Stream seleção não afeta como o leitor de origem carrega ou descarrega decodificadores na memória. Em particular, desmarcar um fluxo não força o leitor de origem a descarregar o decodificador para esse fluxo.

Essa interface estará disponível no Windows Vista se o Suplemento de Atualização de Plataforma para Windows Vista estiver instalado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Suplemento Windows 7, Windows Vista e Platform Update para Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 R2 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho mfreadwrite.h

Confira também

IMFSourceReader

Leitor de origem