Ten dokument zawiera opis obsługiwanych interfejsów API jednostki rozszerzeń (XU) klasy wideo USB, które są używane przez systemy konferencyjne Google Meet do włączania inteligentnych funkcji kamery. Celem utworzenia tej specyfikacji jest wpłynięcie na praktyki, które umożliwią korzystanie z tych funkcji, a także zapewnienie naszym partnerom lepszej skalowalności asynchronicznej i możliwości testowania.
Szczegółowe informacje o najnowszych zmianach w tym dokumencie znajdziesz w informacjach o wersji.
Obiekt testowy
Aby pomóc partnerom w sprawdzaniu zgodności z tą specyfikacją, udostępniamy środowisko testowe na urządzeniach Chromebox wideokonferencje ustawionych w trybie deweloperskim.
Włącz zapisywanie w systemie plików.
Dodaj do pliku /etc/chrome_dev.conf te wiersze:
--enable-logging
--log-level=0
Uruchom ponownie urządzenie, podłącz kamerę i klawiaturę USB, naciśnij Ctrl-Alt-X, a zgodność specyfikacji aktywnej kamery zostanie sprawdzona i zarejestrowana w /var/log/chrome/chrome (jeśli używasz podpisanego obrazu, to w /home/chronos/user/log/chrome).
Konwencja little-endian
USB to standard little-endian. W tym dokumencie:
- Liczby wielobajtowe są wyświetlane w formacie big-endian (a przesyłane w formacie little-endian).
- Tablice bajtów są ułożone w pamięci w formacie little-endian.
Na przykład 0x12345678 to to samo co [0x78, 0x56, 0x34, 0x12].
Identyfikator GUID jednostki rozszerzenia
Jednostki rozszerzeń obsługujące tę specyfikację sterowania Meet XU muszą używać tego identyfikatora GUID.
| Jednostka rozszerzenia | GUID |
|---|---|
| Peripheral Control XU | {74D7E924-49C9-4A45-98A3-8A9F60061E83} |
Selektory XU kontroli urządzeń peryferyjnych
Są to zdefiniowane selektory XU kontroli urządzeń peryferyjnych.
| Selektory elementów sterujących | Wartość |
|---|---|
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 |
Typ prośby o kontrolę
Typy żądań sterujących są zdefiniowane w rozdziale 4: Żądania dotyczące klasy w specyfikacji klasy UVC 1.5.
| Operacja | Sterowanie UVC |
|---|---|
GET |
GET_CUR, GET_MIN, GET_MAX, GET_RES, GET_LEN, GET_INFO, GET_DEF |
SET |
SET_CUR |
Tryby aparatu
Tryby kamery służą do kadrowania osób w sali konferencyjnej i są tuple:
- Strategia (obraz z kamery)
- Uprzedzenia (głośnik lub pomieszczenie)
- Pliki danych (jeden lub wiele strumieni)
Każdy wymiar może przyjmować wartości opisane w kolejnych sekcjach.
Strategia automatycznego kadrowania
We wszystkich trybach automatycznego kadrowania z wyjątkiem trybu „Brak” ręczne przesuwanie, przechylanie i powiększanie są wyłączone.
| Funkcja | Opis |
|---|---|
| Brak | Kamera wyłącza wszystkie inteligentne funkcje kadrowania i umożliwia klientowi swobodne sterowanie wartościami PTZ. Uwaga: gdy ta strategia kadrowania jest ustawiona, kamera pozostaje w bieżącej pozycji przesuwania, pochylania i powiększania. |
| Ciągłe kadrowanie (CAZ) | Na podstawie tego ustawienia kamera stale śledzi osoby w pomieszczeniu. |
| Dzielenie klatek | Kamera tworzy tyle widoków wideo, ile jest potrzebnych. W zależności od opcji Automatyczne kadrowanie łączy je w kafelki w jednym strumieniu lub tworzy osobne strumienie wideo dla każdego widoku. |
| Widok dynamiczny | Co najmniej jedna kamera próbuje zapewnić najlepszy widok pomieszczenia. Może zdecydować, czy połączyć wiele strumieni w jeden, czy też zapewnić „ciekawy” widok bieżącego pomieszczenia. Celem tego widoku jest zapewnienie najbardziej sprawiedliwego widoku uczestników spotkania w pokoju. |
| Preferowany przez dostawcę | System kamer korzysta z własnej logiki, aby określić najlepszy widok pomieszczenia. Podstawowa strategia kadrowania może ulec zmianie bez powiadomienia. Jeśli np. zmieni się liczba osób w pokoju lub kamera wykryje różnicę między spotkaniem „Prezentacja o wysokiej stawce” a spotkaniem „Współpraca”, system może dostosować lub zmienić strategię kadrowania w tym trybie. W tym trybie wywołanie getCur powinno zwracać VENDOR_PREFERRED, a nie wybrany przez system podstawowy tryb kadrowania. |
Błąd automatycznego kadrowania
| Funkcja | Opis |
|---|---|
| Prezentacja o dużym znaczeniu (śledzenie mówcy) | Kamera próbuje jak najlepiej wykadrować osobę, która aktywnie mówi w pomieszczeniu. W tym przypadku kamera powinna być skierowana na prezentera. Na przykład dyrektor generalny w sali konferencyjnej prowadzący prezentację. |
| Współpraca (śledzenie pomieszczeń) |
Kamera próbuje jak najlepiej wykadrować wszystkich uczestników w sali. W takiej sytuacji kamera powinna traktować wszystkich uczestników w równy sposób. |
Pliki danych z automatycznym kadrowaniem
| Funkcja | Opis |
|---|---|
| Single-Stream | Kamera przesyła do urządzenia hosta jeden strumień wideo. |
| Multi-Stream (w trakcie prac) |
Kamera dzieli strumień i tworzy wiele strumieni wideo, które wysyła do hosta. Uwaga: pełna specyfikacja i oczekiwane działanie tej funkcji są w trakcie weryfikacji i nie są obsługiwane do czasu wprowadzenia późniejszych zmian w tym dokumencie. |
Wartości mapy bitowej trybu automatycznego kadrowania
Z wyjątkiem stanu domyślnego None, który jest reprezentowany przez pustą tablicę bajtów, każdy bit w tablicy bajtów reprezentuje inny tryb kamery, który jest konkretną kombinacją strategii automatycznego kadrowania, odchylenia automatycznego kadrowania i źródeł automatycznego kadrowania.
| Pliki danych z automatycznym kadrowaniem | CAZ | Split-Frame | Dynamiczne | Preferowany przez dostawcę | Błąd automatycznego kadrowania |
|---|---|---|---|---|---|
| Single-Stream | D1 D2 |
– D3 |
D5 D7 |
D9 (głośnik lub pokój) | Głośnik Pomieszczenie |
| Multi-Stream | - - |
- D4 |
D6 D8 |
- | Głośnik Pomieszczenie |
| Tryby klatek | Wartość trybu ramki (najmniej znaczący bajt) |
|---|---|
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 |
Sterowanie: GOOGXU_FRAME_STRATEGY
To ustawienie służy do pobierania lub ustawiania trybów kadrowania kamery wymienionych w sekcji Wartości bitmapy trybu automatycznego kadrowania. Każdy tryb jest reprezentowany jako bit w odpowiedniej mapie bitowej. Polecenie GET_RES zwraca 8-bajtową maskę bitową o wartości zero (0) lub jeden (1), która wskazuje, czy funkcja jest obsługiwana przez urządzenie. Jeśli na przykład aparat obsługuje tryby CAZ, Speaker, Single-Stream, Split-Frame, Room, Single-Stream i Dynamic, Room, Multi-Stream, ale nie obsługuje innych trybów, wartość GET_RES powinna wynosić 0x000000000000000085 (czyli 0b10000101, a następnie 7 zerowych bajtów).
Polecenie SET_CUR służy do wysyłania map bitowych, które informują kamerę, który tryb SINGLE ma zostać włączony.
| Selektor sterowania | 1 | |||
|---|---|---|---|---|
| Operacja | GET / SET |
|||
wLength |
8 | |||
| Przesunięcie | Pole | Rozmiar | Wartość | Opis |
| 0 | bActiveMode |
8 | Bitmapa | Ustawianie lub przywracanie aktywnego trybu kamery |
Uwagi:
|
||||
Działanie obsługiwanych typów żądań jest następujące:
| Przesunięcie | 0 | Opis |
|---|---|---|
GET_CUR |
Włączanie trybu aktywnego kadrowania | |
GET_MIN |
Zależne od kamery | |
GET_MAX |
Zależne od kamery | |
GET_RES |
Zwraca 8-bajtową maskę bitową obsługiwanych trybów aparatu. | |
GET_LEN |
0x0008 | Długość |
GET_INFO |
0x0B | Automatyczna aktualizacja / zapis / odczyt |
GET_DEF |
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 |
Wartość domyślna |
SET_CUR |
Ustawianie trybu aktywnego kadrowania |
Sterowanie: GOOGXU_REFRAME
Ten element sterujący służy do wywoływania kadrowania jednorazowego, znanego też jako OTAZ. Gdy zostanie wywołana funkcja OTAZ, widok z kamery zostanie automatycznie dostosowany do najlepszego widoku pomieszczenia. Następnie klient odzyskuje możliwość kontrolowania wartości PTZ. Jeśli jednorazowe kadrowanie nie jest obsługiwane, kamera nie powinna definiować tego ustawienia.
| Selektor sterowania | 2 | |||
|---|---|---|---|---|
| Operacja | SET |
|||
wLength |
1 | |||
| Przesunięcie | Pole | Rozmiar | Wartość | Opis |
| 0 | bReframe |
1 | Liczba | 0x01 Wykonaj żądanie zmiany kadru |
Działanie obsługiwanych typów żądań jest następujące:
| Przesunięcie | 0 | Opis |
|---|---|---|
GET_MIN |
0x00 | |
GET_MAX |
0x01 | |
GET_RES |
0x01 | |
GET_LEN |
0x0001 | |
GET_INFO |
0x02 | Tylko do zapisu |
GET_DEF |
0x00 | |
SET_CUR |
Ustawianie żądania dotyczące kadrowania One-Shot |
Zliczanie zajętości
Funkcja zliczania osób (OC) służy do szacowania liczby uczestników w sali konferencyjnej pomimo przyciętego widoku z kamery.
Ta tabela pokazuje oczekiwane działanie elementów sterujących OC i ich interakcje ze strumieniem wideo z kamery i wskaźnikiem LED kamery.
| Gdy funkcja liczenia zajętości jest | & strumień wideo z kamery: | Wskaźnik LED aparatu powinien być | GOOGXU_OCCUPANCY_COUNTING_TOGGLE GET_CUR powinno być |
GOOGXU_OCCUPANCY_COUNTING_READ GET_CUR powinno być |
|---|---|---|---|---|
| Włączone | Brak transmisji i brak wyciszenia | Wł. | 0x01 |
Liczba osób w pełnym polu widzenia kamery. |
| Włączone | Streaming | Wł. | 0x01 |
Liczba osób w pełnym polu widzenia kamery. |
| Włączone | wyciszony, | Wył. | 0x01 |
Wyłączono |
| Wyłączono | Brak transmisji i brak wyciszenia | Wył. | 0x00 |
Wyłączono |
| Wyłączono | Streaming | Wł. | 0x00 |
Wyłączono |
| Wyłączono | wyciszony, | Wył. | 0x00 |
Wyłączono |
Sterowanie: GOOGXU_OCCUPANCY_COUNTING_TOGGLE
Ten przełącznik służy do włączania i wyłączania funkcji zliczania osób w pomieszczeniu. Wartość 0 wyłącza tę funkcję, a wartość 1 ją włącza. Jeśli ta funkcja nie jest obsługiwana, kamera nie powinna definiować tego ustawienia.
| Selektor sterowania | 3 | |||
|---|---|---|---|---|
| Operacja | GET / SET |
|||
wLength |
1 | |||
| Przesunięcie | Pole | Rozmiar | Wartość | Opis |
| 0 | bOccupancy |
1 | Wartość logiczna | Ustaw funkcję rejestrowania obłożenia 0x00 Wyłącz funkcję 0x01 Włącz funkcję |
Działanie obsługiwanych typów żądań jest następujące:
| Przesunięcie | 0 | Opis |
|---|---|---|
GET_CUR |
Sprawdzanie, czy rejestrowanie obłożenia jest włączone | |
GET_MIN |
0x00 | |
GET_MAX |
0x01 | |
GET_RES |
0x01 | |
GET_LEN |
0x0001 | |
GET_INFO |
0x0B | Automatyczna aktualizacja / zapis / odczyt |
GET_DEF |
0x00 | |
SET_CUR |
Włączanie i wyłączanie funkcji rejestrowania obłożenia |
Sterowanie: GOOGXU_OCCUPANCY_COUNTING_READ
Ten element sterujący służy do odczytywania liczby uczestników w pomieszczeniu zgłaszanej przez kamerę, gdy włączone jest liczenie obłożenia. Gdy liczenie osób jest wyłączone, kamera powinna wyłączyć tę funkcję. Jeśli liczenie obłożenia nie jest obsługiwane, kamera nie powinna definiować tego ustawienia.
| Selektor sterowania | 4 | |||
|---|---|---|---|---|
| Operacja | GET |
|||
wLength |
2 | |||
| Przesunięcie | Pole | Rozmiar | Wartość | Opis |
| 0 | bNumPeople |
2 | Liczba | Liczba wykrytych osób w polu widzenia. (tylko do odczytu) |
Działanie obsługiwanych typów żądań jest następujące:
| Przesunięcie | 0 | Opis |
|---|---|---|
GET_CUR |
Zwraca liczbę wykrytych osób | |
GET_MIN |
0x0000 | |
GET_MAX |
0x00FF | |
GET_RES |
0x0001 | |
GET_LEN |
0x0002 | |
GET_INFO |
0x09 | AutoUpdate / Read |
GET_DEF |
0x0000 |
Dane telemetryczne i diagnostyczne urządzenia
Te ustawienia mają zachęcać do lepszych praktyk debugowania urządzeń Google Meet i zwykle nie są widoczne dla użytkowników.
Sterowanie: GOOGXU_STATUS_INFO
To ustawienie służy do wysyłania zapytań o informacje z kamery hosta, które są udostępniane partnerom w celu debugowania.
| Selektor sterowania | 5 | |||
|---|---|---|---|---|
| Operacja | GET |
|||
wLength |
8 | |||
| Przesunięcie | Pole | Rozmiar | Wartość | Opis |
| 0 | bNumCameras |
1 | Liczba | Liczba dodatkowych satelitów podłączonych do kamery głównej, które mogą wpływać na strumień z kamery zwracany do hosta. |
| 1 | bIsMoving |
1 | Bitmapa | 0, gdy kamera jest w stanie bezczynności, i wartość różna od zera, gdy zmieniają się wartości PTZ. Dostawcy mogą przypisywać różne osie lub silniki do różnych bitów. |
| 2 | Undef |
6 | Nieokreślony | W przyszłości planujemy rozszerzyć tę listę. |
Działanie obsługiwanych typów żądań jest następujące:
| Przesunięcie | 0 | 1 | 2 | Opis |
|---|---|---|---|---|
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 |
Sterowanie: GOOGXU_SATELLITE_INFO
To ustawienie służy do wysyłania zapytań do urządzeń satelitarnych połączonych z tym systemem kamer.
| Selektor sterowania | 0x0A | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Operacja | GET |
|||||||||||
wLength |
20 | |||||||||||
| Przesunięcie | Pole | Rozmiar | Wartość | Opis | ||||||||
| 0 | bSatelliteList |
20 | Bitmapa | Lista typów satelitów podłączonych do systemu. Zawiera 4 osobne 5-bajtowe miejsca. Poszczególne miejsca są opisane w ten sposób:
|
Działanie obsługiwanych typów żądań jest następujące:
| Przesunięcie | 0 | Opis |
|---|---|---|
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 bajtów |
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 |
Sterowanie: GOOGXU_STATUS_RESET
Ten element sterujący służy do wysyłania do kamery żądania zresetowania. Ustawienie wartości 1 powoduje zresetowanie kamery. Kamera zwraca wartość zero (0), jeśli od ostatniego resetu nie było prośby o ponowne uruchomienie kamery, a wartość jeden (1), jeśli jest ona resetowana. Resetowanie musi spowodować ponowne uruchomienie kamery. (Jest to potrzebne w przypadku urządzeń zasilanych samodzielnie, w których wymuszenie odłączenia USB w celu emulowania podłączenia na gorąco nie jest przydatne).
| Selektor sterowania | 6 | |||
|---|---|---|---|---|
| Operacja | GET / SET |
|||
wLength |
1 | |||
| Przesunięcie | Pole | Rozmiar | Wartość | Opis |
| 0 | bResetRequest |
1 | Wartość logiczna | Wysyłanie prośby o zresetowanie do gospodarza i połączonych kamer. Zwraca wartość 0x01, jeśli od ostatniego resetowania wysłano żądanie resetowania, w przeciwnym razie zwraca wartość 0x00. |
Działanie obsługiwanych typów żądań jest następujące:
| Przesunięcie | 0 | Opis |
|---|---|---|
GET_MIN |
0x00 | |
GET_MAX |
0x01 | |
GET_RES |
0x01 | |
GET_LEN |
0x0001 | |
GET_INFO |
0x03 | Zapis / odczyt |
GET_DEF |
0x00 |
Gotowe ustawienia PTZ
Służy do konfigurowania i przywracania pola widzenia kamery do wstępnie ustawionej pozycji.
Sterowanie: GOOGXU_PRESETS
Ten element sterujący służy do ustawiania wartości przesuwania, pochylania i powiększania kamery w konfiguracji wstępnej.
Symbol Preset Action służy do określania zamierzonego działania polecenia. Ustawienie wartości 1 służy do mapowania bieżących wartości panoramowania, pochylenia i powiększenia na podany indeks ustawienia wstępnego. Ustawienie wartości 2 powinno spowodować przejście kamery do wcześniej zmapowanych wartości panoramowania, pochylenia i powiększenia dla podanego indeksu lub do domyślnych współrzędnych fabrycznych (jeśli nie zostały wcześniej zmapowane). Ustawienie wartości 3 powoduje zresetowanie indeksu do domyślnych współrzędnych fabrycznych.
Pole Preset Index służy do określania współrzędnych PTZ przypisanych do indeksu.
Wartość Preset index 0 jest przypisana do współrzędnych pozycji wyjściowej i powinna być domyślną pozycją kamery po wybudzeniu, gdy wartość GOOGXU_FRAME_STRATEGY jest ustawiona na NONE.
| Selektor sterowania | 7 | |||
|---|---|---|---|---|
| Operacja | SET |
|||
wLength |
2 | |||
| Przesunięcie | Pole | Rozmiar | Wartość | Opis |
| 0 | bPresetAction |
1 | Liczba | 0x01: Zapisz gotowe ustawienia. 0x02: Przywróć gotowe ustawienia. 0x03: Przywróć domyślne gotowe ustawienia. (Wartość domyślna powinna być prawidłową współrzędną gotowych ustawień). |
| 1 | bPresetIndex |
1 | Liczba | Indeks aktywnego gotowego ustawienia. 0~N-1 – 0 to domyślna pozycja początkowa kamery, a N-1 to zdefiniowana przez dostawcę stała liczba ustawień wstępnych. |
Działanie obsługiwanych typów żądań jest następujące:
| Przesunięcie | 0 | 1 | Opis |
|---|---|---|---|
GET_MIN |
0x00 | 0x00 | |
GET_MAX |
0x03 | N-1 | Obsługiwanych jest maksymalnie N gotowych ustawień |
GET_RES |
0x01 | 0x01 | |
GET_LEN |
0x02 | 0x00 | 0x0002 |
GET_INFO |
0x02 | Tylko do zapisu | |
GET_DEF |
0x00 | 0x00 |
Przesuwanie i pochylanie mapy dodatkowej
Niektóre kamery mają specjalne komponenty, takie jak silniki w przypadku kamer mechanicznych lub funkcje cyfrowego PTZ. W tym przypadku użyj standardowych elementów sterujących V4L2 do przesuwania, pochylania i powiększania.
Grupa kontrolna: GOOGXU_PAN_TILT_ABSOLUTE (wycofano)
Pomocnicze elementy sterujące mapowaniem przesunięcia i pochylenia są zdefiniowane w rozdziale 4: Żądania specyficzne dla klasy, sekcja 4.2.2.1.14 Przesunięcie/pochylenie (bezwzględne) w specyfikacji klasy UVC 1.5.
Grupa kontrolna: GOOGXU_PAN_TILT_RELATIVE (wycofano)
Pomocnicze elementy sterujące mapowaniem panoramowania i pochylania są zdefiniowane w rozdziale 4: Żądania specyficzne dla klasy, sekcja 4.2.2.1.15 Sterowanie panoramowaniem i pochylaniem (względne) specyfikacji klasy UVC 1.5.
Powiązane artykuły
- Sterownik Linux USB Video Class (UVC)
- Dokument Video Class w wersji 1.5
- Specyfikacja USB 2.0
- Centrum pomocy urządzeń Google Meet
- Sekcja Urządzenia Google Meet w Centrum pomocy Google Workspace dla administratorów
Informacje o wersjach
Znajdziesz tu informacje o ulepszeniach i nowych funkcjach każdej wersji tego dokumentu.
13 sierpnia 2025 r.
- Poprawione dane ośrodka testowego.
27 stycznia 2025 r.
- Dodano strategię kadrowania
Vendor-preferreddoGOOGXU_FRAME_STRATEGY. - Dodaliśmy nowe ustawienie:
GOOGXU_SATELLITE_INFO.
21 maja 2024 r.
- Usunięto scenariusz testowania na rzecz nowego narzędzia testowego CfM, które testuje
SETi obsługuje też weryfikację kamer Series One. - Wyjaśnione pola w
GOOGXU_STATUS_INFO. - Wyjaśniono działanie elementu
GOOGXU_STATUS_RESET. - Wycofane:
GOOGXU_PAN_TILT_ABSOLUTEiGOOGXU_PAN_TILT_RELATIVE.
15 listopada 2023 r.
Zaktualizowano scenariusz testowania, aby sprawdzać i interpretować prawidłowe tryby kadrowania. Wyjaśnione reprezentacje bajtów.
21 lipca 2023 r.
Dodaliśmy scenariusz testowania, który umożliwia partnerom weryfikowanie implementacji pod kątem zgodności z tą specyfikacją.
25 maja 2023 r.
Poprawiona
GOOGXU_PRESETS
uwaga dotycząca liczby ustawień wstępnych. Powinno to być N, a nie N-1.
17 kwietnia 2023 r.
Pierwsza wersja.