Método CDynamicOutputPin.StartUsingOutputPin
[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na 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 Captura de Áudio/Vídeo no 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 StartUsingOutputPin
método obtém acesso ao pino de uma operação de streaming.
Sintaxe
virtual HRESULT StartUsingOutputPin();
Parâmetros
Esse método não tem parâmetros.
Retornar valor
Retorna um valor HRESULT . Os valores possíveis incluem os mostrados na tabela a seguir.
Código de retorno | Descrição |
---|---|
|
Êxito. |
|
Erro inesperado. |
|
O filtro foi interrompido ou o pino começou a ser liberado. |
Comentários
Chame esse método antes de chamar qualquer método que forneça dados para o pin de entrada conectado ou que altere o tipo de mídia da conexão. Por exemplo, essa regra se aplica aos seguintes métodos:
- CDynamicOutputPin::ChangeOutputFormat
- CDynamicOutputPin::ChangeMediaType
- CDynamicOutputPin::D ynamicReconnect
- CBaseOutputPin::D eliver
- CBaseOutputPin::D eliverEndOfStream
- CBaseOutputPin::D eliverNewSegment
- IMemInputPin::Receive
- IMemInputPin::ReceiveMultiple
- IPin::EndOfStream
- IPin::NewSegment
Posteriormente, chame o método CDynamicOutputPin::StopUsingOutputPin para liberar o acesso ao pino.
Se o pino estiver bloqueado, StartUsingOutputPin
aguardará que o pino seja desbloqueado. Se o filtro for interrompido enquanto o método estiver aguardando, o método retornará imediatamente VFW_E_STATE_CHANGED. O pin mantém uma contagem de quantas vezes StartUsingOutputPin
foi chamado sem uma chamada correspondente para StopUsingOutputPin. Se outro thread tentar bloquear o pino enquanto essa contagem não for zero, o pino definirá sua status de bloqueio como "pendente". O pino fica bloqueado depois que todas as operações de streaming são concluídas, na chamada final para StopUsingOutputPin.
Não mantenha a seção CDynamicOutputPin::m_BlockStateLock crítica ao chamar esse método. Caso contrário, se o pino estiver bloqueado, ele nunca poderá ser desbloqueado, causando um deadlock.
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|