Interface IMFExtendedCameraControl (mfidl.h)
Cette interface est utilisée pour configurer les propriétés étendues d’un appareil de capture. Les propriétés et fonctionnalités prises en charge sont définies dans le fichier d’en-tête défini dans ksmedia.h en tant que constantes avec la convention d’affectation de noms KSCAMERA_EXTENDEDPROP_.
Héritage
L’interface IMFExtendedCameraControl hérite de l’interface IUnknown.
Méthodes
L’interface IMFExtendedCameraControl a ces méthodes.
IMFExtendedCameraControl::CommitSettings Valide les paramètres de contrôle configurés sur le pilote de la caméra. |
IMFExtendedCameraControl::GetCapabilities Requêtes sur les fonctionnalités de propriété prises en charge par l’appareil de capture. |
IMFExtendedCameraControl::GetFlags Interroge les indicateurs de propriété sur l’appareil de capture. |
IMFExtendedCameraControl::LockPayload Verrouille la mémoire tampon de charge utile interne contenue dans le contrôle de périphérique de capture pour permettre l’interrogation ou la modification de la charge utile. |
IMFExtendedCameraControl::SetFlags Définit les indicateurs d’une propriété sur l’appareil de capture. |
IMFExtendedCameraControl::UnlockPayload Déverrouille la charge utile brute contenue dans le contrôle de périphérique de capture. |
Notes
Obtenir une instance de cette interface en appelant IMFExtendedCameraController::GetExtendedCameraControl
Propriétés non prises en charge
Notez que certaines propriétés KSCAMERA_EXTENDEDPROP_ ne sont pas prises en charge pour cette API. Leurs fonctionnalités sont accessibles uniquement par les applications clientes via les API de capture multimédia WinRT.
KSPROPERTY_CAMERACONTROL_EXTENDED_WARMSTART
Le comportement de cette propriété est exposé via les API WinRT suivantes :
- PrepareLowLagPhotoCaptureAsync
- PrepareLowLagRecordToCustomSinkAsync
- PrepareLowLagRecordToStorageFileAsync
- PrepareLowLagRecordToStreamAsync
Ces API entraînent la configuration du pipeline de capture avec le type de média sélectionné et mettent la broche du pilote en pause, ce qui informe le pilote d’obtenir les ressources matérielles allouées/configurées pour l’opération. Cela permet de réduire la latence en chargeant à l’avance la préparation des ressources.
Notez que la fonctionnalité de démarrage à chaud est un contrôle facultatif pour les appareils de capture. Par conséquent, si le contrôle n’est pas disponible, les API ci-dessus ne fournissent pas le comportement de démarrage à chaud. Ces API configurent toujours le côté récepteur de la capture afin de les utiliser.
KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOMODE
Le comportement de cette propriété est exposé via les API WinRT suivantes :
Ces API configurent le côté capture et le côté récepteur du pipeline et placent la broche du pilote dans l’état en cours d’exécution, capturant les trames, mais ne transmettant pas encore les trames au pipeline. Les images commencent à traverser le pipeline lorsque l’opération de capture est démarrée.
Notez que cette fonctionnalité est un contrôle facultatif pour les appareils de capture. Par conséquent, si le contrôle n’est pas disponible, les API ci-dessus retournent une erreur.
Exemples
L’exemple suivant illustre la définition de l’indicateur KSCAMERA_EXTENDEDPROP_VIDEOTORCH_ON et la validation du paramètre.
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());
}
}
Spécifications
Client minimal pris en charge | Windows 10 Build 20348 |
Serveur minimal pris en charge | Windows 10 Build 20348 |
En-tête | mfidl.h |