Bu özellik, kamera istemcilerinin kayıt oturumu etkinken ve kamera aktarımı devam ederken çıkış yüzeylerini dinamik olarak eklemesine ve kaldırmasına olanak tanıyan bir dizi yöntem sunar. Yeni bir çıkış, kullanıcı tarafından seçilen belirli bir ortak kamera akışıyla eşlenebilir. Eklenen yüzeyler dilediğiniz zaman kaldırılabilir.
Genel fikir, belirli bir kamera akışıyla ilişkili arabellekleri birkaç çıkış yüzeyinde paylaşmaktır. Tüketici tarafında daha fazla işleme hazır hale geldikçe dahili bir referans sayacı, arabelleklerin takibini yapar. Tüm tüketiciler kendi görevlerini tamamladığında arabellek sıra dışı bırakılır ve kamera için kullanılabilir hale gelir.
Şekil 1. Arabellek paylaşımı
Şekil 1'de, kamera 2 akışı tarafından işlenen arabelleklerin dinamik olarak eklenip kaldırıldığı, referans sayıldığı ve kamera hizmetindeki özel bir paylaşılan çıkış akışı içindeki akış ayırıcı bileşeni tarafından yönetildiği bir örnek senaryo gösterilmektedir.
Örnekler ve kaynak
Bu özelliğin temel uygulamasını Camera3StreamSplitter
modülünde bulabilirsiniz. Bu özellikle ilgili dokümanları geliştirici referansında bulabilirsiniz:
Uygulama
Bu özellik çerçeve tarafında uygulandığından Kamera HAL tarafında uygulama gerekmez.
Doğrulama
Uygulamanız, MultiViewTest modülündeki bu özelliği kapsayan CTS testlerini ve yerel API için yerel JNI kitaplığını geçmelidir.