การผสม Gstreamer SurfaceView และ GLSurfaceView

ฉันมีแอปพลิเคชัน Android ที่แสดงวิดีโอโดยใช้ gstreamer คล้ายกับบทช่วยสอนที่กล่าวถึงที่นี่:

http://docs.gstreamer.com/display/GstSDK/Android+tutorial+3%3A+Video

โดยเฉพาะอย่างยิ่งมันใช้ GStreamerSurfaceView ซึ่งขยาย SurfaceView

ตอนนี้ฉันต้องการดำเนินการบางอย่างกับวิดีโอด้วยไลบรารีอื่นที่ใช้ GLSurfaceView:

class DemoGLSurfaceView extends GLSurfaceView {

    public DemoGLSurfaceView(Context context) {
        super(context);
        setEGLContextClientVersion(2);
        mRenderer = new DemoRenderer(context);
        setRenderer(mRenderer);
    }
    DemoRenderer mRenderer;
}

class DemoRenderer implements GLSurfaceView.Renderer {
    Context act;

    public DemoRenderer(Context context) {
        act = context;
    }

    @Override
    public void onDrawFrame(GL10 arg0) {
        nativeRender();
    }

    @Override
    public void onSurfaceChanged(GL10 arg0, int arg1, int arg2) {
    }

    @Override
    public void onSurfaceCreated(GL10 arg0, EGLConfig arg1) {
    }
}

private static native void nativeRender();

ฉันจะ "แทรก" กระบวนการ GLSurfaceView NativeRender ลงใน GstreamerSurfaceView ได้อย่างไร


person gregoiregentil    schedule 20.04.2015    source แหล่งที่มา
comment
คุณกำลังพยายามประมวลผลทุกเฟรม เช่น youtube.com/watch?v=kH9kCP2T5Gg หรือเพียงแค่ให้ SurfaceView อันหนึ่งซ้อนทับอีกอัน ?   -  person fadden    schedule 20.04.2015
comment
ใช่ ฉันกำลังพยายามประมวลผลทุกเฟรม ฉันไม่ได้พยายามรวมไลบรารี่ grafika นี้เข้ากับ gstreamer-android แต่วัตถุประสงค์ของฉันดูคล้ายกันมาก ฉันต้องการสกัดกั้นแต่ละเฟรมที่ gstreamer แสดงผลไปยัง Surfaceview และประมวลผลด้วยไลบรารีอื่นนี้   -  person gregoiregentil    schedule 20.04.2015
comment
คุณไม่สามารถจับภาพผลลัพธ์ของ SurfaceView ได้ ดูเช่น stackoverflow.com/questions/27817577 หากคุณสามารถส่งเอาต์พุตไปยัง SurfaceTexture หรือ TextureView คุณสามารถคว้าแต่ละเฟรมได้   -  person fadden    schedule 20.04.2015
comment
ขอบคุณ. นั่นมีประโยชน์ ฉันเริ่มเข้าใจ ใช่ ฉันคิดว่าฉันต้องแก้ไข gstreamer เพื่อที่จะส่งออกไปยังองค์ประกอบหน่วยความจำที่ถูกต้อง เพื่อให้ไลบรารีและ GLSurfaceView สามารถรับและประมวลผลได้   -  person gregoiregentil    schedule 20.04.2015


คำตอบ (1)


โซลูชันประกอบด้วยการพัฒนาแอปวิดีโอซิงก์ของแอป Gstreamer ที่สามารถรับแต่ละเฟรมในหน่วยความจำและคัดลอกไปยัง OnDraw ของ GLSurfaceView

person gregoiregentil    schedule 29.04.2015