เอกสารนี้ระบุ API ของหน่วยส่วนขยาย (XU) ของคลาสวิดีโอ USB ที่รองรับ ซึ่งระบบการประชุม Google Meet ใช้เพื่อเปิดใช้ฟีเจอร์กล้องอัจฉริยะ จุดประสงค์ของการสร้างข้อกำหนดนี้คือเพื่อมีอิทธิพลต่อแนวทางปฏิบัติในการเปิดใช้ ฟีเจอร์เหล่านี้ และเพื่อให้พาร์ทเนอร์ของเราสามารถปรับขนาดและทดสอบแบบอะซิงโครนัสได้ดียิ่งขึ้น
ดูรายละเอียดเกี่ยวกับการเปลี่ยนแปลงล่าสุดในเอกสารนี้ได้ที่บันทึกประจำรุ่น
สถานที่ทดสอบ
เรามีเครื่องมือทดสอบในอุปกรณ์ Chromebox วิดีโอคอนเฟอเรนซ์ที่ตั้งค่าในโหมดนักพัฒนาแอปเพื่อช่วยพาร์ทเนอร์ตรวจสอบการปฏิบัติตามข้อกำหนดนี้
เปิดใช้
การเขียนไปยังระบบไฟล์
เพิ่มบรรทัดต่อไปนี้ลงใน
/etc/chrome_dev.conf
--enable-logging
--log-level=0
รีสตาร์ทอุปกรณ์ เชื่อมต่อกล้องและคีย์บอร์ด USB กด Ctrl-Alt-X
แล้วระบบจะตรวจสอบการปฏิบัติตามข้อกำหนดของกล้องที่ใช้งานอยู่และบันทึกลงใน /var/log/chrome/chrome
(หากใช้รูปภาพที่ลงชื่อแล้วจะเป็น /home/chronos/user/log/chrome
)
รูปแบบ Little-Endian
USB เป็นมาตรฐานแบบ Little-Endian ในเอกสารนี้
- ตัวเลขแบบหลายไบต์จะปรากฏเป็นแบบ Big-Endian (และส่งเป็นแบบ Little-Endian)
- อาร์เรย์ไบต์อยู่ในเลย์เอาต์หน่วยความจำแบบ Little-Endian
เช่น 0x12345678
เหมือนกับ [0x78, 0x56, 0x34, 0x12]
GUID ของหน่วยส่วนขยาย
หน่วยส่วนขยายที่รองรับข้อกำหนดการควบคุม XU ของ Meet นี้ ต้องใช้ GUID นี้
หน่วยการขยาย | GUID |
---|---|
Peripheral Control XU | {74D7E924-49C9-4A45-98A3-8A9F60061E83} |
ตัวเลือก XU ของการควบคุมอุปกรณ์ต่อพ่วง
ซึ่งเป็นตัวเลือก XU ของการควบคุมอุปกรณ์ต่อพ่วงที่กำหนด
ตัวเลือกการควบคุม | ค่า |
---|---|
GOOGXU_FRAME_STRATEGY |
0x01 |
GOOGXU_REFRAME |
0x02 |
GOOGXU_OCCUPANCY_COUNTING_TOGGLE |
0x03 |
GOOGXU_OCCUPANCY_COUNTING_READ |
0x04 |
GOOGXU_STATUS_INFO |
0x05 |
GOOGXU_STATUS_RESET |
0x06 |
GOOGXU_PRESETS |
0x07 |
GOOGXU_PAN_TILT_ABSOLUTE |
0x08 |
GOOGXU_PAN_TILT_RELATIVE |
0x09 |
GOOGXU_SATELLITE_INFO |
0x0A |
ประเภทคำขอควบคุม
ประเภทคำขอควบคุมมีการกำหนดไว้ในบทที่ 4: คำขอเฉพาะคลาสของ ข้อกำหนดคลาส UVC 1.5
การดำเนินการ | การควบคุม UVC |
---|---|
GET |
GET_CUR , GET_MIN , GET_MAX , GET_RES , GET_LEN , GET_INFO , GET_DEF |
SET |
SET_CUR |
โหมดกล้อง
โหมดกล้องใช้เพื่อจัดเฟรมบุคคลในห้องประชุมและเป็นtuple
ของ
- กลยุทธ์ (มุมมองกล้อง)
- อคติ (ผู้พูดหรือห้อง)
- ฟีด (สตรีมเดียวหรือหลายสตรีม)
มิติข้อมูลแต่ละรายการสามารถใช้ค่าที่อธิบายไว้ในส่วนต่อไปนี้
กลยุทธ์การจัดเฟรมอัตโนมัติ
ในโหมดการจัดเฟรมอัตโนมัติทั้งหมดนอกเหนือจาก "ไม่มี" การเลื่อน เอียง และซูมด้วยตนเองจะ ปิดใช้
ฟีเจอร์ | คำอธิบาย |
---|---|
ไม่มี | กล้องจะปิดใช้ฟีเจอร์การจัดเฟรมอัจฉริยะทั้งหมดและอนุญาตให้ไคลเอ็นต์ควบคุมค่า PTZ ได้อย่างอิสระ หมายเหตุ: เมื่อตั้งค่าเป็นกลยุทธ์การจัดเฟรมนี้ กล้องจะยังคงอยู่ในตำแหน่งการแพน การเอียง และการซูมปัจจุบัน |
การจัดให้คนอยู่ในเฟรมอย่างต่อเนื่อง (CAZ) | กล้องจะติดตามผู้คนในห้องอย่างต่อเนื่องโดยอิงตามอคติในการจัดเฟรม |
เฟรมแยก | กล้องจะสร้างมุมมองวิดีโอตามจำนวนที่ต้องการ โดยอิงตามตัวเลือกฟีดการจัดเฟรมอัตโนมัติ ระบบจะจัดเรียงฟีดเป็นไทล์ในสตรีมเดียวหรือสร้างสตรีมวิดีโอแยกต่างหากสำหรับแต่ละมุมมอง |
มุมมองแบบไดนามิก | กล้องอย่างน้อย 1 ตัวจะพยายามแสดงมุมมองที่ดีที่สุดของห้อง โดยจะตัดสินใจได้ว่าจะรวมฟีดหลายรายการเป็นฟีดเดียวหรือไม่ หรือจะแสดงมุมมอง "น่าสนใจ" ของห้องปัจจุบันหรือไม่ มุมมองนี้มีจุดประสงค์เพื่อแสดงมุมมองที่เท่าเทียมที่สุดของผู้เข้าร่วมในห้องต่อการโทร |
ผู้ให้บริการที่ผู้ขายต้องการให้ใช้ | ระบบกล้องใช้ตรรกะของตัวเองเพื่อกำหนดมุมมองที่ดีที่สุดของห้อง กลยุทธ์การวางกรอบพื้นฐานอาจเปลี่ยนแปลงได้โดยไม่ต้องแจ้งให้ทราบ เช่น หากจำนวนคนในห้องเปลี่ยนไป หรือกล้องตรวจจับความแตกต่างระหว่างการประชุม "ผู้นำเสนอที่มีความสำคัญสูง" กับการประชุม "การทำงานร่วมกัน" ได้ ระบบจะปรับหรือเปลี่ยนกลยุทธ์การจัดเฟรมได้อย่างอิสระตามที่เห็นสมควรในโหมดนี้ เมื่ออยู่ในโหมดนี้ การเรียกใช้ getCur ควรแสดงผล VENDOR_PREFERRED และไม่ใช่โหมดการจัดเฟรมพื้นฐานที่ระบบเลือก |
อคติในการจัดเฟรมอัตโนมัติ
ฟีเจอร์ | คำอธิบาย |
---|---|
ผู้บรรยายที่มีความสำคัญสูง (การติดตามผู้พูด) | กล้องจะพยายามจัดเฟรมบุคคลที่กำลังพูดในห้องให้ดีที่สุด ในสถานการณ์นี้ กล้องควรโฟกัสไปที่ผู้นำเสนอ เช่น CEO ในห้องประชุมกำลังนำเสนอ |
การทำงานร่วมกัน (การติดตามห้อง) |
กล้องจะพยายามจัดเฟรมผู้เข้าร่วมทุกคนในห้องให้ดีที่สุด ในกรณีนี้ กล้องควรปฏิบัติต่อผู้เข้าร่วมทุกคนอย่างเท่าเทียม |
ฟีดการจัดเฟรมอัตโนมัติ
ฟีเจอร์ | คำอธิบาย |
---|---|
สตรีมเดียว | กล้องจะส่งสตรีมวิดีโอรายการเดียวไปยังอุปกรณ์โฮสต์ |
การสตรีมหลายรายการพร้อมกัน (อยู่ระหว่างดำเนินการ) |
กล้องจะแยกสตรีมและสร้างสตรีมวิดีโอหลายรายการเพื่อส่งไปยังโฮสต์ หมายเหตุ: ข้อกำหนดทั้งหมดและลักษณะการทำงานที่คาดไว้ของฟีเจอร์นี้อยู่ระหว่างการตรวจสอบและไม่รองรับจนกว่าจะมีการแก้ไขเอกสารนี้ในภายหลัง |
ค่าบิตแมปของโหมดการจัดเฟรมอัตโนมัติ
ยกเว้นสถานะเริ่มต้นของ None
ซึ่งแสดงด้วยอาร์เรย์ไบต์ว่าง
บิตแต่ละบิตในอาร์เรย์ไบต์จะแสดงโหมดกล้องที่แตกต่างกัน ซึ่งเป็น
การผสมผสานที่เฉพาะเจาะจงของกลยุทธ์การจัดเฟรมอัตโนมัติ อคติในการจัดเฟรมอัตโนมัติ และฟีดการจัดเฟรมอัตโนมัติ
ฟีดการจัดเฟรมอัตโนมัติ | CAZ | การแบ่งเฟรม | ไดนามิก | ผู้ให้บริการที่ผู้ขายต้องการให้ใช้ | อคติในการจัดเฟรมอัตโนมัติ |
---|---|---|---|---|---|
สตรีมเดียว | D1 D2 |
- D3 |
D5 D7 |
D9 (ลำโพงหรือห้อง) | ลำโพง ห้อง |
การสตรีมหลายรายการ | - - |
- ง4 |
D6 D8 |
- | ลำโพง ห้อง |
โหมดเฟรม | ค่าโหมดเฟรม (ไบต์ที่มีนัยสำคัญน้อยที่สุด) |
---|---|
None |
0x0000 |
CAZ, Speaker, Single-Stream |
0x0001 |
CAZ, Room, Single-Stream |
0x0002 |
Split-Frame, Room, Single-Stream |
0x0004 |
Split-Frame, Room, Multi-Stream |
0x0008 |
Dynamic, Speaker, Single-Stream |
0x0010 |
Dynamic, Speaker, Multi-Stream |
0x0020 |
Dynamic, Room, Single-Stream |
0x0040 |
Dynamic, Room, Multi-Stream |
0x0080 |
Vendor-preferred, Single-Stream |
0x0100 |
ควบคุม: GOOGXU_FRAME_STRATEGY
ตัวควบคุมนี้ใช้เพื่อรับหรือตั้งค่าโหมดการจัดเฟรมของกล้องตามที่ระบุไว้ในค่าบิตแมปของโหมดการจัดเฟรมอัตโนมัติ แต่ละโหมดจะแสดงเป็น
บิตในบิตแมปของโหมดนั้นๆ คำสั่ง GET_RES
จะแสดงผลบิตมาสก์ยาว 8 ไบต์
ที่มีค่าเป็น 0 หรือ 1 เพื่อระบุว่าอุปกรณ์ไม่รองรับหรือรองรับฟีเจอร์
ตามลำดับ เช่น หากกล้อง
รองรับ CAZ, Speaker, Single-Stream
, Split-Frame, Room, Single-Stream
และ
Dynamic, Room, Multi-Stream
แต่ไม่รองรับโหมดอื่นๆ GET_RES
ควรแสดง
0x000000000000000085 (เช่น 0b10000101
ตามด้วยไบต์ 0 จำนวน 7 ไบต์)
คำสั่ง SET_CUR
ใช้เพื่อส่งบิตแมปเพื่อบอกกล้องว่าควรเปิดใช้โหมดกล้องSINGLEโหมดใด
ตัวเลือกการควบคุม | 1 | |||
---|---|---|---|---|
การดำเนินการ | GET / SET |
|||
wLength |
8 | |||
ออฟเซ็ต | ช่อง | ขนาด | ค่า | คำอธิบาย |
0 | bActiveMode |
8 | บิตแมป | ตั้งค่าหรือกลับไปใช้โหมดกล้องที่ใช้งานอยู่ |
หมายเหตุ:
|
ลักษณะการทำงานของคำขอประเภทที่รองรับมีดังนี้
ออฟเซ็ต | 0 | คำอธิบาย |
---|---|---|
GET_CUR |
รับโหมดกล้องจัดเฟรมอัตโนมัติ | |
GET_MIN |
ต้องใช้กล้อง | |
GET_MAX |
ต้องใช้กล้อง | |
GET_RES |
แสดงผลบิตมาสก์ยาว 8 ไบต์ของโหมดกล้องที่รองรับ | |
GET_LEN |
0x0008 | ความยาว |
GET_INFO |
0x0B | อัปเดตอัตโนมัติ / เขียน / อ่าน |
GET_DEF |
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |
ค่าเริ่มต้น |
SET_CUR |
ตั้งค่าโหมดกล้องการจัดเฟรมอัตโนมัติ |
ควบคุม: GOOGXU_REFRAME
ตัวควบคุมนี้ใช้เพื่อทริกเกอร์การจัดเฟรมแบบครั้งเดียว หรือที่เรียกว่า OTAZ เมื่อ OTAZ ทริกเกอร์ มุมมองกล้องจะเปลี่ยนเป็นมุมมองที่ดีที่สุดของห้อง หลังจากนั้น ไคลเอ็นต์จะควบคุมค่า PTZ ได้อีกครั้ง หากไม่รองรับการจัดเฟรมแบบครั้งเดียว กล้องก็ไม่ควรกำหนดการควบคุมนี้
ตัวเลือกการควบคุม | 2 | |||
---|---|---|---|---|
การดำเนินการ | SET |
|||
wLength |
1 | |||
ออฟเซ็ต | ช่อง | ขนาด | ค่า | คำอธิบาย |
0 | bReframe |
1 | ตัวเลข | 0x01 Execute Reframe Request |
ลักษณะการทำงานของคำขอประเภทที่รองรับมีดังนี้
ออฟเซ็ต | 0 | คำอธิบาย |
---|---|---|
GET_MIN |
0x00 | |
GET_MAX |
0x01 | |
GET_RES |
0x01 | |
GET_LEN |
0x0001 | |
GET_INFO |
0x02 | เขียนเท่านั้น |
GET_DEF |
0x00 | |
SET_CUR |
ตั้งค่าคำขอสำหรับการจัดเฟรมแบบครั้งเดียว |
การนับจำนวนผู้เข้าพัก
การนับจำนวนผู้เข้าใช้ (OC) เป็นฟีเจอร์ที่ใช้ในการประมาณจำนวนผู้เข้าร่วม ในห้องประชุม แม้ว่ากล้องจะแสดงมุมมองที่ครอบตัดไว้ก็ตาม
ตารางนี้แสดงลักษณะการทำงานที่คาดไว้ของการควบคุม OC และการโต้ตอบ กับสตรีมวิดีโอของกล้องและไฟ LED ของกล้อง
เมื่อการนับการเข้าใช้ | และสตรีมวิดีโอจากกล้องคือ | ไฟ LED ของกล้องควรมีลักษณะดังนี้ | GOOGXU_OCCUPANCY_COUNTING_TOGGLE GET_CUR ควรเป็น |
GOOGXU_OCCUPANCY_COUNTING_READ GET_CUR ควรเป็น |
---|---|---|---|---|
เปิดอยู่ | ไม่ได้สตรีมและไม่ได้ปิดเสียง | เปิด | 0x01 |
จำนวนบุคคลในขอบเขตการมองเห็นทั้งหมดของกล้อง |
เปิดอยู่ | สตรีมมิง | เปิด | 0x01 |
จำนวนบุคคลในขอบเขตการมองเห็นทั้งหมดของกล้อง |
เปิดอยู่ | ปิดเสียง | ปิด | 0x01 |
ปิดอยู่ |
ปิดอยู่ | ไม่ได้สตรีมและไม่ได้ปิดเสียง | ปิด | 0x00 |
ปิดอยู่ |
ปิดอยู่ | สตรีมมิง | เปิด | 0x00 |
ปิดอยู่ |
ปิดอยู่ | ปิดเสียง | ปิด | 0x00 |
ปิดอยู่ |
ควบคุม: GOOGXU_OCCUPANCY_COUNTING_TOGGLE
การควบคุมนี้ใช้เพื่อเปิดหรือปิดใช้ฟีเจอร์เพื่อนับผู้ที่อยู่ในห้อง การตั้งค่าเป็น 0 (ศูนย์) จะเป็นการปิดใช้ฟีเจอร์นี้ และการตั้งค่าเป็น 1 (หนึ่ง) จะเป็นการเปิดใช้ฟีเจอร์นี้ หากไม่รองรับฟีเจอร์นี้ กล้องไม่ควรกำหนดการควบคุมนี้
ตัวเลือกการควบคุม | 3 | |||
---|---|---|---|---|
การดำเนินการ | GET / SET |
|||
wLength |
1 | |||
ออฟเซ็ต | ช่อง | ขนาด | ค่า | คำอธิบาย |
0 | bOccupancy |
1 | บูลีน | ตั้งค่าฟังก์ชันการนับการเข้าใช้ 0x00 ปิดฟังก์ชัน 0x01 เปิดฟังก์ชัน |
ลักษณะการทำงานของคำขอประเภทที่รองรับมีดังนี้
ออฟเซ็ต | 0 | คำอธิบาย |
---|---|---|
GET_CUR |
แสดงผลหากเปิดการนับการเข้าใช้ | |
GET_MIN |
0x00 | |
GET_MAX |
0x01 | |
GET_RES |
0x01 | |
GET_LEN |
0x0001 | |
GET_INFO |
0x0B | อัปเดตอัตโนมัติ / เขียน / อ่าน |
GET_DEF |
0x00 | |
SET_CUR |
เปิดหรือปิดใช้ฟีเจอร์การนับการเข้าใช้ |
ควบคุม: GOOGXU_OCCUPANCY_COUNTING_READ
การควบคุมนี้ใช้เพื่ออ่านจำนวนผู้เข้าร่วมในห้องที่กล้องรายงานเมื่อเปิดใช้การนับการเข้าใช้ เมื่อปิดใช้การนับจำนวนผู้เข้าชม กล้องควรปิดใช้การควบคุมนี้ หากไม่รองรับการนับจำนวนผู้เข้าใช้ กล้องก็ไม่ควรกำหนดการควบคุมนี้
ตัวเลือกการควบคุม | 4 | |||
---|---|---|---|---|
การดำเนินการ | GET |
|||
wLength |
2 | |||
ออฟเซ็ต | ช่อง | ขนาด | ค่า | คำอธิบาย |
0 | bNumPeople |
2 | ตัวเลข | จำนวนผู้ที่ตรวจพบในมุมมอง (อ่านอย่างเดียว) |
ลักษณะการทำงานของคำขอประเภทที่รองรับมีดังนี้
ออฟเซ็ต | 0 | คำอธิบาย |
---|---|---|
GET_CUR |
แสดงผลจำนวนผู้โดยสารที่ตรวจพบ | |
GET_MIN |
0x0000 | |
GET_MAX |
0x00FF | |
GET_RES |
0x0001 | |
GET_LEN |
0x0002 | |
GET_INFO |
0x09 | อัปเดตอัตโนมัติ / อ่าน |
GET_DEF |
0x0000 |
การตรวจวัดระยะไกลและการวินิจฉัยอุปกรณ์
การควบคุมเหล่านี้มีไว้เพื่อส่งเสริมแนวทางปฏิบัติในการแก้ไขข้อบกพร่องที่ดีขึ้นด้วย ฮาร์ดแวร์ Meet และโดยปกติแล้วจะไม่แสดงต่อผู้ใช้
ควบคุม: GOOGXU_STATUS_INFO
การควบคุมนี้ใช้เพื่อค้นหาข้อมูลจากกล้องโฮสต์เพื่อแชร์กับ พาร์ทเนอร์สำหรับการแก้ไขข้อบกพร่อง
ตัวเลือกการควบคุม | 5 | |||
---|---|---|---|---|
การดำเนินการ | GET |
|||
wLength |
8 | |||
ออฟเซ็ต | ช่อง | ขนาด | ค่า | คำอธิบาย |
0 | bNumCameras |
1 | ตัวเลข | จำนวนดาวเทียมเพิ่มเติมที่เชื่อมต่อกับกล้องหลักซึ่งอาจส่งผลต่อสตรีมกล้องที่ส่งคืนไปยังโฮสต์ |
1 | bIsMoving |
1 | บิตแมป | 0 เมื่อกล้องไม่ได้ใช้งาน และค่าที่ไม่ใช่ 0 เมื่อค่า PTZ เปลี่ยนแปลง ผู้ให้บริการสามารถแมปแกนหรือมอเตอร์ต่างๆ กับบิตต่างๆ ได้อย่างอิสระ |
2 | Undef |
6 | Undef | จะขยายการให้บริการในอนาคต |
ลักษณะการทำงานของคำขอประเภทที่รองรับมีดังนี้
ออฟเซ็ต | 0 | 1 | 2 | คำอธิบาย |
---|---|---|---|---|
GET_MIN |
0x00 | 0x00 | 0x00 0x00 0x00 0x00 0x00 0x00 |
|
GET_MAX |
0xFF | 0xFF | 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF |
|
GET_RES |
0x01 | 0x01 | 0x01 0x00 0x00 0x00 0x00 0x00 |
|
GET_LEN |
0x08 | 0x00 | 0x0008 | |
GET_INFO |
0x09 | อัปเดตอัตโนมัติ / อ่าน | ||
GET_DEF |
0x00 | 0x00 | 0x00 0x00 0x00 0x00 0x00 0x00 |
ควบคุม: GOOGXU_SATELLITE_INFO
การควบคุมนี้ใช้เพื่อค้นหาอุปกรณ์ดาวเทียมที่เชื่อมต่อกับระบบกล้องนี้
ตัวเลือกการควบคุม | 0x0A | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
การดำเนินการ | GET |
|||||||||||
wLength |
20 | |||||||||||
ออฟเซ็ต | ช่อง | ขนาด | ค่า | คำอธิบาย | ||||||||
0 | bSatelliteList |
20 | บิตแมป | รายการประเภทดาวเทียมที่เชื่อมต่อกับระบบ ประกอบด้วยช่อง 5 ไบต์แยกกัน 4 ช่อง โดยแต่ละช่องจะอธิบายได้ดังนี้
|
ลักษณะการทำงานของคำขอประเภทที่รองรับมีดังนี้
ออฟเซ็ต | 0 | คำอธิบาย |
---|---|---|
GET_MIN |
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |
|
GET_MAX |
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF |
|
GET_RES |
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |
|
GET_LEN |
0x14 | 20 ไบต์ |
GET_INFO |
0x09 | อัปเดตอัตโนมัติ / อ่าน |
GET_DEF |
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |
ควบคุม: GOOGXU_STATUS_RESET
การควบคุมนี้ใช้เพื่อส่งคำขอรีเซ็ตไปยังกล้อง การตั้งค่าเป็น หนึ่ง (1) จะเป็นการขอให้กล้องรีเซ็ต กล้องจะแสดงค่า 0 หากไม่มีคำขอให้รีสตาร์ทกล้องตั้งแต่รีเซ็ตครั้งล่าสุด และแสดงค่า 1 หากกำลังรีเซ็ต การรีเซ็ตต้องทริกเกอร์การรีบูตกล้อง (จำเป็นสำหรับอุปกรณ์ที่ใช้พลังงานในตัวซึ่งการบังคับยกเลิกการเชื่อมต่อ USB เพื่อจำลองการเสียบร้อนนั้นไม่มีประโยชน์)
ตัวเลือกการควบคุม | 6 | |||
---|---|---|---|---|
การดำเนินการ | GET / SET |
|||
wLength |
1 | |||
ออฟเซ็ต | ช่อง | ขนาด | ค่า | คำอธิบาย |
0 | bResetRequest |
1 | บูลีน | ส่งคำขอรีเซ็ตไปยังโฮสต์และกล้องที่เชื่อมต่อ แสดง 0x01 หากมีการออกคำขอรีเซ็ตตั้งแต่การรีเซ็ตครั้งล่าสุด หรือ 0x00 ในกรณีอื่นๆ |
ลักษณะการทำงานของคำขอประเภทที่รองรับมีดังนี้
ออฟเซ็ต | 0 | คำอธิบาย |
---|---|---|
GET_MIN |
0x00 | |
GET_MAX |
0x01 | |
GET_RES |
0x01 | |
GET_LEN |
0x0001 | |
GET_INFO |
0x03 | เขียน / อ่าน |
GET_DEF |
0x00 |
ค่าที่กำหนดล่วงหน้าของ PTZ
ใช้เพื่อกำหนดค่าและกู้คืนช่องของมุมมองของกล้องไปยังตำแหน่งที่ตั้งไว้ล่วงหน้า
ควบคุม: GOOGXU_PRESETS
การควบคุมนี้ใช้เพื่อตั้งค่าการเลื่อน การเอียง และการซูม (PTZ) ของกล้องเป็นการกำหนดค่าที่กำหนดไว้ล่วงหน้า
Preset Action
ใช้เพื่อระบุการทำงานที่ต้องการของคำสั่ง การตั้งค่า
เป็น 1 (หนึ่ง) ใช้เพื่อแมปค่าการแพน การเอียง และการซูมปัจจุบันกับ
ดัชนีค่าที่กำหนดไว้ล่วงหน้า การตั้งค่าเป็น 2 ควรเปลี่ยนการแพน
การเอียง และการซูมของกล้องไปยังค่าที่แมปไว้ก่อนหน้านี้สำหรับดัชนีที่ระบุ
หรือพิกัดเริ่มต้นจากโรงงาน (หากไม่ได้แมปไว้ก่อนหน้านี้) การตั้งค่า
เป็น 3 จะรีเซ็ตดัชนีเป็นพิกัดเริ่มต้นจากโรงงาน
Preset Index
ใช้เพื่อระบุพิกัด PTZ ที่แมปกับดัชนี
Preset index
ที่มีค่าเป็น 0 จะแมปกับพิกัดเริ่มต้น และควรเป็นตำแหน่งเริ่มต้นของกล้องเมื่อเปิดเครื่องเมื่อตั้งค่า GOOGXU_FRAME_STRATEGY
เป็น NONE
ตัวเลือกการควบคุม | 7 | |||
---|---|---|---|---|
การดำเนินการ | SET |
|||
wLength |
2 | |||
ออฟเซ็ต | ช่อง | ขนาด | ค่า | คำอธิบาย |
0 | bPresetAction |
1 | ตัวเลข | 0x01: บันทึกค่าที่กำหนดล่วงหน้า 0x02: กู้คืนค่าที่กำหนดล่วงหน้า 0x03: รีเซ็ตค่าที่กำหนดล่วงหน้าเป็นค่าเริ่มต้น (ค่าเริ่มต้นควรเป็นพิกัดที่กำหนดไว้ล่วงหน้าที่ถูกต้อง) |
1 | bPresetIndex |
1 | ตัวเลข | ดัชนีค่าที่กำหนดล่วงหน้าที่ใช้งานอยู่ 0~N-1 โดยที่ 0 ถือเป็นตำแหน่งเริ่มต้นของกล้องเริ่มต้น และ N-1 เป็นค่าคงที่ที่ผู้ให้บริการกำหนดสำหรับจำนวนค่าที่กำหนดล่วงหน้า |
ลักษณะการทำงานของคำขอประเภทที่รองรับมีดังนี้
ออฟเซ็ต | 0 | 1 | คำอธิบาย |
---|---|---|---|
GET_MIN |
0x00 | 0x00 | |
GET_MAX |
0x03 | N-1 | รองรับค่าที่กำหนดล่วงหน้าสูงสุด N |
GET_RES |
0x01 | 0x01 | |
GET_LEN |
0x02 | 0x00 | 0x0002 |
GET_INFO |
0x02 | เขียนเท่านั้น | |
GET_DEF |
0x00 | 0x00 |
เลื่อนและเอียงการทำแผนที่เสริม
กล้องบางรุ่นมีส่วนประกอบพิเศษ เช่น มอเตอร์สำหรับกล้องแบบกลไก หรือความสามารถในการซูม/หมุน/เอียงแบบดิจิทัล สำหรับกล้องเหล่านี้ ให้ใช้การควบคุม V4L2 มาตรฐานสำหรับการแพน การเอียง และการซูม
การควบคุม: GOOGXU_PAN_TILT_ABSOLUTE
(เลิกใช้งานแล้ว)
การควบคุมการจับคู่เสริมสำหรับการเลื่อนและเอียงได้รับการกำหนดไว้ในบทที่ 4: คำขอเฉพาะคลาส ส่วนที่ 4.2.2.1.14 การควบคุมการเลื่อน/เอียง (สัมบูรณ์) ของข้อกำหนดคลาส UVC 1.5
การควบคุม: GOOGXU_PAN_TILT_RELATIVE
(เลิกใช้งานแล้ว)
การควบคุมการแมปเสริมสำหรับการเลื่อนและเอียงได้รับการกำหนดไว้ในบทที่ 4: คำขอเฉพาะคลาส ส่วนที่ 4.2.2.1.15 การควบคุมการเลื่อนและเอียง (สัมพัทธ์) ของข้อกำหนดคลาส UVC 1.5
หัวข้อที่เกี่ยวข้อง
- ไดรเวอร์ Linux USB Video Class (UVC)
- ชุดเอกสาร Video Class v1.5
- ข้อกำหนดเกี่ยวกับ USB 2.0
- ศูนย์ช่วยเหลือของฮาร์ดแวร์ของ Google Meet
- ส่วนฮาร์ดแวร์ Google Meet ในศูนย์ช่วยเหลือสำหรับผู้ดูแลระบบ Google Workspace
บันทึกประจำรุ่น
บันทึกประจำรุ่นเหล่านี้ระบุการปรับปรุงและฟีเจอร์ใหม่ในเอกสารนี้แต่ละฉบับ
13 ส.ค. 2025
- รายละเอียดสถานที่ทดสอบที่ถูกต้อง
27 ม.ค. 2025
- เพิ่มกลยุทธ์การจัดเฟรม
Vendor-preferred
ไปยังGOOGXU_FRAME_STRATEGY
- เพิ่มการควบคุมใหม่:
GOOGXU_SATELLITE_INFO
21 พ.ค. 2024
- นำสคริปต์ทดสอบออกเพื่อใช้เครื่องมือทดสอบ CfM ใหม่
ซึ่งใช้
SET
และยังรองรับการตรวจสอบกล้อง Series One ด้วย - ฟิลด์ที่อธิบายไว้ใน
GOOGXU_STATUS_INFO
- ปรับปรุงลักษณะการทำงานของ
GOOGXU_STATUS_RESET
- เลิกใช้งานแล้ว
GOOGXU_PAN_TILT_ABSOLUTE
และGOOGXU_PAN_TILT_RELATIVE
15 พฤศจิกายน 2023
อัปเดตสคริปต์ทดสอบเพื่อตรวจสอบและตีความโหมดการจัดเฟรมที่ถูกต้อง การแสดงไบต์ ที่ชัดเจน
21 กรกฎาคม 2023
เพิ่มสคริปต์ทดสอบเพื่อให้พาร์ทเนอร์ตรวจสอบการติดตั้งใช้งานเพื่อให้เป็นไปตามข้อกำหนดนี้
25 พฤษภาคม 2023
แก้ไข
GOOGXU_PRESETS
หมายเหตุเกี่ยวกับจำนวนค่าที่กำหนดล่วงหน้า ควรเป็น N ไม่ใช่ N-1
17 เมษายน 2023
รุ่นแรก