Google Meet हार्डवेयर यूएसबी वीडियो क्लास एक्सटेंशन यूनिट एपीआई

इस दस्तावेज़ में, यूएसबी वीडियो क्लास एक्सटेंशन यूनिट (एक्सयू) के उन एपीआई के बारे में बताया गया है जिनका इस्तेमाल Google Meet के कॉन्फ़्रेंस सिस्टम करते हैं. इससे, कैमरे की बेहतर सुविधाओं को चालू किया जा सकता है. इस स्पेसिफ़िकेशन को बनाने का मकसद, इन सुविधाओं को चालू करने के लिए तरीकों को बेहतर बनाना है. साथ ही, हमारे पार्टनर के लिए एसिंक्रोनस स्केलेबिलिटी और टेस्टिंग को बेहतर बनाना है.

इस दस्तावेज़ में हुए नए बदलावों के बारे में जानने के लिए, रिलीज़ नोट पर जाएं.

टेस्ट की सुविधा

हम पार्टनर को इस स्पेसिफ़िकेशन के मुताबिक काम करने की पुष्टि करने में मदद करते हैं. इसके लिए, हम डेवलपर मोड में सेट किए गए Chromebox for Meetings डिवाइसों में टेस्ट की सुविधा उपलब्ध कराते हैं. फ़ाइल सिस्टम में लिखने की सुविधा चालू करें. /etc/chrome_dev.conf में ये लाइनें जोड़ें:

--enable-logging
--log-level=0

डिवाइस को रीस्टार्ट करें. इसके बाद, कैमरे और यूएसबी कीबोर्ड को कनेक्ट करें. Ctrl-Alt-X दबाएं. इससे, चालू कैमरे की खास बातों के मुताबिक काम करने की क्षमता की जांच की जाएगी. साथ ही, इसकी जानकारी /var/log/chrome/chrome में लॉग की जाएगी. अगर साइन की गई इमेज का इस्तेमाल किया जा रहा है, तो इसकी जानकारी /home/chronos/user/log/chrome में लॉग की जाएगी.

लिटिल-एंडियन कन्वेंशन

यूएसबी, लिटिल-एंडियन स्टैंडर्ड है. इस दस्तावेज़ में:

  • मल्टी-बाइट नंबर, बिग-एंडियन के तौर पर दिखते हैं. हालांकि, इन्हें लिटिल-एंडियन के तौर पर ट्रांसमिट किया जाता है.
  • बाइट ऐरे, लिटिल-एंडियन मेमोरी लेआउट में होते हैं.

उदाहरण के लिए, 0x12345678 और [0x78, 0x56, 0x34, 0x12] एक ही हैं.

एक्सटेंशन यूनिट का GUID

Meet XU कंट्रोल स्पेसिफ़िकेशन के साथ काम करने वाली एक्सटेंशन यूनिट को इस 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

कंट्रोल के अनुरोध का टाइप

कंट्रोल के अनुरोधों के टाइप, UVC 1.5 क्लास स्पेसिफ़िकेशन के चौथे चैप्टर: क्लास से जुड़े अनुरोधों में बताए गए हैं.

कार्रवाई यूवीसी कंट्रोल
GET GET_CUR, GET_MIN, GET_MAX, GET_RES, GET_LEN, GET_INFO, GET_DEF
SET SET_CUR

कैमरे के मोड

कैमरा मोड का इस्तेमाल, मीटिंग रूम में मौजूद लोगों को फ़्रेम में लाने के लिए किया जाता है. ये tuple के हिस्से हैं:

  • रणनीति (कैमरा व्यू)
  • पूर्वाग्रह (स्पीकर या कमरा)
  • फ़ीड (एक या एक से ज़्यादा स्ट्रीम)

हर डाइमेंशन में, यहां दी गई वैल्यू हो सकती हैं.

ऑटो-फ़्रेमिंग की रणनीति

"कोई नहीं" के अलावा, ऑटोमैटिक फ़्रेमिंग के सभी मोड में, मैन्युअल पैन, टिल्ट, और ज़ूम करने की सुविधा बंद होती है.

