CameraPreview gibi feed MediaCodec with Surface input'un nasıl gösterildiği gösterildi, ancak bu girdiyi MediaCodec
ürününe göndermeden önce arabelleğe almanın pratik yolları var mı? Benim experiments yılındaMediaCodec'e Tamponlama Yüzey girişi
, Galaxy Nexus byte[]
veya ByteBuffer
girişli MediaCodec
kullanırken CameraToMpegTest.java
doğrudan, senkron kodlama yöntemi kullanarak ses/video akışı üretiminde kabul edilemez hıçkırık yaşar, bir ExecutorService
için kodlanmamış veri gönderebilir Cihazın uygulama kontrolümüz dışında CPU kullanımında ani artışlar yaşansa bile, kareler oluşmamasını sağlamak için işleme için benzer bir kuyruk. Ancak, color format conversion between Android's Camera and MediaCodec gerçekleştirme gerekliliği nedeniyle, bu yöntem yüksek çözünürlüklü, canlı video için gerçekçi değildir.
Düşünceler:
MediaCodec
içinEGL14.eglCopyBuffers(EGLDisplay d, EGLSurface s, NativePixmapType p)
ile oluşturulanNativePixmapType
beslemek için bir yolu var mı?Android'den herhangi bir kişi, Kamera ile MediaCodec arasında ByteBuffer biçimlerinin uyumlu hale getirilip getirilmediğini yol haritası üzerinde yorumlayabilir mi?
Bu nedenle, MediaCodec'in girdisine kareleri geçirirken hıçkırıkları çözmenin bir yolunu buldunuz mu? Benim durumumda, MediaModer'a beslerken MediaCodec'in çıktısını tamponluyorum. Ancak, MediaMuxer'in girdisini beslemek için swapBuffers() öğesini çağırırken hıçkırıklar yaşıyorum. – Petrakeas