Interfaz IMFExtendedCameraControl (mfidl.h)

Esta interfaz se usa para configurar las propiedades extendidas de un dispositivo de captura. Las propiedades y funcionalidades admitidas se definen en el archivo de encabezado definido en ksmedia.h como constantes con la convención de nomenclatura KSCAMERA_EXTENDEDPROP_.

Herencia

La interfaz IMFExtendedCameraControl hereda de la interfaz IUnknown.

Métodos

La interfaz IMFExtendedCameraControl tiene estos métodos.

 
IMFExtendedCameraControl::CommitSettings

Confirma las opciones de control configuradas en el controlador de cámara.
IMFExtendedCameraControl::GetCapabilities

Consultas para funcionalidades de propiedad compatibles con el dispositivo de captura.
IMFExtendedCameraControl::GetFlags

Consulta las marcas de propiedad en el dispositivo de captura.
IMFExtendedCameraControl::LockPayload

Bloquea el búfer de carga interno contenido en el control de dispositivo de captura para habilitar la consulta o cambiar la carga.
IMFExtendedCameraControl::SetFlags

Establece las marcas de una propiedad en el dispositivo de captura.
IMFExtendedCameraControl::UnlockPayload

Desbloquea la carga sin procesar contenida en el control de dispositivo de captura.

Comentarios

Obtenga una instancia de esta interfaz llamando a IMFExtendedCameraController::GetExtendedCameraControl

Propiedades no admitidas

Tenga en cuenta que algunas propiedades de KSCAMERA_EXTENDEDPROP_ no son compatibles con esta API. Solo las aplicaciones cliente pueden acceder a su funcionalidad a través de las API de captura de medios de WinRT.

KSPROPERTY_CAMERACONTROL_EXTENDED_WARMSTART

El comportamiento de esta propiedad se expone a través de las siguientes API de WinRT:

Estas API hacen que la canalización de captura se configure con el tipo de medio seleccionado y coloque el pin del controlador en un estado en pausa, que informa al controlador de que obtenga los recursos de hardware asignados o configurados para la operación. Esto ayuda a minimizar la latencia cargando por adelantado la preparación de los recursos.

Tenga en cuenta que la funcionalidad de inicio intermedio es un control opcional para los dispositivos de captura, por lo que si el control no está disponible, las API anteriores no proporcionarán el comportamiento de inicio intermedio. Estas API seguirán configurando el lado receptor de la captura, por lo que hay algunas ventajas para usarlas.

KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOMODE

El comportamiento de esta propiedad se expone a través de las siguientes API de WinRT:

Estas API configuran el lado de captura y receptor de la canalización y colocan el pin del controlador en el estado en ejecución, capturando fotogramas pero sin pasar los fotogramas a la canalización. Los fotogramas comienzan a pasar por la canalización cuando se inicia la operación de captura.

Tenga en cuenta que esta funcionalidad es un control opcional para los dispositivos de captura, por lo que si el control no está disponible, las API anteriores devuelven un error.

Ejemplos

En el ejemplo siguiente se muestra cómo establecer la marca KSCAMERA_EXTENDEDPROP_VIDEOTORCH_ON y confirmar la configuración.

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 compatible compilación 20348 de Windows 10
Servidor mínimo compatible compilación 20348 de Windows 10
Encabezado mfidl.h