summaryrefslogtreecommitdiff
path: root/gst/inter/gstintersubsrc.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/inter/gstintersubsrc.c')
-rw-r--r--gst/inter/gstintersubsrc.c242
1 files changed, 14 insertions, 228 deletions
diff --git a/gst/inter/gstintersubsrc.c b/gst/inter/gstintersubsrc.c
index 437a3e1ea..0001d10df 100644
--- a/gst/inter/gstintersubsrc.c
+++ b/gst/inter/gstintersubsrc.c
@@ -54,33 +54,15 @@ static void gst_inter_sub_src_set_property (GObject * object,
guint property_id, const GValue * value, GParamSpec * pspec);
static void gst_inter_sub_src_get_property (GObject * object,
guint property_id, GValue * value, GParamSpec * pspec);
-static void gst_inter_sub_src_dispose (GObject * object);
-static void gst_inter_sub_src_finalize (GObject * object);
-static GstCaps *gst_inter_sub_src_get_caps (GstBaseSrc * src);
-static gboolean gst_inter_sub_src_set_caps (GstBaseSrc * src, GstCaps * caps);
-static gboolean gst_inter_sub_src_negotiate (GstBaseSrc * src);
-static gboolean gst_inter_sub_src_newsegment (GstBaseSrc * src);
static gboolean gst_inter_sub_src_start (GstBaseSrc * src);
static gboolean gst_inter_sub_src_stop (GstBaseSrc * src);
static void
gst_inter_sub_src_get_times (GstBaseSrc * src, GstBuffer * buffer,
GstClockTime * start, GstClockTime * end);
-static gboolean gst_inter_sub_src_is_seekable (GstBaseSrc * src);
-static gboolean gst_inter_sub_src_unlock (GstBaseSrc * src);
-static gboolean gst_inter_sub_src_event (GstBaseSrc * src, GstEvent * event);
static GstFlowReturn
gst_inter_sub_src_create (GstBaseSrc * src, guint64 offset, guint size,
GstBuffer ** buf);
-static gboolean gst_inter_sub_src_do_seek (GstBaseSrc * src,
- GstSegment * segment);
-static gboolean gst_inter_sub_src_query (GstBaseSrc * src, GstQuery * query);
-static gboolean gst_inter_sub_src_check_get_range (GstBaseSrc * src);
-static void gst_inter_sub_src_fixate (GstBaseSrc * src, GstCaps * caps);
-static gboolean gst_inter_sub_src_unlock_stop (GstBaseSrc * src);
-static gboolean
-gst_inter_sub_src_prepare_seek_segment (GstBaseSrc * src, GstEvent * seek,
- GstSegment * segment);
enum
{
@@ -100,17 +82,17 @@ GST_STATIC_PAD_TEMPLATE ("src",
/* class initialization */
-#define DEBUG_INIT(bla) \
- GST_DEBUG_CATEGORY_INIT (gst_inter_sub_src_debug_category, "intersubsrc", 0, \
- "debug category for intersubsrc element");
-
-GST_BOILERPLATE_FULL (GstInterSubSrc, gst_inter_sub_src, GstBaseSrc,
- GST_TYPE_BASE_SRC, DEBUG_INIT);
+G_DEFINE_TYPE (GstInterSubSrc, gst_inter_sub_src, GST_TYPE_BASE_SRC);
static void
-gst_inter_sub_src_base_init (gpointer g_class)
+gst_inter_sub_src_class_init (GstInterSubSrcClass * klass)
{
- GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+ GstBaseSrcClass *base_src_class = GST_BASE_SRC_CLASS (klass);
+
+ GST_DEBUG_CATEGORY_INIT (gst_inter_sub_src_debug_category, "intersubsrc", 0,
+ "debug category for intersubsrc element");
gst_element_class_add_pad_template (element_class,
gst_static_pad_template_get (&gst_inter_sub_src_src_template));
@@ -120,48 +102,13 @@ gst_inter_sub_src_base_init (gpointer g_class)
"Source/Subtitle",
"Virtual subtitle source for internal process communication",
"David Schleef <ds@schleef.org>");
-}
-
-static void
-gst_inter_sub_src_class_init (GstInterSubSrcClass * klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- GstBaseSrcClass *base_src_class = GST_BASE_SRC_CLASS (klass);
gobject_class->set_property = gst_inter_sub_src_set_property;
gobject_class->get_property = gst_inter_sub_src_get_property;
- gobject_class->dispose = gst_inter_sub_src_dispose;
- gobject_class->finalize = gst_inter_sub_src_finalize;
- if (0)
- base_src_class->get_caps = GST_DEBUG_FUNCPTR (gst_inter_sub_src_get_caps);
- base_src_class->set_caps = GST_DEBUG_FUNCPTR (gst_inter_sub_src_set_caps);
- if (0)
- base_src_class->negotiate = GST_DEBUG_FUNCPTR (gst_inter_sub_src_negotiate);
- if (0)
- base_src_class->newsegment =
- GST_DEBUG_FUNCPTR (gst_inter_sub_src_newsegment);
base_src_class->start = GST_DEBUG_FUNCPTR (gst_inter_sub_src_start);
base_src_class->stop = GST_DEBUG_FUNCPTR (gst_inter_sub_src_stop);
base_src_class->get_times = GST_DEBUG_FUNCPTR (gst_inter_sub_src_get_times);
- if (0)
- base_src_class->is_seekable =
- GST_DEBUG_FUNCPTR (gst_inter_sub_src_is_seekable);
- base_src_class->unlock = GST_DEBUG_FUNCPTR (gst_inter_sub_src_unlock);
- base_src_class->event = GST_DEBUG_FUNCPTR (gst_inter_sub_src_event);
base_src_class->create = GST_DEBUG_FUNCPTR (gst_inter_sub_src_create);
- if (0)
- base_src_class->do_seek = GST_DEBUG_FUNCPTR (gst_inter_sub_src_do_seek);
- base_src_class->query = GST_DEBUG_FUNCPTR (gst_inter_sub_src_query);
- if (0)
- base_src_class->check_get_range =
- GST_DEBUG_FUNCPTR (gst_inter_sub_src_check_get_range);
- base_src_class->fixate = GST_DEBUG_FUNCPTR (gst_inter_sub_src_fixate);
- if (0)
- base_src_class->unlock_stop =
- GST_DEBUG_FUNCPTR (gst_inter_sub_src_unlock_stop);
- if (0)
- base_src_class->prepare_seek_segment =
- GST_DEBUG_FUNCPTR (gst_inter_sub_src_prepare_seek_segment);
g_object_class_install_property (gobject_class, PROP_CHANNEL,
g_param_spec_string ("channel", "Channel",
@@ -170,8 +117,7 @@ gst_inter_sub_src_class_init (GstInterSubSrcClass * klass)
}
static void
-gst_inter_sub_src_init (GstInterSubSrc * intersubsrc,
- GstInterSubSrcClass * intersubsrc_class)
+gst_inter_sub_src_init (GstInterSubSrc * intersubsrc)
{
intersubsrc->srcpad =
@@ -216,66 +162,6 @@ gst_inter_sub_src_get_property (GObject * object, guint property_id,
}
}
-void
-gst_inter_sub_src_dispose (GObject * object)
-{
- /* GstInterSubSrc *intersubsrc = GST_INTER_SUB_SRC (object); */
-
- /* clean up as possible. may be called multiple times */
-
- G_OBJECT_CLASS (parent_class)->dispose (object);
-}
-
-void
-gst_inter_sub_src_finalize (GObject * object)
-{
- /* GstInterSubSrc *intersubsrc = GST_INTER_SUB_SRC (object); */
-
- /* clean up object here */
-
- G_OBJECT_CLASS (parent_class)->finalize (object);
-}
-
-
-static GstCaps *
-gst_inter_sub_src_get_caps (GstBaseSrc * src)
-{
- GstInterSubSrc *intersubsrc = GST_INTER_SUB_SRC (src);
-
- GST_DEBUG_OBJECT (intersubsrc, "get_caps");
-
- return NULL;
-}
-
-static gboolean
-gst_inter_sub_src_set_caps (GstBaseSrc * src, GstCaps * caps)
-{
- GstInterSubSrc *intersubsrc = GST_INTER_SUB_SRC (src);
-
- GST_DEBUG_OBJECT (intersubsrc, "set_caps");
-
- return TRUE;
-}
-
-static gboolean
-gst_inter_sub_src_negotiate (GstBaseSrc * src)
-{
- GstInterSubSrc *intersubsrc = GST_INTER_SUB_SRC (src);
-
- GST_DEBUG_OBJECT (intersubsrc, "negotiate");
-
- return TRUE;
-}
-
-static gboolean
-gst_inter_sub_src_newsegment (GstBaseSrc * src)
-{
- GstInterSubSrc *intersubsrc = GST_INTER_SUB_SRC (src);
-
- GST_DEBUG_OBJECT (intersubsrc, "newsegment");
-
- return TRUE;
-}
static gboolean
gst_inter_sub_src_start (GstBaseSrc * src)
@@ -329,41 +215,6 @@ gst_inter_sub_src_get_times (GstBaseSrc * src, GstBuffer * buffer,
}
}
-static gboolean
-gst_inter_sub_src_is_seekable (GstBaseSrc * src)
-{
- GstInterSubSrc *intersubsrc = GST_INTER_SUB_SRC (src);
-
- GST_DEBUG_OBJECT (intersubsrc, "is_seekable");
-
- return FALSE;
-}
-
-static gboolean
-gst_inter_sub_src_unlock (GstBaseSrc * src)
-{
- GstInterSubSrc *intersubsrc = GST_INTER_SUB_SRC (src);
-
- GST_DEBUG_OBJECT (intersubsrc, "unlock");
-
- return TRUE;
-}
-
-static gboolean
-gst_inter_sub_src_event (GstBaseSrc * src, GstEvent * event)
-{
- GstInterSubSrc *intersubsrc = GST_INTER_SUB_SRC (src);
- gboolean ret;
-
- GST_DEBUG_OBJECT (intersubsrc, "event");
-
- switch (GST_EVENT_TYPE (event)) {
- default:
- ret = GST_BASE_SRC_CLASS (parent_class)->event (src, event);
- }
-
- return ret;
-}
static GstFlowReturn
gst_inter_sub_src_create (GstBaseSrc * src, guint64 offset, guint size,
@@ -388,15 +239,16 @@ gst_inter_sub_src_create (GstBaseSrc * src, guint64 offset, guint size,
g_mutex_unlock (intersubsrc->surface->mutex);
if (buffer == NULL) {
- guint8 *data;
+ GstMapInfo map;
buffer = gst_buffer_new_and_alloc (1);
- data = GST_BUFFER_DATA (buffer);
- data[0] = 0;
+ gst_buffer_map (buffer, &map, GST_MAP_WRITE);
+ map.data[0] = 0;
+ gst_buffer_unmap (buffer, &map);
}
- buffer = gst_buffer_make_metadata_writable (buffer);
+ buffer = gst_buffer_make_writable (buffer);
GST_BUFFER_TIMESTAMP (buffer) =
gst_util_uint64_scale_int (GST_SECOND, intersubsrc->n_frames,
@@ -412,75 +264,9 @@ gst_inter_sub_src_create (GstBaseSrc * src, guint64 offset, guint size,
if (intersubsrc->n_frames == 0) {
GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DISCONT);
}
- gst_buffer_set_caps (buffer, GST_PAD_CAPS (GST_BASE_SRC_PAD (intersubsrc)));
intersubsrc->n_frames++;
*buf = buffer;
return GST_FLOW_OK;
}
-
-static gboolean
-gst_inter_sub_src_do_seek (GstBaseSrc * src, GstSegment * segment)
-{
- GstInterSubSrc *intersubsrc = GST_INTER_SUB_SRC (src);
-
- GST_DEBUG_OBJECT (intersubsrc, "do_seek");
-
- return FALSE;
-}
-
-static gboolean
-gst_inter_sub_src_query (GstBaseSrc * src, GstQuery * query)
-{
- GstInterSubSrc *intersubsrc = GST_INTER_SUB_SRC (src);
- gboolean ret;
-
- GST_DEBUG_OBJECT (intersubsrc, "query");
-
- switch (GST_QUERY_TYPE (query)) {
- default:
- ret = GST_BASE_SRC_CLASS (parent_class)->query (src, query);
- }
-
- return ret;
-}
-
-static gboolean
-gst_inter_sub_src_check_get_range (GstBaseSrc * src)
-{
- GstInterSubSrc *intersubsrc = GST_INTER_SUB_SRC (src);
-
- GST_DEBUG_OBJECT (intersubsrc, "get_range");
-
- return FALSE;
-}
-
-static void
-gst_inter_sub_src_fixate (GstBaseSrc * src, GstCaps * caps)
-{
- GstInterSubSrc *intersubsrc = GST_INTER_SUB_SRC (src);
-
- GST_DEBUG_OBJECT (intersubsrc, "fixate");
-}
-
-static gboolean
-gst_inter_sub_src_unlock_stop (GstBaseSrc * src)
-{
- GstInterSubSrc *intersubsrc = GST_INTER_SUB_SRC (src);
-
- GST_DEBUG_OBJECT (intersubsrc, "stop");
-
- return TRUE;
-}
-
-static gboolean
-gst_inter_sub_src_prepare_seek_segment (GstBaseSrc * src, GstEvent * seek,
- GstSegment * segment)
-{
- GstInterSubSrc *intersubsrc = GST_INTER_SUB_SRC (src);
-
- GST_DEBUG_OBJECT (intersubsrc, "seek_segment");
-
- return FALSE;
-}