Compartilhar via


Método IAMStreamConfig::SetFormat (strmif.h)

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, 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.]

O SetFormat método define o formato de saída no pino.

Sintaxe

HRESULT SetFormat(
  [in] AM_MEDIA_TYPE *pmt
);

Parâmetros

[in] pmt

Ponteiro para uma estrutura AM_MEDIA_TYPE que especifica o novo formato.

Retornar valor

Retorna um valor HRESULT . Os possíveis valores incluem os seguintes.

Código de retorno Descrição
S_OK
Êxito.
E_OUTOFMEMORY
Memória insuficiente.
E_POINTER
Valor do ponteiro NULL .
VFW_E_INVALIDMEDIATYPE
Esse tipo de mídia não é válido.
VFW_E_NOT_CONNECTED
O pino de entrada não está conectado.
VFW_E_NOT_STOPPED
Não é possível definir o tipo; o filtro não foi interrompido.
VFW_E_WRONG_STATE
Não é possível definir o tipo; o filtro não foi interrompido.

Comentários

Esse método especifica o formato do pino de saída. Se o pino não estiver conectado, ele usará esse formato para sua próxima conexão. Se o pino já estiver conectado, ele tentará se reconectar com esse formato. O método poderá falhar se o outro pin rejeitar o novo tipo.

Se esse método for bem-sucedido, as chamadas subsequentes para o método IPin::EnumMediaTypes retornarão o novo tipo e nenhum outro.

Na maioria dos filtros, esse método falhará se o filtro estiver em pausa ou em execução. Em alguns filtros de compactação, o método falhará se o pino de entrada do filtro não estiver conectado.

Com alguns filtros, você pode chamar esse método com o valor NULL para redefinir o pino para seu formato padrão.

Filtrar Desenvolvedores: os seguintes comentários descrevem como implementar esse método:

Se o pino de saída não estiver conectado e o pino der suporte ao tipo de mídia especificado, retorne S_OK. Armazene o tipo de mídia e ofereça-o como o número de formato zero no método CBasePin::GetMediaType . Não ofereça outros formatos e rejeite outros formatos no método CBasePin::CheckMediaType .

Se o pino já estiver conectado e o pino der suporte ao tipo de mídia, reconecte o pino com esse tipo. Se o outro pin rejeitar o novo tipo, retorne VFW_E_INVALIDMEDIATYPE e restaure a conexão original.

Requisitos

Requisito Valor
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 strmif.h (inclua Dshow.h)
Biblioteca Strmiids.lib

Confira também

Códigos de erro e êxito

IAMStreamConfig Interface