Oturum Parametreleri

Oturum parametreleri özelliği, kamera istemcilerinin maliyetli istek parametrelerinin alt kümesini, yani oturum parametrelerini yakalama oturumu başlatma aşamasının bir parçası olarak etkin bir şekilde yapılandırmasını sağlayarak gecikmeleri azaltır. Bu özellik sayesinde, HAL uygulamalarınız, ilk yakalama isteği yerine akış yapılandırma aşaması sırasında istemci parametrelerini alır ve değerlerine bağlı olarak, dahili işlem hattını daha verimli bir şekilde hazırlayabilir ve oluşturabilir.

Android 10'da, dahili oturum parametresi yeniden yapılandırma mantığı üzerinde daha fazla kontrol için isteğe bağlı oturum yeniden yapılandırma sorgusu özelliğini kullanarak performansı artırabilirsiniz. Daha fazla bilgi için, bkz Oturum yeniden yapılandırma sorgusu .

Örnekler ve kaynak

Bir referans oturumu parametresi uygulaması zaten bir parçasıdır CameraHal . Bu HAL, eski Hal API'sini kullanır. Binderized uygular kamera HIDL API ilgili HIDL kullanması gerektiğini CameraHal sessionParams akışı yapılandırma sırasında herhangi bir yeni gelen oturum parametrelerini erişmek için giriş.

Kamera istemcileri arayarak tüm desteklenen oturum parametrelerinin anahtarlarını sorgulayabilir getAvailableSessionKeys() ve sonunda aracılığıyla ilk değerlerini ayarlamak setSessionParameters() .

uygulama

Kişisel CameraHal uygulama doldurmak zorundadır ANDROID_REQUEST_AVAILABLE_SESSION_KEYS ilgili statik kamera meta veri içinde ve bir alt kümesini sağlamak ANDROID_REQUEST_AVAILABLE_REQUEST_KEYS yakalama oturumu ömrü boyunca modifiye zaman beklenmedik gecikmelere neden olabilir çerçeve başına ve uygulanması zor tuşlarının bir listesini içerir.

Tipik örnekler, zaman alan bir donanım yeniden yapılandırması veya dahili bir kamera boru hattı değişikliği gerektiren parametreleri içerir. Oturum parametreleri üzerinde kontrol, yakalama isteklerinde hala uygulanabilir, ancak istemciler uygulamalarında gecikmelerin farkında olmalı ve bunu beklemelidir.

Çerçeve, gelen tüm istekleri izler ve bir oturum parametresinin değerinde bir değişiklik tespit ederse, kamerayı dahili olarak yeniden yapılandırır. CameraHal'a iletilen yeni akış yapılandırması, kamera ardışık düzenini daha verimli bir şekilde yapılandırmak için kullanılan güncellenmiş oturum parametresi değerlerini içerir.

özelleştirme

Etiketleri, CameraHal tarafında doldurulan mevcut oturum parametre listesinde tanımlayabilirsiniz. CameraHal, kullanılabilir oturum parametre listesini boş bırakırsa bu özellik etkin değildir.

doğrulama

CTS, oturum parametrelerini test etmek için aşağıdaki yeni durumları içerir:

Genel olarak, belirli bir parametre oturum anahtarı listesinin bir parçası olduktan sonra, geçerli değeri HAL katmanında akış yapılandırması sırasında geçirilen oturum parametrelerinin bir parçası olarak dahil edilir.

Oturum parametreleri dikkatle seçilmelidir. Değerler, akış konfigürasyonları arasında sık sık değişmemelidir. Yakalama amacı gibi sık sık değişen parametreler uygun değildir ve bunları oturum parametre listesine eklemek, aşırı dahili yeniden yapılandırma nedeniyle CTS hatalarına neden olabilir.

Oturum yeniden yapılandırma sorgusu