सुविधा ब्यौरा
कोई नहीं कैमरा, इंटेलिजेंट फ़्रेमिंग की सभी सुविधाओं को बंद कर देता है. साथ ही, क्लाइंट को पीटीज़ेड वैल्यू को कंट्रोल करने की अनुमति देता है.
ध्यान दें: फ़्रेमिंग की इस रणनीति को सेट करने पर, कैमरा पैन, टिल्ट, और ज़ूम की अपनी मौजूदा पोज़िशन में ही रहता है.
लगातार फ़्रेम में रखने की सुविधा (सीएज़ेड) फ़्रेमिंग के आधार पर, कैमरा कमरे में मौजूद लोगों को लगातार ट्रैक करता है.
स्प्लिट फ़्रेम कैमरा, ज़रूरत के हिसाब से वीडियो व्यू बनाता है. ऑटो-फ़्रेमिंग फ़ीड विकल्प के आधार पर, यह उन्हें एक स्ट्रीम में टाइल के तौर पर कंपोज़ करता है या हर व्यू के लिए अलग-अलग वीडियो स्ट्रीम बनाता है.
डाइनैमिक व्यू एक या उससे ज़्यादा कैमरे, कमरे का सबसे अच्छा व्यू दिखाने की कोशिश करते हैं. यह तय कर सकता है कि एक से ज़्यादा फ़ीड को एक में कंपोज़ करना है या नहीं. इसके अलावा, यह मौजूदा कमरे का "दिलचस्प" व्यू भी दिखा सकता है.
इस व्यू का मकसद, कॉल में शामिल लोगों को एक जैसा व्यू देना है.
वेंडर की प्राथमिकता कैमरा सिस्टम, कमरे का सबसे अच्छा व्यू तय करने के लिए अपने लॉजिक का इस्तेमाल करता है. फ़्रेमिंग की रणनीति में बिना किसी सूचना के बदलाव किया जा सकता है. उदाहरण के लिए, अगर कमरे में मौजूद लोगों की संख्या बदलती है या कैमरा "ज़्यादा अहम प्रज़ेंटेशन" और "मिलकर काम करने" वाली मीटिंग के बीच के अंतर का पता लगा सकता है, तो सिस्टम इस मोड में फ़्रेमिंग की रणनीति को अपने हिसाब से बदल सकता है. इस मोड में, getCur को कॉल करने पर, सिस्टम की ओर से चुने गए फ़्रेमिंग मोड के बजाय, VENDOR_PREFERRED मोड चालू होना चाहिए.

ऑटो-फ़्रेमिंग से जुड़ा पूर्वाग्रह

सुविधा ब्यौरा
ज़्यादा अहमियत वाली प्रज़ेंटेशन (स्पीकर को ट्रैक करने की सुविधा) कैमरा, कमरे में मौजूद उस व्यक्ति को फ़्रेम में सबसे अच्छी तरह से दिखाने की कोशिश करता है जो बोल रहा है.
इस स्थिति में, कैमरे को प्रज़ेंटर पर फ़ोकस करना चाहिए. उदाहरण के लिए, बोर्डरूम में सीईओ प्रज़ेंटेशन दे रहा है.
साथ मिलकर काम करने की सुविधा
(रूम ट्रैकिंग)
कैमरा, कमरे में मौजूद सभी लोगों को फ़्रेम में लाने की कोशिश करता है. इस स्थिति में, कैमरे को हर व्यक्ति के साथ एक जैसा व्यवहार करना चाहिए.

ऑटो-फ़्रेमिंग वाले फ़ीड

सुविधा ब्यौरा
सिंगल-स्ट्रीम कैमरा, होस्ट डिवाइस को एक वीडियो स्ट्रीम भेजता है.
मल्टी-स्ट्रीम
(Work-In-Progress)
कैमरा, स्ट्रीम को बांट देता है और होस्ट को भेजने के लिए कई वीडियो स्ट्रीम बनाता है.
ध्यान दें: इस सुविधा की पूरी जानकारी और इसके काम करने के तरीके की समीक्षा होनी बाकी है. साथ ही, इस दस्तावेज़ के बाद के वर्शन तक यह सुविधा काम नहीं करेगी.

ऑटो-फ़्रेमिंग मोड की बिटमैप वैल्यू

None की डिफ़ॉल्ट स्थिति को छोड़कर, बाइट ऐरे में मौजूद हर बिट, अलग-अलग कैमरा मोड को दिखाता है. यह ऑटो-फ़्रेमिंग की रणनीति, ऑटो-फ़्रेमिंग बायस, और ऑटो-फ़्रेमिंग फ़ीड का खास कॉम्बिनेशन होता है. None की डिफ़ॉल्ट स्थिति को खाली बाइट ऐरे से दिखाया जाता है.

