Interface IMFExtendedCameraControl (mfidl.h)
Essa interface é usada para configurar as propriedades estendidas de um dispositivo de captura. As propriedades e os recursos com suporte são definidos no arquivo de cabeçalho definido em ksmedia.h como constantes com a convenção de nomenclatura KSCAMERA_EXTENDEDPROP_.
Herança
A interface IMFExtendedCameraControl herda da interface IUnknown.
Métodos
A interface IMFExtendedCameraControl tem esses métodos.
IMFExtendedCameraControl::CommitSettings Confirma as configurações de controle definidas para o driver da câmera. |
IMFExtendedCameraControl::GetCapabilities Consultas para recursos de propriedade compatíveis com o dispositivo de captura. |
IMFExtendedCameraControl::GetFlags Consulta sinalizadores de propriedade no dispositivo de captura. |
IMFExtendedCameraControl::LockPayload Bloqueia o buffer de conteúdo interno contido no controle de dispositivo de captura para habilitar a consulta ou a alteração do conteúdo. |
IMFExtendedCameraControl::SetFlags Define os sinalizadores de uma propriedade no dispositivo de captura. |
IMFExtendedCameraControl::UnlockPayload Desbloqueia o conteúdo bruto contido no controle de dispositivo de captura. |
Comentários
Obter uma instância dessa interface chamando IMFExtendedCameraController::GetExtendedCameraControl
Propriedades sem suporte
Observe que algumas KSCAMERA_EXTENDEDPROP_ propriedades não têm suporte para essa API. Sua funcionalidade só pode ser acessada por aplicativos cliente por meio das APIs de captura de mídia do WinRT.
KSPROPERTY_CAMERACONTROL_EXTENDED_WARMSTART
O comportamento dessa propriedade é exposto por meio das seguintes APIs do WinRT:
- PrepareLowLagPhotoCaptureAsync
- PrepareLowLagRecordToCustomSinkAsync
- PrepareLowLagRecordToStorageFileAsync
- PrepareLowLagRecordToStreamAsync
Essas APIs fazem com que o pipeline de captura seja configurado com o tipo de mídia selecionado e coloque o pino do driver em um estado pausado, o que informa ao driver para obter os recursos de hardware alocados/configurados para a operação. Isso ajuda a minimizar a latência carregando antecipadamente a preparação de recursos.
Observe que a funcionalidade de início quente é um controle opcional para dispositivos de captura, portanto, se o controle não estiver disponível, as APIs acima não fornecerão o comportamento de início quente. Essas APIs ainda configurarão o lado do coletor da captura para que haja algum benefício em usá-las.
KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOMODE
O comportamento dessa propriedade é exposto por meio das seguintes APIs do WinRT:
Essas APIs configuram o lado da captura e do coletor do pipeline e colocam o pino do driver no estado em execução, capturando quadros, mas ainda não passando os quadros para o pipeline. Os quadros começam a passar pelo pipeline quando a operação de captura é iniciada.
Observe que essa funcionalidade é um controle opcional para dispositivos de captura, portanto, se o controle não estiver disponível, as APIs acima retornarão um erro.
Exemplos
O exemplo a seguir demonstra como definir o sinalizador KSCAMERA_EXTENDEDPROP_VIDEOTORCH_ON e confirmar a configuração.
if (FAILED(m_cameraController->GetExtendedCameraControl(MF_CAPTURE_ENGINE_MEDIASOURCE,
KSPROPERTY_CAMERACONTROL_EXTENDED_TORCHMODE,
cameraControl.put())))
{
// Return false to indicate that the Torch Mode control is not available.
return false;
}
ULONGLONG capabilities = cameraControl->GetCapabilities();
// Check if the torch can be turned on.
if (capabilities & KSCAMERA_EXTENDEDPROP_VIDEOTORCH_ON)
{
// Check if the torch is off.
if ((cameraControl->GetFlags() & KSCAMERA_EXTENDEDPROP_VIDEOTORCH_ON) == 0)
{
// Torch is off. Tell the camera to turn it on.
check_hresult(cameraControl->SetFlags(KSCAMERA_EXTENDEDPROP_VIDEOTORCH_ON));
// Write the changed settings to the driver.
check_hresult(cameraControl->CommitSettings());
}
}
Requisitos
Cliente mínimo com suporte | Windows 10 Build 20348 |
Servidor mínimo com suporte | Windows 10 Build 20348 |
Cabeçalho | mfidl.h |