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 akışı 2 tarafından işlenen arabelleklerin dinamik olarak eklendiği ve ayrıldığı, kamera hizmeti içindeki özel bir paylaşılan çıkış akışının içindeki akış ayırıcı bileşeni tarafından referans sayıldığı ve 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 belgeler, geliştirici referansında bulunabilir:

Uygulama

Bu özellik çerçeve tarafında uygulandığından Kamera HAL tarafında uygulama gerekmez.

Doğrulama

Uygulamanız, bu özelliği kapsayan CTS destek kayıtlarını MultiViewTest modülünden ve yerel API için yerel JNI kitaplığından geçmelidir.