Compartilhar via


KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY

A ID da propriedade KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY definida em KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY é usada para obter os recursos por quadro do driver. Este é um controle somente GET; o driver deve falhar em todas as chamadas SET.

Resumo de uso

Para consultar a funcionalidade de configuração por quadro com o driver, o controle de propriedade KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY é enviado ao driver junto com um buffer de dados. Em uma chamada GET, o driver preenche o conteúdo da funcionalidade de configuração por quadro no buffer de dados fornecido usando o layout de formato especificado abaixo.

O conteúdo da funcionalidade deve começar com um cabeçalho de funcionalidade. Cada item de funcionalidade deve começar com um cabeçalho de item. Se um item de funcionalidade tiver uma carga, o cabeçalho do item deverá ser seguido por uma carga de item correspondente.

Em uma chamada GET, um buffer de comprimento zero é enviado primeiro para o driver para descobrir o tamanho necessário do buffer de dados para manter todo o conteúdo da funcionalidade. Em resposta à chamada, o driver deve retornar STATUS_BUFFER_OVERFLOW com o tamanho do buffer de capacidade necessário que deve ter pelo menos o tamanho de KSCAMERA_PERFRAMESETTING_CAP_HEADER.

Veja a seguir as descrições dos campos KSCAMERA_PERFRAMESETTING_CAP_HEADER no contexto dos tipos de item definidos na enumeração KSCAMERA_PERFRAMESETTING_ITEM_TYPE . O campo payload representa as estruturas de conteúdo do item após a estrutura KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER .

Item de tempo de exposição

Tamanho

Esse é o tamanho da estrutura KSCAMERA_PERFRAMESETTING_CAP_HEADER + o tamanho de uma estrutura KSPROPERTY_STEPPING_LONGLONG se houver suporte para o modo manual.

Tipo

Isso deve ser KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_TIME.

Sinalizadores

Isso contém os sinalizadores disponíveis. Esse campo deve conter os sinalizadores disponíveis fazendo um OR bit-wise dos sinalizadores definidos em ksmedia.h.

#define KSCAMERA_PERFRAMESETTING_AUTO       0x0000000100000000
#define KSCAMERA_PERFRAMESETTING_MANUAL     0x0000000200000000

Carga útil

Se o driver der suporte ao modo manual, uma carga de intervalo deverá ser especificada em KSPROPERTY_STEPPING_LONGLONG. Bounds.SignedMinimum\SignedMaxmum e KSPROPERTY_STEPPING_LONGLONG. SteppingDelta

Item flash

Tamanho

Esse é o tamanho da estrutura KSCAMERA_PERFRAMESETTING_CAP_HEADER .

Tipo

Isso deve ser KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_FLASH

Sinalizadores

Isso contém os sinalizadores disponíveis. Esse campo deve conter os sinalizadores disponíveis fazendo um OR bit-wise dos sinalizadores FLASH definidos abaixo em ksmedia.h.

#define KSCAMERA_EXTENDEDPROP_FLASH_OFF                                 0x0000000000000000  
#define KSCAMERA_EXTENDEDPROP_FLASH_ON                                  0x0000000000000001  
#define KSCAMERA_EXTENDEDPROP_FLASH_ON_ADJUSTABLEPOWER                  0x0000000000000002  
#define KSCAMERA_EXTENDEDPROP_FLASH_AUTO                                0x0000000000000004  
#define KSCAMERA_EXTENDEDPROP_FLASH_AUTO_ADJUSTABLEPOWER                0x0000000000000008  
#define KSCAMERA_EXTENDEDPROP_FLASH_REDEYEREDUCTION                     0x0000000000000010

Carga útil

O item flash não tem uma carga. Se KSCAMERA_EXTENDEDPROP_FLASH_ON_ADJUSTABLEPOWER ou KSCAMERA_EXTENDEDPROP_FLASH_AUTO_ADJUSTABLEPOWER for especificado nos sinalizadores, o parâmetro de energia estará no intervalo de 0 a 100.

Item de compensação de exposição

Tamanho

Esse é o tamanho da estrutura KSCAMERA_PERFRAMESETTING_CAP_HEADER + o tamanho de uma estrutura KSPROPERTY_STEPPING_LONG se houver suporte para etapas.

Tipo

Isso deve ser KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_COMPENSATION

Sinalizadores

Isso contém os sinalizadores disponíveis. Esse campo deve conter os sinalizadores disponíveis fazendo um OR bit-wise dos sinalizadores EVCOMP definidos abaixo em ksmedia.h ou o sinalizador AUTO definido abaixo em ksmedia_phone.h.

#define KSCAMERA_PERFRAMESETTING_AUTO               0x0000000100000000
#define KSCAMERA_EXTENDEDPROP_EVCOMP_SIXTHSTEP      0x0000000000000001  
#define KSCAMERA_EXTENDEDPROP_EVCOMP_QUARTERSTEP    0x0000000000000002  
#define KSCAMERA_EXTENDEDPROP_EVCOMP_THIRDSTEP      0x0000000000000004  
#define KSCAMERA_EXTENDEDPROP_EVCOMP_HALFSTEP       0x0000000000000008  
#define KSCAMERA_EXTENDEDPROP_EVCOMP_FULLSTEP       0x0000000000000010

