Bagikan melalui


KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY

ID properti KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY yang ditentukan dalam KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY digunakan untuk mendapatkan kemampuan per bingkai dari driver. Ini adalah kontrol get saja; driver harus gagal setiap panggilan SET.

Ringkasan Penggunaan

Untuk mengkueri kemampuan pengaturan per bingkai dengan driver, kontrol properti KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY dikirim ke driver bersama dengan buffer data. Dalam panggilan GET, driver mengisi payload kemampuan pengaturan per bingkai di buffer data yang disediakan menggunakan tata letak format yang ditentukan di bawah ini.

Payload kemampuan harus dimulai dengan header kemampuan. Setiap item kemampuan harus dimulai dengan header item. Jika item kemampuan memiliki payload, header item harus diikuti dengan payload item yang sesuai.

Dalam panggilan GET, buffer panjang nol dikirim ke driver terlebih dahulu untuk mengetahui ukuran buffer data yang diperlukan untuk menahan seluruh payload kemampuan. Menanggapi panggilan, driver harus mengembalikan STATUS_BUFFER_OVERFLOW dengan ukuran buffer kemampuan yang diperlukan yang setidaknya harus berukuran KSCAMERA_PERFRAMESETTING_CAP_HEADER.

Berikut ini adalah deskripsi bidang KSCAMERA_PERFRAMESETTING_CAP_HEADER dalam konteks jenis item yang ditentukan dalam enumerasi KSCAMERA_PERFRAMESETTING_ITEM_TYPE . Bidang payload mewakili struktur payload item setelah struktur KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER .

Item waktu paparan

Ukuran

Ini adalah ukuran struktur KSCAMERA_PERFRAMESETTING_CAP_HEADER + ukuran struktur KSPROPERTY_STEPPING_LONGLONG jika mode manual didukung.

Jenis

Ini harus KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_TIME.

Bendera

Ini berisi bendera yang tersedia. Bidang ini harus berisi bendera yang tersedia dengan melakukan bit-bijaksana ATAU dari bendera yang ditentukan dalam ksmedia.h.

#define KSCAMERA_PERFRAMESETTING_AUTO       0x0000000100000000
#define KSCAMERA_PERFRAMESETTING_MANUAL     0x0000000200000000

Payload

Jika driver mendukung mode manual, payload rentang harus ditentukan dalam KSPROPERTY_STEPPING_LONGLONG. Bounds.SignedMinimum\SignedMaxmum dan KSPROPERTY_STEPPING_LONGLONG. SteppingDelta

Item flash

Ukuran

Ini adalah ukuran struktur KSCAMERA_PERFRAMESETTING_CAP_HEADER .

Jenis

Ini harus KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_FLASH

Bendera

Ini berisi bendera yang tersedia. Bidang ini harus berisi bendera yang tersedia dengan melakukan bit-bijaksana ATAU dari bendera FLASH yang ditentukan di bawah ini di 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

Payload

Item flash tidak memiliki payload. Jika KSCAMERA_EXTENDEDPROP_FLASH_ON_ADJUSTABLEPOWER atau KSCAMERA_EXTENDEDPROP_FLASH_AUTO_ADJUSTABLEPOWER ditentukan dalam bendera, parameter daya berada dalam rentang 0 hingga 100.

Item kompensasi pencahayaan

Ukuran

Ini adalah ukuran struktur KSCAMERA_PERFRAMESETTING_CAP_HEADER + ukuran struktur KSPROPERTY_STEPPING_LONG jika langkah-langkah didukung.

Jenis

Ini harus KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_COMPENSATION

Bendera

Ini berisi bendera yang tersedia. Bidang ini harus berisi bendera yang tersedia dengan melakukan bit-bijaksana ATAU dari bendera EVCOMP yang ditentukan di bawah ini di ksmedia.h atau bendera AUTO yang ditentukan di bawah ini di 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

Payload

Jika driver hanya mendukung mode otomatis, payload tidak disertakan. Jika tidak, payload rentang harus ditentukan dalam struktur KSPROPERTY_STEPPING_LONG . Kompensasi min dan maks EV adalah nilai kompensasi EV absolut dan ditentukan dari KSPROPERTY_STEPPING_LONG. Bounds.SignedMinimum dan KSPROPERTY_STEPPING_LONG. Bounds.SignedMaximum. Langkah kompensasi EV ditentukan oleh ukuran langkah bendera langkah EVCOMP terendah yang sesuai dengan float (misalnya, 1/6 untuk KSCAMERA_EXTENDEDPROP_EVCOMP_SIXTHSTEP).