Android 10, oturum parametre değeri değişikliklerinden kaynaklanan dahili akış yeniden yapılandırmaları performansı düşürebileceğinden, performansı artırmak için isteğe bağlı bir oturum yeniden yapılandırma sorgusu özelliği sunar. Bu kaygıyı, HIDL gidermek için ICameraDeviceSession sürüm 3.5 ve üstü destekler isReconfigurationRequired iç oturum parametresi yeniden yapılandırma mantığı üzerine ince taneli kontrolü sağlar yöntemi. Bu yöntemi kullanarak, gerektiğinde akış yeniden yapılandırması tam olarak gerçekleşebilir.

Bağımsız değişkenleri isReconfigurationRequired aygıta özgü özelleştirmelerin çeşitli için izin veren her bekleyen oturum parametre değişikliği hakkında gerekli bilgileri sağlar.

Bu özellik yalnızca kamera hizmetinde ve kamera HAL'de uygulanır. Herkese açık API yoktur. Bu özellik uygulanırsa, kamera istemcileri, oturum parametreleriyle çalışırken performans iyileştirmeleri görmelidir.

uygulama

Destek oturumu yeniden yapılandırma sorguları için, uygulamalıdır isReconfigurationRequired komple akışı yeniden yapılandırılması yeni bir oturum parametre değerleri için gerekli olup olmadığını kontrol etmek için yöntem.

İstemci herhangi reklamı oturumu parametresinin değerini değiştirirse, kamera çerçevesi çağırır isReconfigurationRequired yöntem. Belirli değerlere bağlı olarak HAL, tam bir akış yeniden yapılandırmasının gerekli olup olmadığına karar verir. HAL dönerse false , kamera çerçevesi iç yeniden yapılandırılması atlar. HAL dönerse true , çerçeve akışları yeniden yapılandırır ve buna bağlı olarak yeni bir oturum parametre değerlerini geçirir.

isReconfigurationRequired yeni parametrelerle bir istek HAL teslim edilmesinden önce yöntem çerçevesi tarafından biraz zaman çağrılabilir ve gönderilmeden önce talebi iptal edilebilir. Bu nedenle, HAL, davranışını herhangi bir şekilde değiştirmek için bu yöntem çağrısını kullanmamalıdır.

HAL uygulaması aşağıdaki gereksinimleri karşılamalıdır:

  • Çerçeve aramak gerekir isReconfigurationRequired aktif oturumu yapılandırmadan sonra herhangi bir zamanda yöntem.
  • Bekleyen kamera isteklerinin performansı üzerinde hiçbir etkisi olmamalıdır. Özellikle, normal kamera akışı sırasında herhangi bir aksaklık veya gecikme olmamalıdır.

Aygıt ve HAL uygulaması aşağıdaki performans gereksinimlerini karşılamalıdır:

  • Donanım ve yazılım kamera ayarları değiştirilmemelidir.
  • Kamera performansı üzerinde kullanıcı tarafından görülebilir bir etki olmamalıdır.

isReconfigurationRequired yöntem aşağıdaki bağımsız değişkenleri alır:

  • oldSessionParams : Önceki oturumdan Oturum parametreleri. Genellikle mevcut oturum parametreleri.
  • newSessionParams : istemci tarafından ayarlanır Yeni bir oturum parametreleri.

Beklenen dönüş durum kodları şunlardır:

  • OK : Başarılı yeniden yapılandırılması sorgusu gerektiriyordu.
  • METHOD_NOT_SUPPORTED : yeniden yapılandırma sorgusu desteklemez kamera cihazı.
  • INTERNAL_ERROR : yeniden yapılandırma sorgu yapabilirsiniz dahili bir hata nedeniyle tamamlanamadı.

Dönüş değerleri şunlardır:

  • true : Akış yeniden yapılandırılması gereklidir.
  • false : Akış yeniden yapılandırılması gerekli değildir.

Bir oturum yeniden yapılandırma sorgusu göz ardı etmek, HAL döndüren METHOD_NOT_SUPPORTED veya false . Bu, her oturum parametresi değişikliğinde akışın yeniden yapılandırılmasının tetiklendiği varsayılan kamera hizmeti davranışıyla sonuçlanır.

doğrulama

Oturumu yeniden yapılandırma sorgu özelliği VTS test vakası kullanılarak doğrulanabilir CameraHidlTest#configureStreamsWithSessionParameters .