编码gpu处理过的数据

来源:互联网 发布:防水喷雾 知乎 编辑:程序博客网 时间:2024/06/06 00:44
video encoder可以直接编码gpu处理过的数据,为了减少带宽需求,video encoder最好支持gpu输出的格式:
在android4.0 system/media/mca/filterfw/jni/jni_gl_enviroment.cpp
Java_android_filterfw_core_GLEnvironment_nativeAddSurfaceFromMediaRecorder()函数中,
会从encoder那边拿到一个window    // Get the ANativeWindow
    sp<ANativeWindow> window = surfaceTC;
用这个window创建一个surface,eglCreateWindowSurface。
如下的configAttribs在我们的平台上最终选择的config会是什么呢?我的想法是让encoder直接支持这个格式的编码。
    EGLint configAttribs[] = {
          EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
          EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
          EGL_RED_SIZE, 8,
          EGL_GREEN_SIZE, 8,
          EGL_BLUE_SIZE, 8,
          EGL_RECORDABLE_ANDROID, EGL_TRUE,
          EGL_NONE
    };