ऑटो-फ़्रेमिंग वाले फ़ीड CAZ स्प्लिट-फ़्रेम डाइनैमिक वेंडर की प्राथमिकता ऑटो-फ़्रेमिंग से जुड़ा पूर्वाग्रह
सिंगल-स्ट्रीम D1
D2
-
D3
D5
D7
D9 (स्पीकर या चैट रूम) स्पीकर
कमरा
एक साथ कई स्ट्रीम -
-
-
D4
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 कमांड, आठ बाइट का बिटमास्क दिखाती है. इसमें शून्य (0) या एक (1) वैल्यू होती है. इससे पता चलता है कि डिवाइस पर सुविधा काम नहीं करती या काम करती है. उदाहरण के लिए, अगर कोई कैमरा CAZ, Speaker, Single-Stream, Split-Frame, Room, Single-Stream, और Dynamic, Room, Multi-Stream के साथ-साथ कोई अन्य मोड भी इस्तेमाल कर सकता है, तो GET_RES को 0x000000000000000085 (यानी कि 0b10000101 के बाद सात शून्य बाइट) दिखाना चाहिए.

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 AutoUpdate / Write / Read
GET_DEF 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
डिफ़ॉल्ट मान
SET_CUR एक्टिव फ़्रेमिंग कैमरा मोड सेट करना

कंट्रोल: GOOGXU_REFRAME

इस कंट्रोल का इस्तेमाल, एक बार में फ़्रेमिंग करने की सुविधा को ट्रिगर करने के लिए किया जाता है. इसे OTAZ भी कहा जाता है. OTAZ सुविधा चालू होने पर, कैमरा अपने-आप कमरे का सबसे अच्छा व्यू दिखाता है. इसके बाद, क्लाइंट को पीटीज़ेड वैल्यू को कंट्रोल करने की सुविधा वापस मिल जाती है. अगर एक बार में फ़्रेमिंग करने की सुविधा काम नहीं करती है, तो कैमरे को इस कंट्रोल को तय नहीं करना चाहिए.

कंट्रोल सिलेक्टर 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 वन-शॉट फ़्रेमिंग के लिए अनुरोध सेट करना

लोगों की मौजूदगी का पता लगाना

ऑक्यूपेंसी काउंटिंग (ओसी) एक ऐसी सुविधा है जिसका इस्तेमाल मीटिंग रूम में मौजूद लोगों की संख्या का अनुमान लगाने के लिए किया जाता है. भले ही, कैमरे का व्यू काटा गया हो.

इस टेबल में, ओसी कंट्रोल के अनुमानित व्यवहार और कैमरे के वीडियो स्ट्रीम और कैमरे के एलईडी इंडिकेटर के साथ उनके इंटरैक्शन के बारे में बताया गया है.

जब ऑक्यूपेंसी काउंटिंग की सुविधा & कैमरे की वीडियो स्ट्रीम: कैमरे का एलईडी इंडिकेटर 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 AutoUpdate / Write / Read
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 AutoUpdate / Read
GET_DEF 0x0000

डिवाइस की टेलीमेट्री और गड़बड़ी की जानकारी

इन कंट्रोल का मकसद, Meet हार्डवेयर के साथ डीबगिंग के बेहतर तरीकों को बढ़ावा देना है. आम तौर पर, ये कंट्रोल उपयोगकर्ताओं के लिए उपलब्ध नहीं होते हैं.

कंट्रोल: GOOGXU_STATUS_INFO

इस कंट्रोल का इस्तेमाल, होस्ट के कैमरे से जानकारी पाने के लिए किया जाता है. इस जानकारी को डीबग करने के लिए, पार्टनर के साथ शेयर किया जाता है.

कंट्रोल सिलेक्टर 5
कार्रवाई GET
wLength 8
ऑफ़सेट फ़ील्ड साइज़ मान ब्यौरा
0 bNumCameras 1 नंबर मुख्य कैमरे से जुड़े अतिरिक्त सैटलाइट की संख्या. इससे होस्ट को भेजी जाने वाली कैमरा स्ट्रीम पर असर पड़ सकता है.
1 bIsMoving 1 बिट मैप कैमरा इस्तेमाल न होने पर 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 AutoUpdate / Read
GET_DEF 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00

