Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Topik ini menyediakan panduan implementasi untuk mengonfigurasi DShow Bridge untuk kamera dan perangkat yang mematuhi spesifikasi USB Video Class (UVC). Platform ini menggunakan Microsoft OS Descriptors dari standar bus USB untuk mengonfigurasi DShow Bridge. Deskriptor OS Properti Yang Diperluas adalah ekstensi deskriptor standar USB dan digunakan oleh perangkat USB untuk mengembalikan properti perangkat tertentu Windows yang tidak diaktifkan melalui spesifikasi standar.
Gambaran Umum
Tumpukan Microsoft Camera Capture terdiri dari tumpukan kerangka kerja warisan yang disebut DirectShow dan kerangka kerja modern yang disebut Multimedia Foundation. IHV dan OEM harus menulis komponen agar perangkat mereka memenuhi kedua alur.
DShow Bridge ditulis dengan tujuan untuk menjembatani alur DShow dengan platform Media Foundation. Ini memungkinkan driver universal sejati sehingga IHV dan OEM dapat menulis driver yang dapat berjalan dengan aplikasi MediaFoundation dan DShow pada Windows versi 1607 dan yang lebih baru. Dengan opsi DShow Bridge diaktifkan, aplikasi DShow dan aplikasi berbagi dapat menggunakan perangkat keras kamera yang sama secara bersamaan.
IHV dan OEM mungkin memerlukan pengecualian dari kebijakan yang mengatur alur DShow. Mitra dapat mengaktifkan fitur berikut menggunakan Deskriptor OS:
Memilih masuk atau keluar dari DShow Bridge: Perangkat dapat memilih masuk atau keluar dari Bridge ke alur yang lebih sesuai dengan kebutuhan mereka. Alur modern didokumentasikan lebih menyeluruh dan menggunakan fitur yang ditambahkan ke sistem operasi melalui beberapa rilis. Jalur warisan, yang sedang dalam mode pemeliharaan, mengalami keterlambatan.
Dekompresi MJPEG di FrameServer: FrameServer adalah layanan yang memvirtualisasi perangkat kamera. Ini memungkinkan pin dari perangkat dibagikan antara beberapa klien. Arsitektur yang memiliki dekompresor Media Foundation yang dioptimalkan dapat menggunakan fitur ini untuk mendekode MJPEG di FrameServer. Format media terjemahan yang tidak dikompresi (YUY2) ditawarkan ke beberapa aplikasi. Aliran hanya didekompresi sekali untuk beberapa klien yang mungkin. Ini meningkatkan performa aplikasi. Diagram berikut menunjukkan alur pengambilan kamera:
OEM dan IHV yang mengemas perangkat kamera USB mereka dapat menggunakan spesifikasi Deskriptor Fitur OS Properti Diperluas standar bus USB untuk mengonfigurasi DShow Bridge tanpa menggunakan perubahan file INF untuk driver UVC mereka.
Deskriptor OS memungkinkan perangkat untuk menentukan properti registri untuk perangkat USB atau perangkat komposit.
Untuk mengonfigurasi DShow Bridges menggunakan Deskriptor OS USB, perangkat lunak host harus membuat kunci registri berikut untuk setiap antarmuka perangkat USB:
HKLM\SYSTEM\CurrentControlSet\Enum\USB\<DeviceVID&PID>\<DeviceInstance>\Device Parameters
DWORD: EnableDshowRedirection
Nilai registri EnableDshowRedirection adalah nilai masker bit yang dapat digunakan untuk mengonfigurasi DShow Bridge seperti yang dijelaskan oleh tabel di bawah ini.
Masker bit | Deskripsi | Komentar |
---|---|---|
0x00000001 | Memilih DShow Bridge | 0 – Penolakan 1 – Ikut serta |
0x00000002 | Aktifkan decoding MJPEG sekali di FrameServer (lihat catatan di bawah) | 0 – Jenis media terkompresi MJPEG diekspos (tidak ada operasi) 1 – Mengekspos jenis media yang tidak dikompresi yang diterjemahkan dari MJPEG (YUY2) |
Nota
Mengaktifkan decoding MJPEG sekali di FrameServer dan kemudian format media terjemahan yang tidak dikompresi (YUY2) ditawarkan ke beberapa aplikasi. Aliran hanya didekompresi sekali untuk beberapa klien yang mungkin. Ini meningkatkan performa aplikasi.
Contoh Tata Letak
Contoh disertakan di bawah ini untuk spesifikasi berikut:
Spesifikasi deskriptor diperluas Microsoft OS 1.0
Spesifikasi deskriptor Microsoft OS 2.0
Spesifikasi deskriptor properti yang diperluas Microsoft OS versi 1.0
Deskriptor OS properti yang diperluas memiliki dua komponen
Bagian header berpanjang tetap
Satu atau beberapa bagian properti kustom dengan panjang variabel, yang mengikuti bagian header
Bagian Tajuk
Bagian header menjelaskan seluruh deskriptor properti yang diperluas, termasuk panjang total dan nomor versi.
Offset | Bidang | Ukuran (byte) | Nilai | Deskripsi |
---|---|---|---|---|
0 | dwLength | 4 | 0x0000004c | 76 desimal |
4 | bcdVersion | 2 | 0x0100 | Versi 1.0 |
6 | wIndex | 2 | 0x005 | Deskriptor properti OS yang diperluas |
8 | wCount | 2 | 0x0001 | Satu properti khusus |
Bagian Properti Kustom (1.0 deskriptor)
Deskriptor OS properti usb HID yang diperluas memiliki satu bagian properti kustom untuk membuat kunci registri DWORD EnableDshowRedirection .
Offset | Bidang | Ukuran (byte) | Nilai |
---|---|---|---|
0 | dwSize | 4 | 0x00000042 (66 byte untuk properti ini) |
4 | dwPropertyDataType | 4 | 0x00000004 (REG_DWORD_LITTLE_ENDIAN) |
8 | wPropertyNameLength | 2 | 0x0030 |
10 | bPropertyName | 48 | EnableDshowRedirection (string Unicode) |
58 | dwPropertyDataLength | 4 | 0x00000004 (Sizeof(DWORD)) |
62 | bPropertyData | 4 | 0x00000001 (DWORD (data)) |
Spesifikasi deskriptor Microsoft OS 2.0
Contoh ini menunjukkan bagaimana set deskriptor Microsoft 2.0 dapat digunakan untuk memberikan nilai registri DWORD tunggal dari EnableDshowRedirection yang berlaku untuk versi Windows.
Bagian Properti Kustom (2.0 deskriptor)
Offset | Bidang | Ukuran (byte) | Nilai |
---|---|---|---|
0 | wLength | 2 | Panjang dalam byte dari deskriptor ini |
4 | wDescriptorType | 2 | 0x00000004 (REG_DWORD_LITTLE_ENDIAN) |
8 | wPropertyDataType | 2 | 0x0030 |
wPropertyNameLength | 2 | ||
10 | Nama Properti | Variabel | Panjang nama properti |
58 | dwPropertyDataLength | 2 | Panjang data properti |
62 | PropertyData | Variabel | Data properti |
UCHAR Example2\_MSOS20DescriptorSetForFutureWindows\[0x48\] =
{
//
// Microsoft OS 2.0 Descriptor Set Header
//
0x0A, 0x00, // wLength - 12 bytes
0x00, 0x00, // MSOS20_SET_HEADER_DESCRIPTOR
0x00, 0x00, 0x0?, 0x06, // dwWindowsVersion – 0x06030000 for future Windows version
0x4A, 0x00, // wTotalLength – 72 bytes
//
// Microsoft OS 2.0 Registry Value Feature Descriptor
//
0x3E, 0x00, // wLength - 62 bytes
0x04, 0x00, // wDescriptorType – 5 for Registry Property
0x04, 0x00, // wPropertyDataType - 4 for REG_DWORD
0x30, 0x00, // wPropertyNameLength – 48 bytes
0x45, 0x00, 0x6E, 0x00, // Property Name - "EnableDshowRedirection"
0x61, 0x00, 0x62, 0x00,
0x6C, 0x00, 0x65, 0x00,
0x44, 0x00, 0x73, 0x00,
0x68, 0x00, 0x6F, 0x00,
0x77, 0x00, 0x52, 0x00,
0x65, 0x00, 0x64, 0x00,
0x69, 0x00, 0x72, 0x00,
0x65, 0x00, 0x63, 0x00,
0x74, 0x00, 0x69, 0x00,
0x6F, 0x00, 0x6E, 0x00,
0x00, 0x00, 0x00, 0x00,
0x04, 0x00, // wPropertyDataLength – 4 bytes
0x00, 0x00, 0x00, 0x00 // PropertyData – 0x00000003 (DShow Bridge is enabled and MJPEG is decoded in FrameServer)
}
Sumber daya
Deskriptor MICROSOFT OS untuk Perangkat USB