Oturum Parametreleri

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

Android 10'da, dahili oturum parametresi yeniden yapılandırma mantığı üzerinde daha fazla kontrol sağlamak 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

Referans oturum parametresi uygulaması zaten CameraHal'ın bir parçasıdır. Bu HAL, eski Hal API'sini kullanır. Kamera HIDL API'sini uygulayan bağlayıcı hale getirilmiş CameraHal, akış yapılandırması sırasında yeni gelen oturum parametrelerine erişmek için ilgili HIDL sessionParams girişini kullanmalıdır.

Kamera istemcileri, getAvailableSessionKeys() öğesini çağırarak desteklenen tüm oturum parametrelerinin anahtarlarını sorgulayabilir ve sonunda setSessionParameters() aracılığıyla başlangıç ​​değerlerini ayarlayabilir.

Uygulama

CameraHal uygulamanız, ANDROID_REQUEST_AVAILABLE_SESSION_KEYS ilgili statik kamera meta verileri içine doldurmalı ve kare başına uygulanması zor olan ve yakalama oturumu ömrü sırasında değiştirildiğinde beklenmeyen gecikmelere neden olabilecek anahtarların bir listesini içeren ANDROID_REQUEST_AVAILABLE_REQUEST_KEYS alt kümesini sağlamalıdır.

Tipik örnekler arasında zaman alan donanım yeniden yapılandırması veya dahili kamera hattı değişikliği gerektiren parametreler yer alır. Oturum parametreleri üzerindeki kontrol, yakalama isteklerinde hala uygulanabilir ancak istemciler, uygulamalarında gecikmelerin farkında olmalı ve bunları 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 hattını 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 parametresi listesinde tanımlayabilirsiniz. CameraHal mevcut oturum parametre listesini boş bırakırsa bu özellik aktif 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, bu parametrenin geçerli değeri, HAL katmanında akış yapılandırması sırasında iletilen oturum parametrelerinin bir parçası olarak dahil edilir.

Oturum parametreleri dikkatli seçilmelidir. Değerler akış yapılandırmaları arasında sık sık değişmemeli, hatta hiç değişmemelidir. Yakalama amacı gibi sık sık değişen parametreler uygun değildir ve bunların oturum parametre listesine eklenmesi aşırı dahili yeniden yapılandırma nedeniyle CTS hatalarına neden olabilir.

Oturum yeniden yapılandırma sorgusu

Android 10, oturum parametresi 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 endişeyi gidermek için HIDL ICameraDeviceSession sürüm 3.5 ve üzeri, dahili oturum parametresi yeniden yapılandırma mantığı üzerinde ayrıntılı kontrol sağlayan isReconfigurationRequired yöntemini destekler. Bu yöntemi kullanarak akışın yeniden yapılandırılması tam olarak gerektiğinde gerçekleşebilir.

isReconfigurationRequired argümanları, bekleyen her oturum parametresi değişikliği hakkında gerekli bilgileri sağlayarak çeşitli cihaza özgü özelleştirmelere olanak tanır.

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

Uygulama

Oturum yeniden yapılandırma sorgularını desteklemek amacıyla, yeni oturum parametresi değerleri için tam akış yeniden yapılandırmasının gerekli olup olmadığını kontrol etmek amacıyla isReconfigurationRequired yöntemini uygulamanız gerekir.

İstemci, tanıtılan herhangi bir oturum parametresinin değerini değiştirirse, kamera çerçevesi isReconfigurationRequired yöntemini çağırır. Belirli değerlere bağlı olarak HAL, akışın tamamen yeniden yapılandırılmasının gerekip gerekmediğine karar verir. HAL false değerini döndürürse kamera çerçevesi dahili yeniden yapılandırmayı atlar. HAL true değerini döndürürse, çerçeve akışları yeniden yapılandırır ve yeni oturum parametresi değerlerini buna göre iletir.

isReconfigurationRequired yöntemi, yeni parametreler içeren bir isteğin HAL'ye gönderilmesinden bir süre önce çerçeve tarafından çağrılabilir ve istek gönderilmeden önce iptal edilebilir. Bu nedenle HAL, bu yöntem çağrısını hiçbir şekilde davranışını değiştirmek için kullanmamalıdır.

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

  • Çerçeve, etkin oturum yapılandırmasından sonra herhangi bir zamanda isReconfigurationRequired yöntemini çağırabilmelidir.
  • Bekleyen kamera isteklerinin performansı üzerinde hiçbir etki olmamalıdır. Özellikle normal kamera akışı sırasında herhangi bir aksaklık veya gecikme olmamalıdır.

Cihaz ve HAL uygulamasının aşağıdaki performans gereksinimlerini karşılaması gerekir:

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

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

  • oldSessionParams : Önceki oturuma ait oturum parametreleri. Genellikle mevcut oturum parametreleri.
  • newSessionParams : İstemci tarafından ayarlanan yeni oturum parametreleri.

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

  • OK : Başarılı yeniden yapılandırma gerekli sorgu.
  • METHOD_NOT_SUPPORTED : Kamera cihazı yeniden yapılandırma sorgusunu desteklemiyor.
  • INTERNAL_ERROR : Yeniden yapılandırma sorgusu dahili bir hata nedeniyle tamamlanamıyor.

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

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

Oturum yeniden yapılandırma sorgusunu yoksaymak için HAL, METHOD_NOT_SUPPORTED veya false değerini döndürür. 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

Oturum yeniden yapılandırma sorgusu özelliği, CameraHidlTest#configureStreamsWithSessionParameters içindeki VTS test durumu kullanılarak doğrulanabilir.