Item kecepatan ISO

Ukuran

Ini adalah ukuran struktur KSCAMERA_PERFRAMESETTING_CAP_HEADER + ukuran struktur KSPROPERTY_STEPPING_LONG jika mode manual didukung.

Jenis

Ini harus KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_ISO

Bendera

Bidang ini berisi bendera yang tersedia. Bidang ini harus berisi bendera yang tersedia dengan melakukan bit-bijaksana ATAU dari bendera ISO yang ditentukan di bawah ini dalam ksmedia.h dan ksmedia_phone.h. Jika ISO per bingkai didukung, driver harus mendukung setidaknya salah satu kemampuan berikut, ISO_AUTO dan ISO_MANUAL, di mana ISO_AUTO wajib. Jika ISO_MANUAL diiklankan, driver harus mengiklankan lebih lanjut kecepatan ISO yang didukung min\max\step dalam KSPROPERTY_STEPPING_LONG. ISO_MANUAL harus didukung jika ISO manual diinginkan.

#define KSCAMERA_EXTENDEDPROP_ISO_MANUAL    0x0080000000000000
#define KSCAMERA_EXTENDEDPROP_ISO_AUTO      0x0000000000000001

Payload

Jika driver hanya mendukung mode otomatis, payload tidak disertakan. Jika tidak, payload rentang harus ditentukan dalam struktur KSPROPERTY_STEPPING_LONG . Kecepatan ISO min, maks, dan langkah ditentukan dari KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMinimum, KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMaximum, dan KSPROPERTY_STEPPING_LONG. Bounds.SteppingDelta. Driver yang mendukung ISO manual bilangan bulat hanya boleh mengiklankan ISO_MANUAL dengan rentang kecepatan ISO yang didukung (min/maks/langkah). Preset ISO_Xxx numerik tidak didukung untuk ISO per bingkai.

Item fokus

Ukuran

Ini adalah ukuran struktur KSCAMERA_PERFRAMESETTING_CAP_HEADER + ukuran struktur KSPROPERTY_STEPPING_LONG .

Jenis

Ini harus KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_FOCUS.

Bendera

Ini berisi bendera yang tersedia. Bidang ini harus diatur dengan melakukan bit-bijaksana ATAU dari bendera yang ditentukan di bawah ini di ksmedis.h.

#define KSCAMERA_PERFRAMESETTING_MANUAL     0x0000000200000000

Payload

Payload rentang harus ditentukan dalam struktur KSPROPERTY_STEPPING_LONG. Posisi min, maks, dan langkah lensa ditentukan dari KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMinimum, KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMaximum, dan KSPROPERTY_STEPPING_LONG. SteppingDelta. Perilaku fokus pengaturan per bingkai dan cara kerjanya dengan pengaturan fokus global didefinisikan sebagai berikut.

  1. Posisi lensa lengket; tetapi perintah fokus tidak. Jika fokus otomatis berkelanjutan (CAF) telah dipilih dalam pengaturan global, operasi CAF hanya ditimpa untuk bingkai yang ditentukan dan CAF kemungkinan akan memindahkan posisi lensa (kemungkinan setelah pembersihan penuh) setelah diberikan fokus manual.

  2. Pengaturan fokus global selalu diasumsikan kecuali secara eksplisit ditimpa dengan pengaturan manual di PFS.

  3. AF global adalah satu bidikan dan hanya berlaku untuk bingkai pertama, jika tidak ada penimpaan manual yang ditentukan.

  4. CAF global berlaku untuk semua bingkai kecuali secara eksplisit ditimpa oleh PFS.

  5. Pengaturan fokus manual global tidak kembali setelah PFS manual (posisi lensa tetap ada).

Jenis gambar konfirmasi

Ukuran

Ini adalah ukuran struktur KSCAMERA_PERFRAMESETTING_CAP_HEADER .

Jenis

Ini harus KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_PHOTOCONFIRMATION.

Bendera

Bidang bendera tidak digunakan.

Payload

Tidak ada payload untuk item ini.

Item properti kustom

Ukuran

Ini adalah ukuran struktur KSCAMERA_PERFRAMESETTING_CAP_HEADER + ukuran GUID.

Jenis

Ini harus KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_CUSTOM.

Bendera

Bidang bendera tidak digunakan.

Payload

Ini adalah GUID properti kustom.

Persyaratan

Header

Ksmedia.h