Carga útil

Se um driver der suporte apenas ao modo automático, uma carga não será incluída. Caso contrário, uma carga de intervalo deve ser especificada em uma estrutura KSPROPERTY_STEPPING_LONG . O mínimo e o máximo de compensação de EV são valores de compensação EV absolutos e são determinados de KSPROPERTY_STEPPING_LONG. Bounds.SignedMinimum e KSPROPERTY_STEPPING_LONG. Bounds.SignedMaximum. A etapa de compensação de EV é determinada pelo tamanho da etapa do sinalizador de etapa EVCOMP mais baixo que corresponde a um float (por exemplo, 1/6 para KSCAMERA_EXTENDEDPROP_EVCOMP_SIXTHSTEP).

Item de velocidade ISO

Tamanho

Esse é o tamanho da estrutura de KSCAMERA_PERFRAMESETTING_CAP_HEADER + o tamanho de uma estrutura KSPROPERTY_STEPPING_LONG se houver suporte para o modo manual.

Tipo

Isso deve ser KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_ISO

Sinalizadores

Esse campo contém os sinalizadores disponíveis. Esse campo deve conter os sinalizadores disponíveis fazendo um OR bit a bit dos sinalizadores ISO definidos abaixo em ksmedia.h e ksmedia_phone.h. Se houver suporte para ISO por quadro, o driver deverá dar suporte a pelo menos um dos seguintes recursos, ISO_AUTO e ISO_MANUAL, nos quais ISO_AUTO é obrigatório. Se ISO_MANUAL for anunciado, o driver deverá anunciar ainda mais a velocidade de ISO com suporte min\max\step no KSPROPERTY_STEPPING_LONG. ISO_MANUAL deve ter suporte se o ISO manual for desejado.

#define KSCAMERA_EXTENDEDPROP_ISO_MANUAL    0x0080000000000000
#define KSCAMERA_EXTENDEDPROP_ISO_AUTO      0x0000000000000001

Carga útil

Se um driver der suporte apenas ao modo automático, uma carga não será incluída. Caso contrário, uma carga de intervalo deve ser especificada em uma estrutura KSPROPERTY_STEPPING_LONG . O mínimo, o máximo e a etapa das velocidades de ISO são determinados a partir de KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMinimum, KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMaximum e KSPROPERTY_STEPPING_LONG. Bounds.SteppingDelta. Os drivers que dão suporte ao ISO manual de inteiro só devem anunciar ISO_MANUAL com intervalos de velocidade ISO com suporte (min/max/step). Não há suporte para predefinições de ISO_Xxx numéricas para ISO por quadro.

Item de foco

Tamanho

Esse é o tamanho da estrutura KSCAMERA_PERFRAMESETTING_CAP_HEADER + o tamanho de uma estrutura KSPROPERTY_STEPPING_LONG .

Tipo

Isso deve ser KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_FOCUS.

Sinalizadores

Isso contém os sinalizadores disponíveis. Esse campo deve ser definido fazendo um OR bit-wise do sinalizador definido abaixo em ksmedis.h.

#define KSCAMERA_PERFRAMESETTING_MANUAL     0x0000000200000000

Carga útil

Uma carga de intervalo deve ser especificada em uma estrutura KSPROPERTY_STEPPING_LONG. O mínimo, o máximo e a posição da lente são determinados de KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMinimum, KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMaximum e KSPROPERTY_STEPPING_LONG. SteppingDelta. O comportamento do foco de configuração por quadro e como ele se intertrabalha com as configurações de foco global é definido da seguinte maneira.

  1. A posição da lente é autoadesiva; mas os comandos de foco não são. Se o CAF (foco automático contínuo) tiver sido selecionado nas configurações globais, a operação CAF será substituída apenas pelos quadros especificados e o CAF provavelmente moverá a posição da lente (provavelmente após uma varredura completa) após o foco manual fornecido.

  2. A configuração de foco global sempre é assumida, a menos que seja explicitamente substituída por uma configuração manual no PFS.

  3. O AF global é único e só se aplica ao primeiro quadro, se nenhuma substituição manual foi especificada.

  4. O CAF global se aplica a todos os quadros, a menos que seja substituído explicitamente por um PFS.

  5. As configurações de foco manual global não reverter após um PFS manual (a posição da lente permanece).

Tipo de imagem de confirmação

Tamanho

Esse é o tamanho da estrutura KSCAMERA_PERFRAMESETTING_CAP_HEADER .

Tipo

Isso deve ser KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_PHOTOCONFIRMATION.

Sinalizadores

O campo sinalizadores não é usado.

Carga útil

Não há nenhum conteúdo para este item.

Item de propriedade personalizado

Tamanho

Esse é o tamanho da estrutura de KSCAMERA_PERFRAMESETTING_CAP_HEADER + o tamanho do GUID.

Tipo

Isso deve ser KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_CUSTOM.

Sinalizadores

O campo sinalizadores não é usado.

Carga útil

Esse é o GUID da propriedade personalizada.

Requisitos

parâmetro

Ksmedia.h