[512/906] GstGLMixer: update for 1.0 based on the videomixer2 element in -good

This commit is contained in:
Matthew Waters 2012-06-19 15:54:24 +10:00 committed by Tim-Philipp Müller
parent 3e18471e8e
commit 25aa8a4042
3 changed files with 959 additions and 433 deletions

File diff suppressed because it is too large Load diff

View file

@ -56,36 +56,31 @@ struct _GstGLMixer
GstPad *srcpad;
/* Lock to prevent the state to change while blending */
GMutex *state_lock;
GMutex lock;
/* Sink pads using Collect Pads from core's base library */
GstCollectPads *collect;
/* sinkpads, a GSList of GstGLMixerPads */
GSList *sinkpads;
GPtrArray *array_buffers;
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 */
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 */
GstPadEventFunction collect_event;
guint64 segment_position;
gdouble segment_rate;
gdouble proportion;
GstClockTime earliest_time;
guint64 qos_processed, qos_dropped;
GstGLDisplay *display;
GLuint fbo;

View file

@ -46,7 +46,11 @@ struct _GstGLMixerCollect
{
GstCollectData collect; /* we extend the CollectData */
GstBuffer *queued;
GstBuffer *buffer; /* the queued buffer for this pad */
GstClockTime start_time;
GstClockTime end_time;
GstGLMixerPad *mixpad;
};
@ -56,12 +60,8 @@ struct _GstGLMixerPad
{
GstPad parent; /* subclass the pad */
gint64 queued;
gint width;
gint height;
gint fps_n;
gint fps_d;
/* <private> */
GstVideoInfo info;
GstGLDisplay *display;
@ -73,5 +73,7 @@ struct _GstGLMixerPadClass
GstPadClass parent_class;
};
GType gst_gl_mixer_pad_get_type (void);
G_END_DECLS
#endif /* __GST_GL_MIXER_PAD_H__ */