Tek üretici, birden fazla tüketici kamera arabelleği aktarımı

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.

Arabellek paylaşımı

Ş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.