diff options
Diffstat (limited to 'sys/glsink/gstglbuffer.h')
-rw-r--r-- | sys/glsink/gstglbuffer.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/sys/glsink/gstglbuffer.h b/sys/glsink/gstglbuffer.h index e5a39441..cf2e0141 100644 --- a/sys/glsink/gstglbuffer.h +++ b/sys/glsink/gstglbuffer.h @@ -14,6 +14,7 @@ typedef struct _GstGLBuffer GstGLBuffer; #define GST_GL_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_GL_BUFFER, GstGLBuffer)) typedef enum { + GST_GL_BUFFER_FORMAT_UNKNOWN, GST_GL_BUFFER_FORMAT_RGBA, GST_GL_BUFFER_FORMAT_RGB, GST_GL_BUFFER_FORMAT_YUYV, @@ -41,21 +42,32 @@ struct _GstGLBuffer { GType gst_gl_buffer_get_type (void); GstGLBuffer * gst_gl_buffer_new (GstGLDisplay *display, + int width, int height); +GstGLBuffer * gst_gl_buffer_new_with_format (GstGLDisplay *display, GstGLBufferFormat format, int width, int height); -GstGLBuffer * gst_gl_buffer_new_from_data (GstGLDisplay *display, - GstVideoFormat format, int width, int height, void *data); +GstGLBuffer * gst_gl_buffer_new_from_video_format (GstGLDisplay *display, + GstVideoFormat format, int width, int height); +void gst_gl_buffer_upload (GstGLBuffer *buffer, + GstVideoFormat format, void *data); void gst_gl_buffer_download (GstGLBuffer *buffer, GstVideoFormat format, void *data); #define GST_GL_VIDEO_CAPS \ "video/x-raw-gl," \ - "format=(int)[0,10]," \ + "format=(int)1," \ + "is_yuv=(boolean)FALSE," \ "width=(int)[1,2048]," \ "height=(int)[1,2048]," \ "pixel-aspect-ratio=(fraction)1/1," \ "framerate=(fraction)[0/1,100/1]" +GstGLBufferFormat gst_gl_buffer_format_from_video_format (GstVideoFormat format); +int gst_gl_buffer_format_get_size (GstGLBufferFormat format, int width, + int height); +gboolean gst_gl_buffer_format_parse_caps (GstCaps *caps, GstGLBufferFormat *format, + int *width, int *height); + #endif |