mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-19 23:06:49 +00:00
eglglessink: Drop drafted fast rendering path logic
This commit is contained in:
parent
9e8ad1097b
commit
ab81bd8f1e
2 changed files with 289 additions and 975 deletions
File diff suppressed because it is too large
Load diff
|
@ -71,31 +71,19 @@ G_BEGIN_DECLS
|
||||||
#define GST_EGLGLESSINK_IMAGE_RGB565 2
|
#define GST_EGLGLESSINK_IMAGE_RGB565 2
|
||||||
#define GST_EGLGLESSINK_IMAGE_RGBA8888 3
|
#define GST_EGLGLESSINK_IMAGE_RGBA8888 3
|
||||||
#define GST_EGLGLESSINK_EGL_MIN_VERSION 1
|
#define GST_EGLGLESSINK_EGL_MIN_VERSION 1
|
||||||
typedef struct _GstEglGlesBuffer GstEglGlesBuffer;
|
|
||||||
typedef struct _GstEglGlesBufferClass GstEglGlesBufferClass;
|
|
||||||
|
|
||||||
typedef struct _GstEglGlesSink GstEglGlesSink;
|
typedef struct _GstEglGlesSink GstEglGlesSink;
|
||||||
typedef struct _GstEglGlesSinkClass GstEglGlesSinkClass;
|
typedef struct _GstEglGlesSinkClass GstEglGlesSinkClass;
|
||||||
typedef struct _GstEglGlesRenderContext GstEglGlesRenderContext;
|
typedef struct _GstEglGlesRenderContext GstEglGlesRenderContext;
|
||||||
|
|
||||||
typedef struct _GstEglGlesImageFmt GstEglGlesImageFmt;
|
typedef struct _GstEglGlesImageFmt GstEglGlesImageFmt;
|
||||||
|
|
||||||
/* Should be extended if new rendering methods
|
|
||||||
* get implemented.
|
|
||||||
*/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
GST_EGLGLESSINK_RENDER_SLOW,
|
|
||||||
GST_EGLGLESSINK_RENDER_FAST
|
|
||||||
} GstEglGlesSinkRenderingPath;
|
|
||||||
|
|
||||||
typedef struct _coord5
|
typedef struct _coord5
|
||||||
{
|
{
|
||||||
float x;
|
float x;
|
||||||
float y;
|
float y;
|
||||||
float z;
|
float z;
|
||||||
float a; /* texpos x */
|
float a; /* texpos x */
|
||||||
float b; /* texpos y */
|
float b; /* texpos y */
|
||||||
} coord5;
|
} coord5;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -145,7 +133,7 @@ struct _GstEglGlesRenderContext
|
||||||
/* shader vars */
|
/* shader vars */
|
||||||
GLuint position_loc[2], texpos_loc;
|
GLuint position_loc[2], texpos_loc;
|
||||||
GLuint tex_loc[3];
|
GLuint tex_loc[3];
|
||||||
coord5 position_array[12]; /* 3 x Frame, 3 x Border1, 3 x Border2 */
|
coord5 position_array[12]; /* 3 x Frame, 3 x Border1, 3 x Border2 */
|
||||||
unsigned short index_array[4];
|
unsigned short index_array[4];
|
||||||
unsigned int position_buffer, index_buffer;
|
unsigned int position_buffer, index_buffer;
|
||||||
};
|
};
|
||||||
|
@ -166,33 +154,6 @@ struct _GstEglGlesImageFmt
|
||||||
GstCaps *caps; /* Matching caps for the attribs */
|
GstCaps *caps; /* Matching caps for the attribs */
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
* GstEglGlesBuffer:
|
|
||||||
* @buffer: GST buffer
|
|
||||||
* @eglglessink: Pointer to the eglglessink instance this buffer belongs to
|
|
||||||
* @image: Pointer to the EGL image data
|
|
||||||
* @format: Image's picture format
|
|
||||||
* @width: Image's pixel width
|
|
||||||
* @height: Image's pixel height
|
|
||||||
* @size: Image's data size
|
|
||||||
*
|
|
||||||
* This struct holds the internal representation of the sink's custom
|
|
||||||
* buffer. This implementation is just a draft and only makes sense for
|
|
||||||
* the fast rendering path logic.
|
|
||||||
*/
|
|
||||||
struct _GstEglGlesBuffer
|
|
||||||
{
|
|
||||||
/* XXX: Maybe use GstVideoRectangle for the image data? */
|
|
||||||
GstBuffer buffer;
|
|
||||||
GstEglGlesSink *eglglessink;
|
|
||||||
|
|
||||||
EGLint *image;
|
|
||||||
gint format;
|
|
||||||
|
|
||||||
gint width, height;
|
|
||||||
size_t size;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GstEglGlesSink:
|
* GstEglGlesSink:
|
||||||
* @par_n: Incoming frame's aspect ratio numerator
|
* @par_n: Incoming frame's aspect ratio numerator
|
||||||
|
@ -220,8 +181,8 @@ struct _GstEglGlesBuffer
|
||||||
*/
|
*/
|
||||||
struct _GstEglGlesSink
|
struct _GstEglGlesSink
|
||||||
{
|
{
|
||||||
GstVideoSink videosink; /* Element hook */
|
GstVideoSink videosink; /* Element hook */
|
||||||
int par_n, par_d; /* Aspect ratio from caps */
|
int par_n, par_d; /* Aspect ratio from caps */
|
||||||
|
|
||||||
GstVideoFormat format;
|
GstVideoFormat format;
|
||||||
GstVideoRectangle display_region;
|
GstVideoRectangle display_region;
|
||||||
|
@ -229,7 +190,6 @@ struct _GstEglGlesSink
|
||||||
GstCaps *current_caps, *configured_caps;
|
GstCaps *current_caps, *configured_caps;
|
||||||
|
|
||||||
GstEglGlesImageFmt *selected_fmt;
|
GstEglGlesImageFmt *selected_fmt;
|
||||||
GstEglGlesSinkRenderingPath rendering_path;
|
|
||||||
GstEglGlesRenderContext eglglesctx;
|
GstEglGlesRenderContext eglglesctx;
|
||||||
|
|
||||||
GList *supported_fmts;
|
GList *supported_fmts;
|
||||||
|
@ -251,7 +211,6 @@ struct _GstEglGlesSink
|
||||||
|
|
||||||
/* Properties */
|
/* Properties */
|
||||||
gboolean create_window;
|
gboolean create_window;
|
||||||
gboolean force_rendering_slow;
|
|
||||||
gboolean force_aspect_ratio;
|
gboolean force_aspect_ratio;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue