mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 04:01:08 +00:00
move create_element virtual method up to TimelineSource class
This commit is contained in:
parent
0da3bc58a7
commit
71df7618e0
2 changed files with 28 additions and 2 deletions
|
@ -64,7 +64,29 @@ ges_track_source_finalize (GObject * object)
|
|||
static gboolean
|
||||
ges_track_source_create_gnl_object (GESTrackObject * object)
|
||||
{
|
||||
object->gnlobject = gst_element_factory_make ("gnlsource", NULL);
|
||||
GESTrackSourceClass *klass = NULL;
|
||||
GESTrackSource *self = NULL;
|
||||
GstElement *child = NULL;
|
||||
GstElement *gnlobject;
|
||||
|
||||
self = GES_TRACK_SOURCE (object);
|
||||
klass = GES_TRACK_SOURCE_GET_CLASS (self);
|
||||
|
||||
gnlobject = gst_element_factory_make ("gnlsource", NULL);
|
||||
|
||||
if (klass->create_element) {
|
||||
child = klass->create_element (self);
|
||||
|
||||
if (G_UNLIKELY (!child)) {
|
||||
GST_ERROR ("create_element returned NULL");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
gst_bin_add (GST_BIN (gnlobject), child);
|
||||
self->element = child;
|
||||
}
|
||||
|
||||
object->gnlobject = gnlobject;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -81,6 +103,7 @@ ges_track_source_class_init (GESTrackSourceClass * klass)
|
|||
object_class->finalize = ges_track_source_finalize;
|
||||
|
||||
track_class->create_gnl_object = ges_track_source_create_gnl_object;
|
||||
klass->create_element = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#define _GES_TRACK_SOURCE
|
||||
|
||||
#include <glib-object.h>
|
||||
#include <gst/gst.h>
|
||||
#include <ges/ges-types.h>
|
||||
#include <ges/ges-track-object.h>
|
||||
|
||||
|
@ -53,8 +54,9 @@ G_BEGIN_DECLS
|
|||
*/
|
||||
|
||||
struct _GESTrackSource {
|
||||
/* <public> */
|
||||
GESTrackObject parent;
|
||||
GstElement *element;
|
||||
/* <public> */
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -67,6 +69,7 @@ struct _GESTrackSource {
|
|||
|
||||
struct _GESTrackSourceClass {
|
||||
GESTrackObjectClass parent_class;
|
||||
GstElement *(*create_element) (GESTrackSource *);
|
||||
};
|
||||
|
||||
GType ges_track_source_get_type (void);
|
||||
|
|
Loading…
Reference in a new issue