From dd631dbf283ab7636f2362464657011296688201 Mon Sep 17 00:00:00 2001 From: Brandon Lewis Date: Mon, 21 Jun 2010 16:22:06 +0200 Subject: [PATCH] check in ges-track-overlay.{c,h} --- docs/libs/ges-sections.txt | 18 +++++++ ges/Makefile.am | 2 + ges/ges-timeline-overlay.c | 2 +- ges/ges-track-overlay.c | 130 +++++++++++++++++++++++++++++++++++++++++++++ ges/ges-track-overlay.h | 78 +++++++++++++++++++++++++++ ges/ges-types.h | 4 ++ ges/ges.h | 1 + 7 files changed, 234 insertions(+), 1 deletion(-) create mode 100644 ges/ges-track-overlay.c create mode 100644 ges/ges-track-overlay.h diff --git a/docs/libs/ges-sections.txt b/docs/libs/ges-sections.txt index a209cd4..1bf0506 100644 --- a/docs/libs/ges-sections.txt +++ b/docs/libs/ges-sections.txt @@ -463,6 +463,7 @@ GES_TYPE_TRACK_VIDEO_TITLE_SOURCE
ges-track-audio-title-source +GESTrackAudioTitleSource GESTrackAudioTitleSource GESTrackAudioTitleSourceClass ges_track_audio_title_source_new @@ -482,3 +483,20 @@ GES_TRACK_AUDIO_TITLE_SOURCE_CLASS GES_TRACK_AUDIO_TITLE_SOURCE_GET_CLASS GES_TYPE_TRACK_AUDIO_TITLE_SOURCE
+ +
+ges-track-overlay +GESTrackOverlay +GESTrackOverlay +GESTrackOverlayClass +ges_track_overlay_get_type +ges_track_overlay_new + +GES_IS_TRACK_OVERLAY +GES_IS_TRACK_OVERLAY_CLASS +GES_TRACK_OVERLAY +GES_TRACK_OVERLAY_CLASS +GES_TRACK_OVERLAY_GET_CLASS +GES_TYPE_TRACK_OVERLAY +
+ diff --git a/ges/Makefile.am b/ges/Makefile.am index f29ec17..63abfcd 100644 --- a/ges/Makefile.am +++ b/ges/Makefile.am @@ -34,6 +34,7 @@ libges_@GST_MAJORMINOR@_la_SOURCES = \ ges-track-title-source.c \ ges-track-video-title-source.c \ ges-track-audio-title-source.c \ + ges-track-overlay.c \ ges-utils.c libges_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/ges/ @@ -66,6 +67,7 @@ libges_@GST_MAJORMINOR@include_HEADERS = \ ges-track-title-source.h \ ges-track-video-title-source.h \ ges-track-audio-title-source.h \ + ges-track-overlay.h \ ges-utils.h libges_@GST_MAJORMINOR@_la_CFLAGS = -I$(top_srcdir) $(GST_PROFILE_CFLAGS) $(GST_DISCOVERER_CFLAGS) $(GST_CONTROLLER_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) diff --git a/ges/ges-timeline-overlay.c b/ges/ges-timeline-overlay.c index c4c91f6..1043e41 100644 --- a/ges/ges-timeline-overlay.c +++ b/ges/ges-timeline-overlay.c @@ -35,7 +35,7 @@ //#include "ges-track-audio-overlay.h" #include -G_DEFINE_TYPE (GESTimelineOverlay, ges_tl_overlay, GES_TYPE_TIMELINE_SOURCE); +G_DEFINE_TYPE (GESTimelineOverlay, ges_tl_overlay, GES_TYPE_TIMELINE_OBJECT); #define DEFAULT_PROP_TEXT "" #define DEFAULT_PROP_FONT_DESC DEFAULT_FONT_DESC diff --git a/ges/ges-track-overlay.c b/ges/ges-track-overlay.c new file mode 100644 index 0000000..1d5e2da --- /dev/null +++ b/ges/ges-track-overlay.c @@ -0,0 +1,130 @@ +/* GStreamer Editing Services + * Copyright (C) 2009 Edward Hervey + * 2009 Nokia Corporation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:ges-track-title-source + * @short_description: Base Class for single-media sources + */ + +#include "ges-internal.h" +#include "ges-track-overlay.h" + +G_DEFINE_TYPE (GESTrackOverlay, ges_track_overlay, GES_TYPE_TRACK_OBJECT); + +static void ges_track_overlay_get_property (GObject * object, + guint property_id, GValue * value, GParamSpec * pspec); + +static void ges_track_overlay_dispose (GObject *); + +static void ges_track_overlay_finalize (GObject *); + +static void ges_track_overlay_set_property (GObject * object, + guint property_id, const GValue * value, GParamSpec * pspec); + +static gboolean ges_track_overlay_create_gnl_object (GESTrackObject * object); + +static GstElement + * ges_track_overlay_create_element_func (GESTrackOverlay * object); + +enum +{ + PROP_0, +}; + +static void +ges_track_overlay_class_init (GESTrackOverlayClass * klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GESTrackObjectClass *track_class = GES_TRACK_OBJECT_CLASS (klass); + + object_class->get_property = ges_track_overlay_get_property; + object_class->set_property = ges_track_overlay_set_property; + object_class->dispose = ges_track_overlay_dispose; + object_class->finalize = ges_track_overlay_finalize; + + track_class->create_gnl_object = ges_track_overlay_create_gnl_object; + klass->create_element = ges_track_overlay_create_element_func; +} + +static void +ges_track_overlay_dispose (GObject * object) +{ + G_OBJECT_CLASS (ges_track_overlay_parent_class)->dispose (object); +} + +static void +ges_track_overlay_init (GESTrackOverlay * self) +{ + self->element = NULL; +} + +static void +ges_track_overlay_get_property (GObject * object, guint property_id, + GValue * value, GParamSpec * pspec) +{ + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +ges_track_overlay_set_property (GObject * object, guint property_id, + const GValue * value, GParamSpec * pspec) +{ + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +ges_track_overlay_finalize (GObject * object) +{ + G_OBJECT_CLASS (ges_track_overlay_parent_class)->finalize (object); +} + +static gboolean +ges_track_overlay_create_gnl_object (GESTrackObject * object) +{ + GESTrackOverlayClass *klass; + GESTrackOverlay *self; + + self = GES_TRACK_OVERLAY (object); + klass = GES_TRACK_OVERLAY_GET_CLASS (object); + + object->gnlobject = gst_element_factory_make ("gnloperation", NULL); + self->element = klass->create_element (GES_TRACK_OVERLAY (object)); + gst_bin_add (GST_BIN (object->gnlobject), self->element); + + return TRUE; +} + +static GstElement * +ges_track_overlay_create_element_func (GESTrackOverlay * self) +{ + return gst_element_factory_make ("identity", NULL); +} + +GESTrackOverlay * +ges_track_overlay_new (void) +{ + return g_object_new (GES_TYPE_TRACK_OVERLAY, NULL); +} diff --git a/ges/ges-track-overlay.h b/ges/ges-track-overlay.h new file mode 100644 index 0000000..09055fd --- /dev/null +++ b/ges/ges-track-overlay.h @@ -0,0 +1,78 @@ +/* GStreamer Editing Services + * Copyright (C) 2010 Brandon Lewis + * 2010 Nokia Corporation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef _GES_TRACK_OVERLAY +#define _GES_TRACK_OVERLAY + +#include +#include +#include +#include + +G_BEGIN_DECLS + +#define GES_TYPE_TRACK_OVERLAY ges_track_overlay_get_type() + +#define GES_TRACK_OVERLAY(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_OVERLAY, GESTrackOverlay)) + +#define GES_TRACK_OVERLAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_OVERLAY, GESTrackOverlayClass)) + +#define GES_IS_TRACK_OVERLAY(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_OVERLAY)) + +#define GES_IS_TRACK_OVERLAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_OVERLAY)) + +#define GES_TRACK_OVERLAY_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_OVERLAY, GESTrackOverlayClass)) +/** + * GESTrackOverlay: + * @parent: parent + * + */ +struct _GESTrackOverlay { + GESTrackObject parent; + + /*< public >*/ + GstElement *element; +}; + +/** + * GESTrackOverlayClass: + * @parent_class: parent class + */ + +struct _GESTrackOverlayClass { + GESTrackObjectClass parent_class; + + /* */ + GstElement* (*create_element) (GESTrackOverlay *obj); +}; + +GType ges_track_overlay_get_type (void); + +GESTrackOverlay* ges_track_overlay_new (void); + +G_END_DECLS + +#endif /* _GES_TRACK_OVERLAY */ + diff --git a/ges/ges-types.h b/ges/ges-types.h index b0cb1b9..ae92d76 100644 --- a/ges/ges-types.h +++ b/ges/ges-types.h @@ -104,4 +104,8 @@ typedef struct _GESTrackAudioTitleSource GESTrackAudioTitleSource; typedef struct _GESTrackAudioTitleSourceClass GESTrackAudioTitleSourceClass; +typedef struct _GESTrackOverlay GESTrackOverlay; +typedef struct _GESTrackOverlayClass + GESTrackOverlayClass; + #endif /* __GES_TYPES_H__ */ diff --git a/ges/ges.h b/ges/ges.h index 49b7323..d1471ff 100644 --- a/ges/ges.h +++ b/ges/ges.h @@ -49,6 +49,7 @@ #include #include #include +#include #include -- 2.7.4