कंट्रोल: GOOGXU_SATELLITE_INFO

इस कंट्रोल का इस्तेमाल, इस कैमरा सिस्टम से कनेक्ट किए गए सैटलाइट डिवाइसों के बारे में क्वेरी करने के लिए किया जाता है.

कंट्रोल सिलेक्टर 0x0A
कार्रवाई GET
wLength 20
ऑफ़सेट फ़ील्ड साइज़ मान ब्यौरा
0 bSatelliteList 20 बिट मैप सिस्टम से जुड़े सैटलाइट टाइप की सूची. इसमें पांच बाइट के चार अलग-अलग स्लॉट शामिल होते हैं. हर स्लॉट के बारे में यहां बताया गया है:
ऑफ़सेट ब्यौरा
0 इस सैटलाइट टाइप के लिए संख्या.
1-2 इस सैटलाइट टाइप का वेंडर आईडी.
3-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 AutoUpdate / Read
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) दिखाता है. रीसेट करने पर, कैमरा रीबूट होना चाहिए. (यह उन डिवाइसों के लिए ज़रूरी है जिनमें खुद का पावर सोर्स होता है. ऐसे डिवाइसों में, हॉटप्लग की नकल करने के लिए यूएसबी को डिसकनेक्ट करना काम का नहीं होता.)

कंट्रोल सिलेक्टर 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

पीटीज़ेड प्रीसेट

इस कुकी का इस्तेमाल, कैमरे के फ़ील्ड ऑफ़ व्यू (कैमरे से दिखने वाला व्यू) को पहले से तय की गई पोज़िशन में कॉन्फ़िगर करने और उसे वापस लाने के लिए किया जाता है.

कंट्रोल: GOOGXU_PRESETS

इस कंट्रोल का इस्तेमाल, कैमरे की पैन, टिल्ट, और ज़ूम (पीटीज़ेड) वैल्यू को प्रीसेट कॉन्फ़िगरेशन पर सेट करने के लिए किया जाता है.

Preset Action का इस्तेमाल, कमांड के मकसद को बताने के लिए किया जाता है. एक (1) की वैल्यू सेट करने का इस्तेमाल, पैन, टिल्ट, और ज़ूम की मौजूदा वैल्यू को दिए गए प्रीसेट इंडेक्स पर मैप करने के लिए किया जाता है. वैल्यू को दो (2) पर सेट करने से, कैमरे का पैन, टिल्ट, और ज़ूम, दिए गए इंडेक्स के लिए पहले से मैप की गई वैल्यू या फ़ैक्ट्री के डिफ़ॉल्ट कोऑर्डिनेट (अगर पहले से मैप नहीं किया गया है) पर ट्रांज़िशन होना चाहिए. वैल्यू को तीन (3) पर सेट करने से, इंडेक्स फ़ैक्ट्री डिफ़ॉल्ट कोऑर्डिनेट पर रीसेट हो जाता है.

Preset Index का इस्तेमाल, इंडेक्स पर मैप किए गए पीटीज़ेड कोऑर्डिनेट के बारे में बताने के लिए किया जाता है. शून्य (0) का Preset index, होम कोऑर्डिनेट पर मैप किया जाता है. साथ ही, जब 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 (अब सेवा में नहीं है)

पैन और टिल्ट की ऑक्सिलरी मैपिंग की सेटिंग, UVC 1.5 क्लास स्पेसिफ़िकेशन के चैप्टर 4: क्लास स्पेसिफ़िक अनुरोध सेक्शन 4.2.2.1.14 PanTilt (Absolute) Control में तय की गई हैं.

कंट्रोल: GOOGXU_PAN_TILT_RELATIVE (अब सेवा में नहीं है)

पैन और टिल्ट की ऑक्सिलरी मैपिंग की सेटिंग, UVC 1.5 क्लास स्पेसिफ़िकेशन के चैप्टर 4: क्लास स्पेसिफ़िक अनुरोध सेक्शन 4.2.2.1.15 PanTilt (Relative) Control में तय की जाती हैं.

प्रॉडक्ट की जानकारी

रिलीज़ नोट में, इस दस्तावेज़ के हर वर्शन में किए गए सुधारों और नई सुविधाओं के बारे में बताया गया है.

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

शुरुआती रिलीज़.