2012-03-28 20 views
20

Android'de GPU'da kamera görüntü işleme yapmak istiyorum.SurfaceTexture'ı RenderScript ile birlikte kullanma

Geçerli kurulumda, kamera görüntü akışından kareleri OpenGL ES dokusu olarak yakalamak için bir SurfaceTexture kullanıyorum. Bu, gölgelendiricilerimde kamera akışını elde etmenin etkili bir yoludur. (http://developer.android.com/reference/android/graphics/SurfaceTexture.html)

Artık doğrudan OenGL ES kullanımı yerine yeni RenderScript API'sini kullanmaya başlamak istiyorum. (http://developer.android.com/guide/topics/renderscript/index.html)

Ancak bir SurfaceTexture oluşturmak için, openGl Doku Kimliğini yapıcısına iletmem gerekiyor. Ne yazık ki, doku kimliği kullanılamaz (RenderScript doku kimliğini göstermeyen dokuları yüklemek için Ayırma sınıfını kullanır). Bu yüzden, RenderScript'i kullanırken bir SurfaceTexture oluşturamıyorum.

Tüm dökümantasyon belgelerini (ki hala oldukça seyrek) okudum ve örneklere baktım ancak konuyla ilgili hiçbir bilgisi yok.

Sorularım: RenderScript ile birlikte SurfaceTexture kullanmak mümkün mü yoksa canlı kamera akışını RenderScript Graphics komut dosyasında kullanmanın başka bir etkili yolu var mı?

cevap

1

Doğru anlıyorsam, zaten SurfaceTexture kullanıyorsunuz. Daha sonra setOnFrameAvailableListener ile bir geri arama kaydedebilirsiniz.

  1. Eğer SurfaceTexture.OnFrameAvailableListener devraldığı hangi RSTextureView kendi uygular:

    Ben iki çözüm bakın. Görünümünüzü SurfaceTexture geri bildirimi olarak kaydedin. Yüzey görünümünüz kamera akışı tarafından her güncellendiğinde, RSTextureView numaranız bildirilir ve istediğiniz şekilde işleyebilirsiniz.

  2. Başka bir çözüm uygulamak olacaktır senin RenderScriptGL (hala SurfaceTexture.OnFrameAvailableListener devralan) ve geri arama çağrıldığında setSurfaceTexture diyoruz kendi.

Bu iki çözümlerin en az biri ile bir SurfaceTexture ile RenderScript birleştirmek gerekir.

+0

Cevabı takdir ediyorum, ancak bu soruyu yayınladığımdan bu yana GLSL uygulamasını kullanmaya karar verdim. Bunun nedeni, çalışmasını kolaylaştırmanın kolay bir yolunu bulamamış olmama neden oldu; daha yakın bir zamanda, grafiksel grafikler bölümü 4.1'de (Jelly Bean) amortismana uğrayacaktı. Bu yüzden kendimi bu tezgâhı test etmedim. Bu iş parçacığının diğer takipçileri için: Bu cevabı kabul ediyorum çünkü makul bir şekilde dikiş yapıyor, ama uygulamamıştım. – Arjan