混合Gstreamer SurfaceView和GLSurfaceView

时间:2015-04-20 01:24:08

标签: android surfaceview gstreamer glsurfaceview

我有一个使用gstreamer显示视频的Android应用程序。它类似于这里提到的教程:

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

特别是,它使用扩展SurfaceView的GStreamerSurfaceView。

我现在想要使用另一个使用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?

1 个答案:

答案 0 :(得分:0)

解决方案包括开发一个Gstreamer app视频接收器,它可以将每个帧放入内存并将其复制到GLDurfaceView的OnDraw。