summaryrefslogtreecommitdiffstats
path: root/gst/app
diff options
context:
space:
mode:
Diffstat (limited to 'gst/app')
-rw-r--r--gst/app/Makefile.am15
-rw-r--r--gst/app/gstapp.c2
-rw-r--r--gst/app/gstappsrc.c261
-rw-r--r--gst/app/gstappsrc.h71
4 files changed, 4 insertions, 345 deletions
diff --git a/gst/app/Makefile.am b/gst/app/Makefile.am
index d232d330..d9b9d0d7 100644
--- a/gst/app/Makefile.am
+++ b/gst/app/Makefile.am
@@ -1,18 +1,9 @@
-lib_LTLIBRARIES = libgstapp-0.10.la
-
plugin_LTLIBRARIES = libgstapp.la
libgstapp_la_SOURCES = gstapp.c
libgstapp_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \
- $(GST_PLUGINS_BASE_CFLAGS)
-libgstapp_la_LIBADD = $(GST_BASE_LIBS) libgstapp-0.10.la
+ $(GST_PLUGINS_BASE_CFLAGS) \
+ $(top_srcdir)/gst-libs/
+libgstapp_la_LIBADD = $(GST_BASE_LIBS) $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_MAJORMINOR@.la
libgstapp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstapp_0_10_la_SOURCES = gstappsrc.c
-libgstapp_0_10_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \
- $(GST_PLUGINS_BASE_CFLAGS)
-libgstapp_0_10_la_LIBADD = $(GST_BASE_LIBS)
-libgstapp_0_10_la_LDFLAGS = $(GST_LDFLAGS)
-
-noinst_HEADERS = gstappsrc.h
-
diff --git a/gst/app/gstapp.c b/gst/app/gstapp.c
index 077c8707..6619dfac 100644
--- a/gst/app/gstapp.c
+++ b/gst/app/gstapp.c
@@ -23,7 +23,7 @@
#include <gst/gst.h>
-#include "gstappsrc.h"
+#include <gst/app/gstappsrc.h>
static gboolean
plugin_init (GstPlugin * plugin)
diff --git a/gst/app/gstappsrc.c b/gst/app/gstappsrc.c
deleted file mode 100644
index 1d5b45c6..00000000
--- a/gst/app/gstappsrc.c
+++ /dev/null
@@ -1,261 +0,0 @@
-/* GStreamer
- * Copyright (C) 2007 David Schleef <ds@schleef.org>
- *
- * 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <gst/gst.h>
-#include <gst/base/gstpushsrc.h>
-
-#include <unistd.h>
-#include <fcntl.h>
-#include <string.h>
-
-#include "gstappsrc.h"
-
-
-GST_DEBUG_CATEGORY (app_src_debug);
-#define GST_CAT_DEFAULT app_src_debug
-
-static const GstElementDetails app_src_details = GST_ELEMENT_DETAILS ("AppSrc",
- "FIXME",
- "FIXME",
- "autogenerated by makefilter");
-
-enum
-{
- PROP_0
-};
-
-static GstStaticPadTemplate gst_app_src_template =
-GST_STATIC_PAD_TEMPLATE ("src",
- GST_PAD_SRC,
- GST_PAD_ALWAYS,
- GST_STATIC_CAPS_ANY);
-
-static void gst_app_src_set_property (GObject * object, guint prop_id,
- const GValue * value, GParamSpec * pspec);
-static void gst_app_src_get_property (GObject * object, guint prop_id,
- GValue * value, GParamSpec * pspec);
-static void gst_app_src_dispose (GObject * object);
-static GstFlowReturn gst_app_src_create (GstPushSrc * psrc, GstBuffer ** buf);
-static gboolean gst_app_src_start (GstBaseSrc * psrc);
-static gboolean gst_app_src_stop (GstBaseSrc * psrc);
-static gboolean gst_app_src_unlock (GstBaseSrc * psrc);
-
-GST_BOILERPLATE (GstAppSrc, gst_app_src, GstPushSrc, GST_TYPE_PUSH_SRC);
-
-static void
-gst_app_src_base_init (gpointer g_class)
-{
- GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
-
- //GObjectClass *gobject_class = G_OBJECT_CLASS (g_class);
-
- GST_DEBUG_CATEGORY_INIT (app_src_debug, "appsrc", 0, "appsrc element");
-
- gst_element_class_set_details (element_class, &app_src_details);
-
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_app_src_template));
-
-}
-
-static void
-gst_app_src_class_init (GstAppSrcClass * klass)
-{
- GObjectClass *gobject_class = (GObjectClass *) klass;
- GstPushSrcClass *pushsrc_class = (GstPushSrcClass *) klass;
- GstBaseSrcClass *basesrc_class = (GstBaseSrcClass *) klass;
-
- gobject_class->set_property = gst_app_src_set_property;
- gobject_class->get_property = gst_app_src_get_property;
- gobject_class->dispose = gst_app_src_dispose;
-
- pushsrc_class->create = gst_app_src_create;
- basesrc_class->start = gst_app_src_start;
- basesrc_class->stop = gst_app_src_stop;
- basesrc_class->unlock = gst_app_src_unlock;
-}
-
-static void
-gst_app_src_dispose (GObject * obj)
-{
- GstAppSrc *appsrc = GST_APP_SRC (obj);
-
- g_mutex_free (appsrc->mutex);
- g_cond_free (appsrc->cond);
- g_queue_free (appsrc->queue);
-}
-
-static void
-gst_app_src_init (GstAppSrc * appsrc, GstAppSrcClass * klass)
-{
- appsrc->mutex = g_mutex_new ();
- appsrc->cond = g_cond_new ();
- appsrc->queue = g_queue_new ();
-}
-
-static void
-gst_app_src_set_property (GObject * object, guint prop_id,
- const GValue * value, GParamSpec * pspec)
-{
- GstAppSrc *appsrc = GST_APP_SRC (object);
-
- GST_OBJECT_LOCK (appsrc);
- switch (prop_id) {
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
- GST_OBJECT_UNLOCK (appsrc);
-}
-
-static void
-gst_app_src_get_property (GObject * object, guint prop_id, GValue * value,
- GParamSpec * pspec)
-{
- GstAppSrc *appsrc = GST_APP_SRC (object);
-
- GST_OBJECT_LOCK (appsrc);
- switch (prop_id) {
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
- GST_OBJECT_UNLOCK (appsrc);
-}
-
-static gboolean
-gst_app_src_start (GstBaseSrc * psrc)
-{
- GstAppSrc *appsrc = GST_APP_SRC (psrc);
-
- appsrc->unlock = FALSE;
-
-#if 0
- /* FIXME: I don't know if this makes sense */
- appsrc->end_of_stream = FALSE;
- appsrc->flush = FALSE;
-#endif
-
- return TRUE;
-}
-
-static gboolean
-gst_app_src_stop (GstBaseSrc * psrc)
-{
- //GstAppSrc *appsrc = GST_APP_SRC(psrc);
-
- return TRUE;
-}
-
-static gboolean
-gst_app_src_unlock (GstBaseSrc * psrc)
-{
- GstAppSrc *appsrc = GST_APP_SRC (psrc);
-
- appsrc->unlock = TRUE;
- g_cond_signal (appsrc->cond);
-
- return TRUE;
-}
-
-static GstFlowReturn
-gst_app_src_create (GstPushSrc * psrc, GstBuffer ** buf)
-{
- GstAppSrc *appsrc = GST_APP_SRC (psrc);
- int ret = GST_FLOW_ERROR;
-
- g_mutex_lock (appsrc->mutex);
-
- while (1) {
- if (!g_queue_is_empty (appsrc->queue)) {
- *buf = g_queue_pop_head (appsrc->queue);
-
- gst_buffer_set_caps (*buf, appsrc->caps);
-
- ret = GST_FLOW_OK;
- break;
- }
- if (appsrc->end_of_stream) {
- appsrc->end_of_stream = FALSE;
- ret = GST_FLOW_UNEXPECTED;
- break;
- }
- if (appsrc->flush) {
- appsrc->flush = FALSE;
- /* FIXME: I don't really know how to do this */
- break;
- }
- g_cond_wait (appsrc->cond, appsrc->mutex);
- }
-
- g_mutex_unlock (appsrc->mutex);
-
- return ret;
-}
-
-
-/* external API */
-
-void
-gst_app_src_push_buffer (GstAppSrc * appsrc, GstBuffer * buffer)
-{
- g_mutex_lock (appsrc->mutex);
-
- g_queue_push_tail (appsrc->queue, buffer);
-
- g_cond_signal (appsrc->cond);
- g_mutex_unlock (appsrc->mutex);
-}
-
-void
-gst_app_src_set_caps (GstAppSrc * appsrc, GstCaps * caps)
-{
- gst_caps_replace (&appsrc->caps, caps);
-}
-
-void
-gst_app_src_flush (GstAppSrc * appsrc)
-{
- GstBuffer *buffer;
-
- g_mutex_lock (appsrc->mutex);
-
- while ((buffer = g_queue_pop_head (appsrc->queue))) {
- gst_buffer_unref (buffer);
- }
- appsrc->flush = TRUE;
-
- g_cond_signal (appsrc->cond);
- g_mutex_unlock (appsrc->mutex);
-}
-
-void
-gst_app_src_end_of_stream (GstAppSrc * appsrc)
-{
- g_mutex_lock (appsrc->mutex);
-
- appsrc->end_of_stream = TRUE;
-
- g_cond_signal (appsrc->cond);
- g_mutex_unlock (appsrc->mutex);
-}
diff --git a/gst/app/gstappsrc.h b/gst/app/gstappsrc.h
deleted file mode 100644
index 48990bf9..00000000
--- a/gst/app/gstappsrc.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* GStreamer
- * Copyright (C) 2007 David Schleef <ds@schleef.org>
- *
- * 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 _GST_APP_SRC_H_
-#define _GST_APP_SRC_H_
-
-#include <gst/gst.h>
-#include <gst/base/gstpushsrc.h>
-
-#define GST_TYPE_APP_SRC \
- (gst_app_src_get_type())
-#define GST_APP_SRC(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_APP_SRC,GstAppSrc))
-#define GST_APP_SRC_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_APP_SRC,GstAppSrcClass))
-#define GST_IS_APP_SRC(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_APP_SRC))
-#define GST_IS_APP_SRC_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_APP_SRC))
-
-typedef struct _GstAppSrc GstAppSrc;
-typedef struct _GstAppSrcClass GstAppSrcClass;
-
-struct _GstAppSrc
-{
- GstPushSrc pushsrc;
-
- /*< private >*/
- gboolean unlock;
- GCond *cond;
- GMutex *mutex;
- GQueue *queue;
- GstCaps *caps;
- gboolean end_of_stream;
- gboolean flush;
-};
-
-struct _GstAppSrcClass
-{
- GstPushSrcClass pushsrc_class;
-};
-
-GType gst_app_src_get_type(void);
-
-GST_DEBUG_CATEGORY_EXTERN (app_src_debug);
-
-
-void gst_app_src_push_buffer (GstAppSrc *appsrc, GstBuffer *buffer);
-void gst_app_src_set_caps (GstAppSrc *appsrc, GstCaps *caps);
-void gst_app_src_flush (GstAppSrc *appsrc);
-void gst_app_src_end_of_stream (GstAppSrc *appsrc);
-
-
-#endif
-