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.
Cabeçalho de funcionalidade (KSCAMERA_PERFRAMESETTING_CAP_HEADER)
Cabeçalho do item (KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER)
Cabeçalho do item (KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER)
Conteúdo do item (KSPROPERTY_STEPPING_LONG ou KSPROPERTY_STEPPING_LONGLONG)
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.
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.
A configuração de foco global sempre é assumida, a menos que seja explicitamente substituída por uma configuração manual no PFS.
O AF global é único e só se aplica ao primeiro quadro, se nenhuma substituição manual foi especificada.
O CAF global se aplica a todos os quadros, a menos que seja substituído explicitamente por um PFS.
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 |