mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-11 18:05:37 +00:00
[512/906] GstGLMixer: update for 1.0 based on the videomixer2 element in -good
This commit is contained in:
parent
3e18471e8e
commit
25aa8a4042
3 changed files with 959 additions and 433 deletions
File diff suppressed because it is too large
Load diff
|
@ -56,36 +56,31 @@ struct _GstGLMixer
|
||||||
GstPad *srcpad;
|
GstPad *srcpad;
|
||||||
|
|
||||||
/* Lock to prevent the state to change while blending */
|
/* Lock to prevent the state to change while blending */
|
||||||
GMutex *state_lock;
|
GMutex lock;
|
||||||
/* Sink pads using Collect Pads from core's base library */
|
/* Sink pads using Collect Pads from core's base library */
|
||||||
GstCollectPads *collect;
|
GstCollectPads *collect;
|
||||||
|
|
||||||
/* sinkpads, a GSList of GstGLMixerPads */
|
/* sinkpads, a GSList of GstGLMixerPads */
|
||||||
GSList *sinkpads;
|
GSList *sinkpads;
|
||||||
|
|
||||||
GPtrArray *array_buffers;
|
|
||||||
|
|
||||||
gint numpads;
|
gint numpads;
|
||||||
|
|
||||||
GstClockTime last_ts;
|
|
||||||
|
|
||||||
/* the master pad */
|
|
||||||
GstGLMixerPad *master;
|
|
||||||
|
|
||||||
gint width;
|
|
||||||
gint height;
|
|
||||||
gboolean setcaps;
|
|
||||||
gboolean sendseg;
|
|
||||||
|
|
||||||
gint fps_n;
|
|
||||||
gint fps_d;
|
|
||||||
|
|
||||||
/* Next available sinkpad index */
|
/* Next available sinkpad index */
|
||||||
gint next_sinkpad;
|
gint next_sinkpad;
|
||||||
|
|
||||||
|
GPtrArray *array_buffers;
|
||||||
|
|
||||||
|
GstVideoInfo info;
|
||||||
|
|
||||||
|
gboolean newseg_pending;
|
||||||
|
gboolean flush_stop_pending;
|
||||||
|
|
||||||
|
GstSegment segment;
|
||||||
|
GstClockTime ts_offset;
|
||||||
|
guint64 nframes;
|
||||||
|
|
||||||
/* sink event handling */
|
/* sink event handling */
|
||||||
GstPadEventFunction collect_event;
|
gdouble proportion;
|
||||||
guint64 segment_position;
|
GstClockTime earliest_time;
|
||||||
gdouble segment_rate;
|
guint64 qos_processed, qos_dropped;
|
||||||
|
|
||||||
GstGLDisplay *display;
|
GstGLDisplay *display;
|
||||||
GLuint fbo;
|
GLuint fbo;
|
||||||
|
|
|
@ -46,7 +46,11 @@ struct _GstGLMixerCollect
|
||||||
{
|
{
|
||||||
GstCollectData collect; /* we extend the CollectData */
|
GstCollectData collect; /* we extend the CollectData */
|
||||||
|
|
||||||
|
GstBuffer *queued;
|
||||||
|
|
||||||
GstBuffer *buffer; /* the queued buffer for this pad */
|
GstBuffer *buffer; /* the queued buffer for this pad */
|
||||||
|
GstClockTime start_time;
|
||||||
|
GstClockTime end_time;
|
||||||
|
|
||||||
GstGLMixerPad *mixpad;
|
GstGLMixerPad *mixpad;
|
||||||
};
|
};
|
||||||
|
@ -56,12 +60,8 @@ struct _GstGLMixerPad
|
||||||
{
|
{
|
||||||
GstPad parent; /* subclass the pad */
|
GstPad parent; /* subclass the pad */
|
||||||
|
|
||||||
gint64 queued;
|
/* <private> */
|
||||||
|
GstVideoInfo info;
|
||||||
gint width;
|
|
||||||
gint height;
|
|
||||||
gint fps_n;
|
|
||||||
gint fps_d;
|
|
||||||
|
|
||||||
GstGLDisplay *display;
|
GstGLDisplay *display;
|
||||||
|
|
||||||
|
@ -73,5 +73,7 @@ struct _GstGLMixerPadClass
|
||||||
GstPadClass parent_class;
|
GstPadClass parent_class;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
GType gst_gl_mixer_pad_get_type (void);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
#endif /* __GST_GL_MIXER_PAD_H__ */
|
#endif /* __GST_GL_MIXER_PAD_H__ */
|
||||||
|
|
Loading…
Reference in a new issue