Interfaccia IMFExtendedCameraControl (mfidl.h)
Questa interfaccia viene usata per configurare le proprietà estese di un dispositivo di acquisizione. Le proprietà e le funzionalità supportate vengono definite nel file di intestazione definito in ksmedia.h come costanti con la convenzione di denominazione KSCAMERA_EXTENDEDPROP_.
Ereditarietà
L'interfaccia IMFExtendedCameraControl eredita dall'interfaccia IUnknown.
Metodi
L'interfaccia IMFExtendedCameraControl dispone di questi metodi.
IMFExtendedCameraControl::CommitSettings Esegue il commit delle impostazioni di controllo configurate nel driver della fotocamera. |
IMFExtendedCameraControl::GetCapabilities Esegue query per le funzionalità di proprietà supportate dal dispositivo di acquisizione. |
IMFExtendedCameraControl::GetFlags Query per i flag di proprietà nel dispositivo di acquisizione. |
IMFExtendedCameraControl::LockPayload Blocca il buffer del payload interno contenuto nel controllo del dispositivo di acquisizione per abilitare l'esecuzione di query o la modifica del payload. |
IMFExtendedCameraControl::SetFlags Imposta i flag per una proprietà nel dispositivo di acquisizione. |
IMFExtendedCameraControl::UnlockPayload Sblocca il payload non elaborato contenuto nel controllo del dispositivo di acquisizione. |
Commenti
Ottenere un'istanza di questa interfaccia chiamando IMFExtendedCameraController::GetExtendedCameraControlControl
Proprietà non supportate
Si noti che alcune proprietà KSCAMERA_EXTENDEDPROP_ non sono supportate per questa API. Le funzionalità possono essere accessibili solo dalle app client tramite le API di acquisizione multimediale WinRT.
KSPROPERTY_CAMERACONTROL_EXTENDED_WARMSTART
Il comportamento di questa proprietà viene esposto tramite le API WinRT seguenti:
- PrepareLowLagPhotoCaptureAsync
- PrepareLowLagRecordToCustomSinkAsync
- PrepareLowLagRecordToStorageFileAsync
- PrepareLowLagRecordToStreamAsync
Queste API determinano la configurazione della pipeline di acquisizione con il tipo di supporto selezionato e l'inserimento del pin del driver in uno stato sospeso, che informa il driver di ottenere le risorse hardware allocate/configurate per l'operazione. Ciò consente di ridurre al minimo la latenza caricando in anticipo la preparazione delle risorse.
Si noti che la funzionalità di avvio ad accesso frequente è un controllo facoltativo per i dispositivi di acquisizione, quindi se il controllo non è disponibile, le API precedenti non forniranno il comportamento di avvio ad accesso frequente. Queste API configureranno comunque il lato sink dell'acquisizione in modo da poter usare queste API.
KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOMODE
Il comportamento di questa proprietà viene esposto tramite le API WinRT seguenti:
Queste API configurano sia l'acquisizione che il lato sink della pipeline e inseriscono il pin del driver nello stato di esecuzione, acquisendo fotogrammi ma non passando ancora i frame alla pipeline. I frame iniziano a passare attraverso la pipeline all'avvio dell'operazione di acquisizione.
Si noti che questa funzionalità è un controllo facoltativo per i dispositivi di acquisizione, quindi se il controllo non è disponibile, le API precedenti restituiscono un errore.
Esempio
Nell'esempio seguente viene illustrata l'impostazione del flag KSCAMERA_EXTENDEDPROP_VIDEOTORCH_ON e il commit dell'impostazione.
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());
}
}
Requisiti
Client minimo supportato | Windows 10 Build 20348 |
Server minimo supportato | Windows 10 Build 20348 |
Intestazione | mfidl.h |