Método IGraphConfig::P ushThroughData (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 PushThroughData
método envia dados por push pelo grafo de filtro para o pino especificado.
Sintaxe
HRESULT PushThroughData(
[in] IPin *pOutputPin,
[in] IPinConnection *pConnection,
[in] HANDLE hEventAbort
);
Parâmetros
[in] pOutputPin
Ponteiro para a interface IPin de um pino de saída no grafo de filtro.
[in] pConnection
Ponteiro para a interface IPinConnection de um pino de entrada no grafo de filtro. Este parâmetro pode ser NULL.
[in] hEventAbort
Identificador de um evento. Se o chamador for um filtro chamando em um de seus threads de processamento de dados, esse parâmetro deverá ser um identificador para um evento que será sinalizado quando o filtro for colocado em um estado parado. Caso contrário, esse parâmetro pode ser NULL. Para obter mais informações, consulte Comentários.
Retornar valor
Retorna S_OK se tiver êxito. Caso contrário, retorna um código de erro que pode ser um dos valores a seguir ou outros não listados.
Código de retorno | Descrição |
---|---|
|
Falha ao alocar a memória necessária. |
|
Não foi possível encontrar um pino de entrada candidato. |
|
Estado de filtro alterado durante a operação. |
Comentários
Esse método envia por push todos os dados pendentes, de um pino de saída especificado para baixo para um pino de entrada especificado. Opcionalmente, você pode deixar o pino de entrada não especificado e permitir que o método pesquise o grafo de filtro para o melhor candidato. Não chame esse método do thread que está enviando dados por push.
Se um filtro chamar esse método em um de seus próprios threads de processamento de dados, ele criará o potencial para um deadlock. O método obtém um bloqueio no grafo de filtro, que pode impedir que o filtro pare ao receber uma chamada para IMediaFilter::Stop. Para evitar essa situação, o método usa um identificador para um objeto de evento fornecido pelo filtro. O filtro deverá sinalizar o evento se ele receber uma chamada para seu método Stop .
Requisitos
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | strmif.h (inclua Dshow.h) |
Biblioteca | Strmiids.lib |