diff options
Diffstat (limited to 'media/tools/player_x11/gles_video_renderer.h')
-rw-r--r-- | media/tools/player_x11/gles_video_renderer.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/media/tools/player_x11/gles_video_renderer.h b/media/tools/player_x11/gles_video_renderer.h index 39478ac..075bdbc 100644 --- a/media/tools/player_x11/gles_video_renderer.h +++ b/media/tools/player_x11/gles_video_renderer.h @@ -6,12 +6,14 @@ #define MEDIA_TOOLS_PLAYER_X11_GL_VIDEO_RENDERER_H_ #include <EGL/egl.h> +#include <EGL/eglext.h> #include <GLES2/gl2.h> #include <GLES2/gl2ext.h> #include "base/lock.h" #include "base/scoped_ptr.h" #include "media/base/factory.h" +#include "media/base/video_frame.h" #include "media/filters/video_renderer_base.h" class GlesVideoRenderer : public media::VideoRendererBase { @@ -44,7 +46,16 @@ class GlesVideoRenderer : public media::VideoRendererBase { friend class scoped_refptr<GlesVideoRenderer>; virtual ~GlesVideoRenderer(); + GLuint FindTexture(scoped_refptr<media::VideoFrame> video_frame); bool InitializeGles(); + void CreateShader(GLuint program, GLenum type, + const char* vs_source, int vs_size); + void LinkProgram(GLuint program); + void CreateTextureAndProgramEgl(); + void CreateTextureAndProgramYuv2Rgb(); + + PFNEGLCREATEIMAGEKHRPROC egl_create_image_khr_; + PFNEGLDESTROYIMAGEKHRPROC egl_destroy_image_khr_; int width_; int height_; @@ -62,6 +73,10 @@ class GlesVideoRenderer : public media::VideoRendererBase { EGLSurface egl_surface_; EGLContext egl_context_; + // textures for EGL image + typedef std::pair<scoped_refptr<media::VideoFrame>, GLuint> EglFrame; + std::vector<EglFrame> egl_frames_; + // 3 textures, one for each plane. GLuint textures_[3]; |