इस दस्तावेज़ में, यूएसबी वीडियो क्लास एक्सटेंशन यूनिट (एक्सयू) के उन एपीआई के बारे में बताया गया है जिनका इस्तेमाल 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 के हिस्से हैं:
- रणनीति (कैमरा व्यू)
- पक्षपात (स्पीकर या कमरा)
- फ़ीड (एक या एक से ज़्यादा स्ट्रीम)
हर डाइमेंशन में, यहां दी गई वैल्यू हो सकती हैं.
ऑटो-फ़्रेमिंग की रणनीति
"कोई नहीं" मोड के अलावा, ऑटोमैटिक फ़्रेमिंग के सभी मोड में, मैन्युअल पैन, टिल्ट, और ज़ूम करने की सुविधा बंद होती है.
| सुविधा | ब्यौरा |
|---|---|
| कोई नहीं | कैमरा, इंटेलिजेंट फ़्रेमिंग की सभी सुविधाओं को बंद कर देता है. साथ ही, क्लाइंट को पीटीज़ेड वैल्यू को कंट्रोल करने की अनुमति देता है. ध्यान दें: फ़्रेमिंग की इस रणनीति को सेट करने पर, कैमरा पैन, टिल्ट, और ज़ूम की अपनी मौजूदा पोज़िशन में ही रहता है. |
| लगातार फ़्रेम में रखने की सुविधा (CAZ) | फ़्रेमिंग के आधार पर, कैमरा कमरे में मौजूद लोगों को लगातार ट्रैक करता है. |
| फ़्रेम स्प्लिट करना | कैमरा, ज़रूरत के हिसाब से वीडियो व्यू बनाता है. ऑटो-फ़्रेमिंग फ़ीड विकल्प के आधार पर, यह उन्हें एक स्ट्रीम में टाइल के तौर पर कंपोज़ करता है या हर व्यू के लिए अलग-अलग वीडियो स्ट्रीम बनाता है. |
| डाइनैमिक व्यू | एक या उससे ज़्यादा कैमरे, कमरे का सबसे अच्छा व्यू दिखाने की कोशिश करते हैं. यह तय कर सकता है कि एक से ज़्यादा फ़ीड को एक में कंपोज़िट करना है या नहीं. इसके अलावा, यह मौजूदा रूम का "दिलचस्प" व्यू भी दिखा सकता है. इस व्यू का मकसद, कॉल में शामिल लोगों को एक जैसा व्यू देना है. |
| वेंडर की प्राथमिकता | कैमरा सिस्टम, कमरे का सबसे अच्छा व्यू तय करने के लिए अपने लॉजिक का इस्तेमाल करता है. फ़्रेमिंग की रणनीति में बिना किसी सूचना के बदलाव किया जा सकता है. उदाहरण के लिए, अगर कमरे में मौजूद लोगों की संख्या बदलती है या कैमरा "ज़्यादा अहमियत रखने वाले प्रज़ेंटर" और "मिलकर काम करने" वाली मीटिंग के बीच के अंतर का पता लगा सकता है, तो सिस्टम इस मोड में फ़्रेमिंग की रणनीति को अपने हिसाब से बदल सकता है. इस मोड में, 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 | ब्यौरा |
|---|---|---|
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 (अब सेवा में नहीं है)
पैन और टिल्ट के लिए, ऑक्सिलरी मैपिंग कंट्रोल के बारे में यूवीसी 1.5 क्लास स्पेसिफ़िकेशन के चौथे चैप्टर में बताया गया है. इस चैप्टर के सेक्शन 4.2.2.1.15 में, पैनटिल्ट (रिलेटिव) कंट्रोल के बारे में बताया गया है.
मिलते-जुलते विषय
- Linux USB Video Class (UVC) ड्राइवर
- Video Class v1.5 दस्तावेज़ सेट
- यूएसबी 2.0 का स्पेसिफ़िकेशन
- Google Meet हार्डवेयर का सहायता केंद्र
- Google Workspace एडमिन सहायता केंद्र का Google Meet Hardware सेक्शन
प्रॉडक्ट की जानकारी
इन रिलीज़ नोट में, इस दस्तावेज़ के हर वर्शन में किए गए सुधारों और नई सुविधाओं के बारे में बताया गया है.
13 अगस्त, 2025
- टेस्ट फ़ैसिलिटी की सही जानकारी.
27 जनवरी, 2025
GOOGXU_FRAME_STRATEGYमेंVendor-preferredफ़्रेमिंग की रणनीति जोड़ी गई.- नया कंट्रोल जोड़ा गया:
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
शुरुआती रिलीज़.