Método ISampleGrabber::SetMediaType
[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.]
Observação
[Preterido. Essa API pode ser removida de versões futuras do Windows.]
O SetMediaType
método especifica o tipo de mídia para a conexão no pino de entrada do Graber de Exemplo.
Sintaxe
HRESULT SetMediaType(
const AM_MEDIA_TYPE *pType
);
Parâmetros
-
pType
-
O ponteiro para uma estrutura de AM_MEDIA_TYPE especifica o tipo de mídia necessário. Não é necessário definir todos os membros da estrutura; consulte Comentários para obter detalhes.
Retornar valor
Returns S_OK.
Comentários
Por padrão, o Sample Grabber não tem nenhum tipo de mídia preferencial. Para garantir que o Sample Grabber se conecte ao filtro correto, chame esse método antes de criar o grafo de filtro.
Esse método restringe o intervalo de tipos de mídia que o filtro aceitará. Quando o filtro se conecta, ele tenta corresponder ao tipo de mídia fornecido em pType. Para fazer isso, ele compara o tipo principal, o subtipo e os GUIDs de tipo de formato, nessa ordem. Para cada um desses GUIDs, se pType tiver o valor GUID_NULL, o Sample Grabber aceitará o tipo de mídia sem nenhuma verificação adicional. Se pType tiver qualquer outro valor, o Sample Grabber o comparará com o GUID no tipo de conexão. A menos que os dois GUIDs correspondam exatamente, o Sample Grabber rejeita a conexão.
Para tipos de mídia de vídeo, o Sample Grabber ignora o bloco de formato. Portanto, ele aceitará qualquer tamanho de vídeo e taxa de quadros. Quando você chamar SetMediaType
, defina o bloco de formato (pbFormat) como NULL e o tamanho (cbFormat) como zero. Para tipos de mídia de áudio, o Sample Grabber examinará a estrutura WAVEFORMATEX e exigirá que o outro filtro se conecte a esse formato, a menos que o bloco de formato em pType seja NULL ou a marca de formato seja WAVE_FORMAT_PCM e os outros membros da estrutura sejam zero.
Exemplo 1:
- Tipo principal: MEDIATYPE_Video
- Subtipo: GUID_NULL
- Tipo de formato: GUID_NULL
O Sample Grabber aceitará qualquer tipo de vídeo em que o tipo principal seja igual a MEDIATYPE_Video. Ele não marcar o subtipo.
Exemplo 2:
- Tipo principal: MEDIATYPE_Video
- Subtipo: MEDIASUBTYPE_RGB24
- Tipo de formato: GUID_NULL
Agora, o Sample Grabber marcar o subtipo e aceitará apenas o vídeo RGB 24.
Limitações: Independentemente do tipo definido, o Filtro de Captura de Exemplo rejeita todos os tipos de vídeo com orientação de cima para baixo ( biHeight negativo) ou com um tipo de formato de FORMAT_VideoInfo2. Nesse caso, embora o SetMediaType
método seja bem-sucedido, o filtro não se conectará.
Observação
O arquivo de cabeçalho Qedit.h não é compatível com cabeçalhos Direct3D posteriores à versão 7.
Observação
Para obter qedit.h, baixe o SDK do Microsoft Windows Update para Windows Vista e .NET Framework 3.0. O Qedit.h não está disponível no SDK do Microsoft Windows para Windows 7 e .NET Framework 3.5 Service Pack 1.
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|
Confira também