Oturum parametreleri özelliği, kamera istemcilerinin maliyetli istek parametrelerinin alt kümesini (ör. oturum parametrelerini kullanır. Bununla özelliğini kullanıyorsanız, HAL uygulamalarınız ilk yakalama isteği yerine akış yapılandırma aşamasına dahili ardışık düzeni, ihtiyaçlarına uygun şekilde hazırlayarak ve yolları aranır.
Android 10'da performansı iyileştirmek için isteğe bağlı oturum yeniden yapılandırma sorgu özelliğini, dahili oturum parametresi yeniden yapılandırma mantığını inceleyin. Daha fazla bilgi için bkz. Oturum yeniden yapılandırma sorgusu.
Örnekler ve kaynak
Referans oturum parametresi uygulaması zaten KameraHal'a gidin. Bu HAL, eski Hal API'sini kullanır. binderized Kamera HIDL API'sini uygulayan CameraHal, ilgili HIDL'yi kullanmalıdır. sessionParams oturum açma/kapatma işlevini kullanın.
Kamera istemcileri, desteklenen tüm oturum parametrelerinin anahtarlarını
getAvailableSessionKeys()
ve sonunda başlangıç değerlerini
setSessionParameters()
.
Uygulama
CameraHal uygulamanız
ANDROID_REQUEST_AVAILABLE_SESSION_KEYS
ilgili statik kamera meta verisine ekleyin ve
ANDROID_REQUEST_AVAILABLE_REQUEST_KEYS
,
çerçeve başına uygulanması zor olan ve 20/32'ye kadar
uygulanabilen anahtarların
yakalama oturumu ömrü boyunca değiştirildiğinde beklenmedik gecikmelere neden olabilir.
Tipik örnekler arasında zaman alan donanım gerektiren parametreler veya dahili kamera ardışık düzeni değişikliği olabilir. Oturum üzerinde kontrol parametrelerin yine de yakalama isteklerine uygulanabileceğini unutmayın. Ancak müşteriler gecikmeleri de yaşayabiliyor.
Çerçeve, gelen tüm istekleri izler ve değerini görürseniz kamerayı dahili olarak yeniden yapılandırır. Yeni StreamHal'a aktarılan akış yapılandırması, güncellenen oturumu içerir kamera ardışık düzenini daha fazla yapılandırmak için kullanılan yolları aranır.
Özelleştirme
Etiketleri, şurada doldurulan kullanılabilir oturum parametresi listesinde tanımlayabilirsiniz: KameraHal tarafına da bakacağız. CameraHal, fotoğraf makinesinden ayrılırsa bu özellik etkin değildir. mevcut oturum parametresi listesi boş.
Doğrulama
CTS, oturum parametrelerinin test edilmesi için aşağıdaki yeni durumları içerir:
CameraDeviceTest#testSessionConfiguration
CameraDeviceTest#testCreateSessionWithParameters
CameraDeviceTest#testSessionParametersStateLeak
NativeCameraDeviceTest#testCameraDevicePreviewWithSessionParameters
Genel olarak, belirli bir parametre oturum anahtar listesinde yer aldıktan sonra, geçerli değer, akış sırasında iletilen oturum parametrelerinin bir parçası olarak eklenir yapılandırmasıdır.
Oturum parametreleri dikkatli bir şekilde seçilmelidir. Değerler değişmemelidir. akış yapılandırmalarını kullanın. Değişen parametreler pek çok yöntem için uygun değildir ve bunları oturum parametresi listesi, aşırı miktarda dahili değer nedeniyle CTS hatalarına neden olabilir yeniden yapılandırma.
Oturum yeniden yapılandırma sorgusu
Android 10, isteğe bağlı bir oturum sunuyor
sorgu özelliğini
oturumdan kaynaklanan dahili akış yeniden yapılandırmaları olarak performansı artırır
parametre değerlerinde yapılan değişiklikler performansı düşürebilir. Bu sorunu gidermek için
İDL
ICameraDeviceSession
3.5 ve sonraki sürümler
isReconfigurationRequired
yönteminde dahili oturum parametresi üzerinde ayrıntılı kontrol
yeniden yapılandırma mantığına
dayanıyor. Bu yöntem kullanıldığında akış yeniden yapılandırılabilir
tam olarak isabetli olur.
isReconfigurationRequired
için bağımsız değişkenler
beklemedeki her oturum parametresi hakkında gerekli bilgileri sağlama
kullanarak cihaza özel çeşitli özelleştirmeler yapabilirsiniz.
Bu özellik yalnızca kamera hizmetinde ve kamera donanım soyutlama katmanında uygulanır. Orada herkese açık API değildir. Bu özellik uygulanırsa kamera istemcileri oturum parametreleriyle çalışırken performans iyileştirmeleri görebilirsiniz.
Uygulama
Oturum yeniden yapılandırma sorgularını desteklemek için
isReconfigurationRequired
yeni dönüşüm izleme sistemi için gerekli akışı
yeniden yapılandırmanın gerekli olup olmadığını
oturum parametresi değerleri.
Müşteri, reklamı yapılan herhangi bir oturum parametresinin değerini değiştirirse kameranın
çerçeve, isReconfigurationRequired
öğesini çağırır
yöntemidir. Belirli değerlere bağlı olarak, HAL, tam bir
Akışın yeniden yapılandırılması gerekiyor. HAL, false
sonucunu döndürürse kamera
dahili yeniden yapılandırmayı atlar. HAL, true
sonucunu döndürürse
çerçeve, akışları yeniden yapılandırır ve yeni oturum parametresi değerlerini iletir
buna göre hazırlar.
isReconfigurationRequired
yöntemi, çerçeve tarafından bir süre çağrılabilir
HAL'ye yeni parametreler içeren bir istek gönderilmeden ve
gönderilmeden önce iptal edilebilir. Dolayısıyla, HAL, başka bir sunucu tarafından
yöntemini çağırın.
HAL uygulaması aşağıdaki şartları karşılamalıdır:
- Çerçeve,
isReconfigurationRequired
yöntemini çağırabilmelidir . - Bu durumun, beklemedeki kamera isteklerinin performansı üzerinde herhangi bir etkisi olmamalıdır. İçinde normal kamera sırasında herhangi bir aksama veya gecikme olmamalıdır. yayın.
Cihaz ve HAL uygulaması, aşağıdaki performansı karşılamalıdır koşullar:
- Donanım ve yazılımın kamera ayarları değiştirilmemelidir.
- Kullanıcıların kamera performansı üzerinde herhangi bir etkisi olmamalıdır.
isReconfigurationRequired
yöntemi aşağıdaki bağımsız değişkenleri alır:
oldSessionParams
: Önceki oturumun oturum parametreleri. Genellikle mevcut oturum parametreleridir.newSessionParams
: İstemci tarafından ayarlanan yeni oturum parametreleri.
Beklenen dönüş durumu kodları:
OK
: Sorgu yeniden yapılandırma işlemi başarıyla tamamlandı.METHOD_NOT_SUPPORTED
: Kamera cihazı şunları desteklemiyor: yeniden yapılandırma sorgusu.INTERNAL_ERROR
: Yeniden yapılandırma sorgusu, dahili hata.
Döndürülen değerler şunlardır:
true
: Akışın yeniden yapılandırılması gerekiyor.false
: Akışı yeniden yapılandırmanız gerekmez.
Bir oturum yeniden yapılandırma sorgusunu yoksaymak için HAL,
METHOD_NOT_SUPPORTED
veya false
. Bu işlem, varsayılan kamera hizmetinin kullanılmasını sağlar
Her oturum parametresinde akış yeniden yapılandırmasının tetiklendiği davranış
unutmayın.
Doğrulama
Oturum yeniden yapılandırma sorgu özelliği, VTS testi kullanılarak doğrulanabilir
büyük/küçük harf kullanımı
CameraHidlTest#configureStreamsWithSessionParameters
.