Compartilhar via


Método CDynamicOutputPin.ChangeOutputFormat

[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 ChangeOutputFormat método altera dinamicamente o tipo de mídia para a conexão e fornece novas informações de segmento. A alteração pode ocorrer enquanto o grafo de filtro está em execução. Depois que esse método é chamado, exemplos com o tipo de mídia antigo não podem ser entregues. O chamador deve garantir que nenhuma amostra antiga esteja pendente.

Sintaxe

HRESULT ChangeOutputFormat(
   const AM_MEDIA_TYPE  *pmt,
         REFERENCE_TIME tSegmentStart,
         REFERENCE_TIME tSegmentStop,
         double         dSegmentRate
);

Parâmetros

Pgto

Ponteiro para uma estrutura AM_MEDIA_TYPE que especifica o tipo de mídia.

tSegmentStart

Hora de início do segmento.

tSegmentStop

Hora de parada do segmento.

dSegmentRate

Taxa de segmento.

Retornar valor

Retorna um valor HRESULT . Os valores possíveis incluem aqueles mostrados na tabela a seguir.

Código de retorno Descrição
S_OK
Êxito.
E_FAIL
Falha. Possivelmente, o filtro proprietário não chamou CDynamicOutputPin::SetConfigInfo.
VFW_E_NOT_CONNECTED
O pino não está conectado.

Comentários

Esse método altera o tipo de formato enquanto o filtro está em execução. Se o pin downstream aceitar o novo formato, nenhuma reconexão será necessária. Caso contrário, o método tentará reconectar o pino. Se o método alterar o formato com êxito, ele fornecerá as novas informações de segmento. Esse método chama o método CDynamicOutputPin::ChangeMediaType para executar a alteração de formato.

Você deve chamar o método CDynamicOutputPin::StartUsingOutputPin antes de chamar esse método.

Requisitos

Requisito Valor
parâmetro
Amfilter.h (inclua Streams.h)
Biblioteca
Strmbase.lib (builds de varejo);
Strmbasd.lib (builds de depuração)

Confira também

Classe CDynamicOutputPin