diff options
author | Jan Schmidt <thaytan@mad.scientist.com> | 2008-02-08 04:22:06 +0000 |
---|---|---|
committer | Jan Schmidt <thaytan@mad.scientist.com> | 2008-02-08 04:22:06 +0000 |
commit | 4ee87c566bac4431897b58534822b1b60c5d4cde (patch) | |
tree | 7b8d23b65c67150b7ae0b1f7ab3b34cdb526966b | |
parent | c8ae2ad1caf40a3c15261c2d9600b0b2f883235e (diff) | |
download | gst-plugins-bad-4ee87c566bac4431897b58534822b1b60c5d4cde.tar.gz gst-plugins-bad-4ee87c566bac4431897b58534822b1b60c5d4cde.tar.bz2 gst-plugins-bad-4ee87c566bac4431897b58534822b1b60c5d4cde.zip |
Remove multifile plugin, which has moved to -good
Original commit message from CVS:
* configure.ac:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
* docs/plugins/gst-plugins-bad-plugins-sections.txt:
* docs/plugins/gst-plugins-bad-plugins.args:
* docs/plugins/gst-plugins-bad-plugins.hierarchy:
* docs/plugins/inspect/plugin-multifile.xml:
* gst/multifile/Makefile.am:
* gst/multifile/gstmultifile.c:
* gst/multifile/gstmultifilesink.c:
* gst/multifile/gstmultifilesink.h:
* gst/multifile/gstmultifilesrc.c:
* gst/multifile/gstmultifilesrc.h:
* gst/multifile/multifile.vproj:
* tests/check/Makefile.am:
* tests/check/elements/multifile.c:
Remove multifile plugin, which has moved to -good
-rw-r--r-- | ChangeLog | 21 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | docs/plugins/Makefile.am | 2 | ||||
-rw-r--r-- | docs/plugins/gst-plugins-bad-plugins-docs.sgml | 3 | ||||
-rw-r--r-- | docs/plugins/gst-plugins-bad-plugins-sections.txt | 28 | ||||
-rw-r--r-- | docs/plugins/gst-plugins-bad-plugins.args | 50 | ||||
-rw-r--r-- | docs/plugins/gst-plugins-bad-plugins.hierarchy | 2 | ||||
-rw-r--r-- | docs/plugins/inspect/plugin-multifile.xml | 43 | ||||
-rw-r--r-- | gst/multifile/Makefile.am | 10 | ||||
-rw-r--r-- | gst/multifile/gstmultifile.c | 49 | ||||
-rw-r--r-- | gst/multifile/gstmultifilesink.c | 244 | ||||
-rw-r--r-- | gst/multifile/gstmultifilesink.h | 72 | ||||
-rw-r--r-- | gst/multifile/gstmultifilesrc.c | 323 | ||||
-rw-r--r-- | gst/multifile/gstmultifilesrc.h | 66 | ||||
-rw-r--r-- | gst/multifile/multifile.vproj | 148 | ||||
-rw-r--r-- | tests/check/Makefile.am | 1 | ||||
-rw-r--r-- | tests/check/elements/multifile.c | 165 |
17 files changed, 21 insertions, 1208 deletions
@@ -1,3 +1,24 @@ +2008-02-08 Jan Schmidt <jan.schmidt@sun.com> + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/inspect/plugin-multifile.xml: + * gst/multifile/Makefile.am: + * gst/multifile/gstmultifile.c: + * gst/multifile/gstmultifilesink.c: + * gst/multifile/gstmultifilesink.h: + * gst/multifile/gstmultifilesrc.c: + * gst/multifile/gstmultifilesrc.h: + * gst/multifile/multifile.vproj: + * tests/check/Makefile.am: + * tests/check/elements/multifile.c: + + Remove multifile plugin, which has moved to -good + 2008-02-07 David Schleef <ds@schleef.org> * gst/multifile/gstmultifilesink.c: diff --git a/configure.ac b/configure.ac index 70cafc21..ce351b3b 100644 --- a/configure.ac +++ b/configure.ac @@ -95,7 +95,6 @@ GST_PLUGINS_ALL="\ mpegtsparse \ mpeg4videoparse \ mpegvideoparse \ - multifile \ mve \ nsf \ nuvdemux \ @@ -1055,7 +1054,6 @@ gst/modplug/libmodplug/Makefile gst/mpegtsparse/Makefile gst/mpeg4videoparse/Makefile gst/mpegvideoparse/Makefile -gst/multifile/Makefile gst/mve/Makefile gst/nsf/Makefile gst/nuvdemux/Makefile diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am index 9dc5cb61..038b7feb 100644 --- a/docs/plugins/Makefile.am +++ b/docs/plugins/Makefile.am @@ -115,8 +115,6 @@ EXTRA_HFILES = \ $(top_srcdir)/gst/dvdspu/gstdvdspu.h \ $(top_srcdir)/gst/festival/gstfestival.h \ $(top_srcdir)/gst/modplug/gstmodplug.h \ - $(top_srcdir)/gst/multifile/gstmultifilesink.h \ - $(top_srcdir)/gst/multifile/gstmultifilesrc.h \ $(top_srcdir)/gst/nuvdemux/gstnuvdemux.h \ $(top_srcdir)/gst/rawparse/gstaudioparse.h \ $(top_srcdir)/gst/rawparse/gstvideoparse.h \ diff --git a/docs/plugins/gst-plugins-bad-plugins-docs.sgml b/docs/plugins/gst-plugins-bad-plugins-docs.sgml index 5dcfc540..90d26c39 100644 --- a/docs/plugins/gst-plugins-bad-plugins-docs.sgml +++ b/docs/plugins/gst-plugins-bad-plugins-docs.sgml @@ -37,8 +37,6 @@ <xi:include href="xml/element-metadatademux.xml" /> <xi:include href="xml/element-metadatamux.xml" /> <xi:include href="xml/element-modplug.xml" /> - <xi:include href="xml/element-multifilesink.xml" /> - <xi:include href="xml/element-multifilesrc.xml" /> <!--xi:include href="xml/element-mythtvsrc.xml" /--> <xi:include href="xml/element-nuvdemux.xml" /> <xi:include href="xml/element-output-selector.xml" /> @@ -99,7 +97,6 @@ <xi:include href="xml/plugin-mpeg4videoparse.xml" /> <xi:include href="xml/plugin-mpegtsparse.xml" /> <xi:include href="xml/plugin-mpegvideoparse.xml" /> - <xi:include href="xml/plugin-multifile.xml" /> <xi:include href="xml/plugin-musepack.xml" /> <xi:include href="xml/plugin-musicbrainz.xml" /> <xi:include href="xml/plugin-mve.xml" /> diff --git a/docs/plugins/gst-plugins-bad-plugins-sections.txt b/docs/plugins/gst-plugins-bad-plugins-sections.txt index fd48bba1..f22057ae 100644 --- a/docs/plugins/gst-plugins-bad-plugins-sections.txt +++ b/docs/plugins/gst-plugins-bad-plugins-sections.txt @@ -337,34 +337,6 @@ gst_modplug_get_type </SECTION> <SECTION> -<FILE>element-multifilesrc</FILE> -<TITLE>multifilesrc</TITLE> -GstMultiFileSrc -<SUBSECTION Standard> -GstMultiFileSrcClass -GST_MULTI_FILE_SRC -GST_MULTI_FILE_SRC_CLASS -GST_IS_MULTI_FILE_SRC -GST_IS_MULTI_FILE_SRC_CLASS -GST_TYPE_MULTI_FILE_SRC -gst_multi_file_src_get_type -</SECTION> - -<SECTION> -<FILE>element-multifilesink</FILE> -<TITLE>multifilesink</TITLE> -GstMultiFileSink -<SUBSECTION Standard> -GstMultiFileSinkClass -GST_MULTI_FILE_SINK -GST_MULTI_FILE_SINK_CLASS -GST_IS_MULTI_FILE_SINK -GST_IS_MULTI_FILE_SINK_CLASS -GST_TYPE_MULTI_FILE_SINK -gst_multi_file_sink_get_type -</SECTION> - -<SECTION> <FILE>element-mythtvsrc</FILE> <TITLE>mythtvsrc</TITLE> GstMythtvSrc diff --git a/docs/plugins/gst-plugins-bad-plugins.args b/docs/plugins/gst-plugins-bad-plugins.args index 855d9ed6..7bc350f1 100644 --- a/docs/plugins/gst-plugins-bad-plugins.args +++ b/docs/plugins/gst-plugins-bad-plugins.args @@ -1739,56 +1739,6 @@ </ARG> <ARG> -<NAME>GstMultiFileSink::location</NAME> -<TYPE>gchar*</TYPE> -<RANGE></RANGE> -<FLAGS>rw</FLAGS> -<NICK>File Location</NICK> -<BLURB>Location of the file to write.</BLURB> -<DEFAULT>NULL</DEFAULT> -</ARG> - -<ARG> -<NAME>GstMultiFileSink::index</NAME> -<TYPE>gint</TYPE> -<RANGE>>= 0</RANGE> -<FLAGS>rw</FLAGS> -<NICK>Index</NICK> -<BLURB>Index to use with location property to create file names. The index is incremented by one for each buffer read.</BLURB> -<DEFAULT>0</DEFAULT> -</ARG> - -<ARG> -<NAME>GstMultiFileSrc::caps</NAME> -<TYPE>GstCaps*</TYPE> -<RANGE></RANGE> -<FLAGS>rw</FLAGS> -<NICK>Caps</NICK> -<BLURB>Caps describing the format of the data.</BLURB> -<DEFAULT></DEFAULT> -</ARG> - -<ARG> -<NAME>GstMultiFileSrc::index</NAME> -<TYPE>gint</TYPE> -<RANGE>>= 0</RANGE> -<FLAGS>rw</FLAGS> -<NICK>File Index</NICK> -<BLURB>Index to use with location property to create file names. The index is incremented by one for each buffer read.</BLURB> -<DEFAULT>0</DEFAULT> -</ARG> - -<ARG> -<NAME>GstMultiFileSrc::location</NAME> -<TYPE>gchar*</TYPE> -<RANGE></RANGE> -<FLAGS>rw</FLAGS> -<NICK>File Location</NICK> -<BLURB>Pattern to create file names of input files. File names are created by calling sprintf() with the pattern and the current index.</BLURB> -<DEFAULT>"%05d"</DEFAULT> -</ARG> - -<ARG> <NAME>GstRfbSrc::host</NAME> <TYPE>gchar*</TYPE> <RANGE></RANGE> diff --git a/docs/plugins/gst-plugins-bad-plugins.hierarchy b/docs/plugins/gst-plugins-bad-plugins.hierarchy index 4097768c..239d7b92 100644 --- a/docs/plugins/gst-plugins-bad-plugins.hierarchy +++ b/docs/plugins/gst-plugins-bad-plugins.hierarchy @@ -25,7 +25,6 @@ GObject GstVCDSrc GstRfbSrc GstAppSrc - GstMultiFileSrc GstSFSrc GstGioBaseSrc GstGioSrc @@ -47,7 +46,6 @@ GObject GstGioStreamSink GstFBDEVSink GstAppSink - GstMultiFileSink GstPitch GstBaseTransform GstAudioFilter diff --git a/docs/plugins/inspect/plugin-multifile.xml b/docs/plugins/inspect/plugin-multifile.xml deleted file mode 100644 index 94869230..00000000 --- a/docs/plugins/inspect/plugin-multifile.xml +++ /dev/null @@ -1,43 +0,0 @@ -<plugin> - <name>multifile</name> - <description>Writes buffers to sequentially named files</description> - <filename>../../gst/multifile/.libs/libgstmultifile.so</filename> - <basename>libgstmultifile.so</basename> - <version>0.10.5.1</version> - <license>LGPL</license> - <source>gst-plugins-bad</source> - <package>GStreamer Bad Plug-ins CVS/prerelease</package> - <origin>Unknown package origin</origin> - <elements> - <element> - <name>multifilesink</name> - <longname>Multi-File Sink</longname> - <class>Sink/File</class> - <description>Write stream to a file</description> - <author>David Schleef <ds@schleef.org></author> - <pads> - <caps> - <name>sink</name> - <direction>sink</direction> - <presence>always</presence> - <details>ANY</details> - </caps> - </pads> - </element> - <element> - <name>multifilesrc</name> - <longname>Multi-File Source</longname> - <class>Source/File</class> - <description>Read stream from files</description> - <author>David Schleef <ds@schleef.org></author> - <pads> - <caps> - <name>src</name> - <direction>source</direction> - <presence>always</presence> - <details>ANY</details> - </caps> - </pads> - </element> - </elements> -</plugin>
\ No newline at end of file diff --git a/gst/multifile/Makefile.am b/gst/multifile/Makefile.am deleted file mode 100644 index 98eb6fd0..00000000 --- a/gst/multifile/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ - -plugin_LTLIBRARIES = libgstmultifile.la - -libgstmultifile_la_SOURCES = gstmultifilesink.c gstmultifilesrc.c gstmultifile.c -libgstmultifile_la_CFLAGS = $(GST_BASE_CFLAGS) $(GST_CFLAGS) -libgstmultifile_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) -libgstmultifile_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) - -noinst_HEADERS = gstmultifilesrc.h gstmultifilesink.h - diff --git a/gst/multifile/gstmultifile.c b/gst/multifile/gstmultifile.c deleted file mode 100644 index 873dcb17..00000000 --- a/gst/multifile/gstmultifile.c +++ /dev/null @@ -1,49 +0,0 @@ -/* GStreamer - * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu> - * 2000 Wim Taymans <wtay@chello.be> - * 2006 Wim Taymans <wim@fluendo.com> - * 2006 David A. Schleef <ds@schleef.org> - * - * gstmultifilesink.c: - * - * 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> - -GType gst_multi_file_src_get_type (void); -GType gst_multi_file_sink_get_type (void); - -static gboolean -plugin_init (GstPlugin * plugin) -{ - gst_element_register (plugin, "multifilesrc", GST_RANK_NONE, - gst_multi_file_src_get_type ()); - gst_element_register (plugin, "multifilesink", GST_RANK_NONE, - gst_multi_file_sink_get_type ()); - - return TRUE; -} - -GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, - GST_VERSION_MINOR, - "multifile", - "Writes buffers to sequentially named files", - plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN); diff --git a/gst/multifile/gstmultifilesink.c b/gst/multifile/gstmultifilesink.c deleted file mode 100644 index 583b989c..00000000 --- a/gst/multifile/gstmultifilesink.c +++ /dev/null @@ -1,244 +0,0 @@ -/* GStreamer - * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu> - * 2000 Wim Taymans <wtay@chello.be> - * 2006 Wim Taymans <wim@fluendo.com> - * 2006 David A. Schleef <ds@schleef.org> - * - * gstmultifilesink.c: - * - * 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:element-multifilesink - * @short_description: Writes buffers to sequentially-named files - * @see_also: #GstFileSrc - * - * <para> - * Write incoming data to a series of sequentially-named files. - * </para> - * - */ - -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include "gstmultifilesink.h" - -static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", - GST_PAD_SINK, - GST_PAD_ALWAYS, - GST_STATIC_CAPS_ANY); - -GST_DEBUG_CATEGORY_STATIC (gst_multi_file_sink_debug); -#define GST_CAT_DEFAULT gst_multi_file_sink_debug - -static const GstElementDetails gst_multi_file_sink_details = -GST_ELEMENT_DETAILS ("Multi-File Sink", - "Sink/File", - "Write buffers to a sequentially named set of files", - "David Schleef <ds@schleef.org>"); - -enum -{ - ARG_0, - ARG_LOCATION, - ARG_INDEX -}; - -#define DEFAULT_LOCATION "%05d" -#define DEFAULT_INDEX 0 - -static void gst_multi_file_sink_dispose (GObject * object); - -static void gst_multi_file_sink_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec); -static void gst_multi_file_sink_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec); - -static GstFlowReturn gst_multi_file_sink_render (GstBaseSink * sink, - GstBuffer * buffer); - - - -GST_BOILERPLATE (GstMultiFileSink, gst_multi_file_sink, GstBaseSink, - GST_TYPE_BASE_SINK); - -static void -gst_multi_file_sink_base_init (gpointer g_class) -{ - GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class); - - GST_DEBUG_CATEGORY_INIT (gst_multi_file_sink_debug, "multifilesink", 0, - "multifilesink element"); - - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&sinktemplate)); - gst_element_class_set_details (gstelement_class, - &gst_multi_file_sink_details); -} - -static void -gst_multi_file_sink_class_init (GstMultiFileSinkClass * klass) -{ - GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - GstBaseSinkClass *gstbasesink_class = GST_BASE_SINK_CLASS (klass); - - gobject_class->set_property = gst_multi_file_sink_set_property; - gobject_class->get_property = gst_multi_file_sink_get_property; - - g_object_class_install_property (gobject_class, ARG_LOCATION, - g_param_spec_string ("location", "File Location", - "Location of the file to write", NULL, G_PARAM_READWRITE)); - g_object_class_install_property (gobject_class, ARG_INDEX, - g_param_spec_int ("index", "Index", - "Index to use with location property to create file names. The " - "index is incremented by one for each buffer read.", - 0, INT_MAX, DEFAULT_INDEX, G_PARAM_READWRITE)); - - gobject_class->dispose = gst_multi_file_sink_dispose; - - gstbasesink_class->get_times = NULL; - gstbasesink_class->render = GST_DEBUG_FUNCPTR (gst_multi_file_sink_render); -} - -static void -gst_multi_file_sink_init (GstMultiFileSink * multifilesink, - GstMultiFileSinkClass * g_class) -{ - GstPad *pad; - - pad = GST_BASE_SINK_PAD (multifilesink); - - multifilesink->filename = g_strdup (DEFAULT_LOCATION); - multifilesink->index = DEFAULT_INDEX; - - GST_BASE_SINK (multifilesink)->sync = FALSE; -} - -static void -gst_multi_file_sink_dispose (GObject * object) -{ - GstMultiFileSink *sink = GST_MULTI_FILE_SINK (object); - - g_free (sink->filename); - sink->filename = NULL; - - G_OBJECT_CLASS (parent_class)->dispose (object); -} - -static gboolean -gst_multi_file_sink_set_location (GstMultiFileSink * sink, - const gchar * location) -{ - g_free (sink->filename); - if (location != NULL) { - /* FIXME: validate location to have just one %d */ - sink->filename = g_strdup (location); - } else { - sink->filename = NULL; - } - - return TRUE; -} -static void -gst_multi_file_sink_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec) -{ - GstMultiFileSink *sink = GST_MULTI_FILE_SINK (object); - - switch (prop_id) { - case ARG_LOCATION: - gst_multi_file_sink_set_location (sink, g_value_get_string (value)); - break; - case ARG_INDEX: - sink->index = g_value_get_int (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gst_multi_file_sink_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec) -{ - GstMultiFileSink *sink = GST_MULTI_FILE_SINK (object); - - switch (prop_id) { - case ARG_LOCATION: - g_value_set_string (value, sink->filename); - break; - case ARG_INDEX: - g_value_set_int (value, sink->index); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static gchar * -gst_multi_file_sink_get_filename (GstMultiFileSink * multifilesink) -{ - gchar *filename; - - filename = g_strdup_printf (multifilesink->filename, multifilesink->index); - - return filename; -} - -static GstFlowReturn -gst_multi_file_sink_render (GstBaseSink * sink, GstBuffer * buffer) -{ - GstMultiFileSink *multifilesink; - guint size; - gchar *filename; - gboolean ret; - GError *error = NULL; - - size = GST_BUFFER_SIZE (buffer); - - multifilesink = GST_MULTI_FILE_SINK (sink); - - filename = gst_multi_file_sink_get_filename (multifilesink); - - ret = g_file_set_contents (filename, (char *) GST_BUFFER_DATA (buffer), - size, &error); - if (ret) { - multifilesink->index++; - g_free (filename); - return GST_FLOW_OK; - } - - switch (error->code) { - case G_FILE_ERROR_NOSPC:{ - GST_ELEMENT_ERROR (multifilesink, RESOURCE, NO_SPACE_LEFT, (NULL), - (NULL)); - break; - } - default:{ - GST_ELEMENT_ERROR (multifilesink, RESOURCE, WRITE, - ("Error while writing to file \"%s\".", filename), - ("%s", g_strerror (errno))); - } - } - g_error_free (error); - g_free (filename); - - return GST_FLOW_ERROR; -} diff --git a/gst/multifile/gstmultifilesink.h b/gst/multifile/gstmultifilesink.h deleted file mode 100644 index c26a64a1..00000000 --- a/gst/multifile/gstmultifilesink.h +++ /dev/null @@ -1,72 +0,0 @@ -/* GStreamer - * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu> - * 2000 Wim Taymans <wtay@chello.be> - * 2006 Wim Taymans <wim@fluendo.com> - * 2006 David A. Schleef <ds@schleef.org> - * - * gstmultifilesink.h: - * - * 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_MULTIFILESINK_H__ -#define __GST_MULTIFILESINK_H__ - -#include <gst/gst.h> -#include <gst/base/gstbasesink.h> -#include <errno.h> -#include <string.h> -#include <sys/stat.h> -#include <sys/types.h> -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif - -G_BEGIN_DECLS - -#define GST_TYPE_MULTI_FILE_SINK \ - (gst_multi_file_sink_get_type()) -#define GST_MULTI_FILE_SINK(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MULTI_FILE_SINK,GstMultiFileSink)) -#define GST_MULTI_FILE_SINK_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_MULTI_FILE_SINK,GstMultiFileSinkClass)) -#define GST_IS_MULTI_FILE_SINK(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MULTI_FILE_SINK)) -#define GST_IS_MULTI_FILE_SINK_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MULTI_FILE_SINK)) - -typedef struct _GstMultiFileSink GstMultiFileSink; -typedef struct _GstMultiFileSinkClass GstMultiFileSinkClass; - -struct _GstMultiFileSink -{ - GstBaseSink parent; - - gchar *filename; - gchar *uri; - int index; -}; - -struct _GstMultiFileSinkClass -{ - GstBaseSinkClass parent_class; -}; - -GType gst_multi_file_sink_get_type (void); - -G_END_DECLS - -#endif /* __GST_MULTIFILESINK_H__ */ diff --git a/gst/multifile/gstmultifilesrc.c b/gst/multifile/gstmultifilesrc.c deleted file mode 100644 index 4a30a050..00000000 --- a/gst/multifile/gstmultifilesrc.c +++ /dev/null @@ -1,323 +0,0 @@ -/* GStreamer - * Copyright (C) 2006 David A. Schleef <ds@schleef.org> - * - * gstmultifilesrc.c: - * - * 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:element-multifilesrc - * @short_description: Read buffers from sequentially-named files - * @see_also: #GstFileSrc - * - * <refsect2> - * <para> - * Reads buffers from sequentially named files. If used together with an image - * decoder, one needs to use the GstMultiFileSrc::caps property or a capsfilter - * to force to caps containing a framerate. Otherwise image decoders send EOS - * after the first picture. - * </para> - * <title>Example launch line</title> - * <para> - * <programlisting> - * gst-launch multifilesrc location="img.%04d.png" index=0 caps="image/png,framerate=\(fraction\)12/1" ! \ - * pngdec ! ffmpegcolorspace ! theoraenc ! oggmux ! \ - * filesink location="images.ogg" - * </programlisting> - * This pipeline creates a video file "images.ogg" by joining multiple PNG - * files named img.0000.png, img.0001.png, etc. - * </para> - * <para> - * File names are created by replacing "%%d" with the index using printf(). - * </para> - * </refsect2> -*/ - -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include "gstmultifilesrc.h" - - -static GstFlowReturn gst_multi_file_src_create (GstPushSrc * src, - GstBuffer ** buffer); - -static void gst_multi_file_src_dispose (GObject * object); - -static void gst_multi_file_src_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec); -static void gst_multi_file_src_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec); -static GstCaps *gst_multi_file_src_getcaps (GstBaseSrc * src); - - -static GstStaticPadTemplate gst_multi_file_src_pad_template = -GST_STATIC_PAD_TEMPLATE ("src", - GST_PAD_SRC, - GST_PAD_ALWAYS, - GST_STATIC_CAPS_ANY); - -GST_DEBUG_CATEGORY_STATIC (gst_multi_file_src_debug); -#define GST_CAT_DEFAULT gst_multi_file_src_debug - -static const GstElementDetails gst_multi_file_src_details = -GST_ELEMENT_DETAILS ("Multi-File Source", - "Source/File", - "Read a sequentially named set of files into buffers", - "David Schleef <ds@schleef.org>"); - -enum -{ - ARG_0, - ARG_LOCATION, - ARG_INDEX, - ARG_CAPS -}; - -#define DEFAULT_LOCATION "%05d" -#define DEFAULT_INDEX 0 - - -GST_BOILERPLATE (GstMultiFileSrc, gst_multi_file_src, GstPushSrc, - GST_TYPE_PUSH_SRC); - -static void -gst_multi_file_src_base_init (gpointer g_class) -{ - GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class); - - GST_DEBUG_CATEGORY_INIT (gst_multi_file_src_debug, "multifilesrc", 0, - "multifilesrc element"); - - gst_element_class_add_pad_template (gstelement_class, - gst_static_pad_template_get (&gst_multi_file_src_pad_template)); - gst_element_class_set_details (gstelement_class, &gst_multi_file_src_details); -} - -static void -gst_multi_file_src_class_init (GstMultiFileSrcClass * klass) -{ - GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - GstPushSrcClass *gstpushsrc_class = GST_PUSH_SRC_CLASS (klass); - GstBaseSrcClass *gstbasesrc_class = GST_BASE_SRC_CLASS (klass); - - gobject_class->set_property = gst_multi_file_src_set_property; - gobject_class->get_property = gst_multi_file_src_get_property; - - g_object_class_install_property (gobject_class, ARG_LOCATION, - g_param_spec_string ("location", "File Location", - "Pattern to create file names of input files. File names are " - "created by calling sprintf() with the pattern and the current " - "index.", DEFAULT_LOCATION, G_PARAM_READWRITE)); - g_object_class_install_property (gobject_class, ARG_INDEX, - g_param_spec_int ("index", "File Index", - "Index to use with location property to create file names. The " - "index is incremented by one for each buffer read.", - 0, INT_MAX, DEFAULT_INDEX, G_PARAM_READWRITE)); - g_object_class_install_property (gobject_class, ARG_CAPS, - g_param_spec_boxed ("caps", "Caps", - "Caps describing the format of the data.", - GST_TYPE_CAPS, G_PARAM_READWRITE)); - - gobject_class->dispose = gst_multi_file_src_dispose; - - gstpushsrc_class->create = gst_multi_file_src_create; - - gstbasesrc_class->get_caps = gst_multi_file_src_getcaps; - - if (sizeof (off_t) < 8) { - GST_LOG ("No large file support, sizeof (off_t) = %" G_GSIZE_FORMAT, - sizeof (off_t)); - } -} - -static void -gst_multi_file_src_init (GstMultiFileSrc * multifilesrc, - GstMultiFileSrcClass * g_class) -{ - GstPad *pad; - - pad = GST_BASE_SRC_PAD (multifilesrc); - - multifilesrc->index = DEFAULT_INDEX; - multifilesrc->filename = g_strdup (DEFAULT_LOCATION); - multifilesrc->successful_read = FALSE; -} - -static void -gst_multi_file_src_dispose (GObject * object) -{ - GstMultiFileSrc *src = GST_MULTI_FILE_SRC (object); - - g_free (src->filename); - src->filename = NULL; - if (src->caps) - gst_caps_unref (src->caps); - - G_OBJECT_CLASS (parent_class)->dispose (object); -} - -static GstCaps * -gst_multi_file_src_getcaps (GstBaseSrc * src) -{ - GstMultiFileSrc *multi_file_src = GST_MULTI_FILE_SRC (src); - - GST_DEBUG_OBJECT (src, "returning %" GST_PTR_FORMAT, multi_file_src->caps); - - if (multi_file_src->caps) { - return gst_caps_ref (multi_file_src->caps); - } else { - return gst_caps_new_any (); - } -} - -static gboolean -gst_multi_file_src_set_location (GstMultiFileSrc * src, const gchar * location) -{ - g_free (src->filename); - if (location != NULL) { - src->filename = g_strdup (location); - } else { - src->filename = NULL; - } - - return TRUE; -} -static void -gst_multi_file_src_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec) -{ - GstMultiFileSrc *src = GST_MULTI_FILE_SRC (object); - - switch (prop_id) { - case ARG_LOCATION: - gst_multi_file_src_set_location (src, g_value_get_string (value)); - break; - case ARG_INDEX: - src->index = g_value_get_int (value); - break; - case ARG_CAPS: - { - const GstCaps *caps = gst_value_get_caps (value); - GstCaps *new_caps; - - if (caps == NULL) { - new_caps = gst_caps_new_any (); - } else { - new_caps = gst_caps_copy (caps); - } - gst_caps_replace (&src->caps, new_caps); - gst_pad_set_caps (GST_BASE_SRC_PAD (src), new_caps); - } - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gst_multi_file_src_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec) -{ - GstMultiFileSrc *src = GST_MULTI_FILE_SRC (object); - - switch (prop_id) { - case ARG_LOCATION: - g_value_set_string (value, src->filename); - break; - case ARG_INDEX: - g_value_set_int (value, src->index); - break; - case ARG_CAPS: - gst_value_set_caps (value, src->caps); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static gchar * -gst_multi_file_src_get_filename (GstMultiFileSrc * multifilesrc) -{ - gchar *filename; - - filename = g_strdup_printf (multifilesrc->filename, multifilesrc->index); - - return filename; -} - -static GstFlowReturn -gst_multi_file_src_create (GstPushSrc * src, GstBuffer ** buffer) -{ - GstMultiFileSrc *multifilesrc; - guint size; - gchar *data; - gchar *filename; - GstBuffer *buf; - gboolean ret; - GError *error = NULL; - - multifilesrc = GST_MULTI_FILE_SRC (src); - - filename = gst_multi_file_src_get_filename (multifilesrc); - - GST_DEBUG_OBJECT (multifilesrc, "reading from file \"%s\".", filename); - - ret = g_file_get_contents (filename, &data, &size, &error); - if (!ret) { - if (multifilesrc->successful_read) { - /* If we've read at least one buffer successfully, not finding the - * next file is EOS. */ - g_free (filename); - return GST_FLOW_UNEXPECTED; - } else { - goto handle_error; - } - } - - multifilesrc->successful_read = TRUE; - multifilesrc->index++; - - buf = gst_buffer_new (); - GST_BUFFER_DATA (buf) = (unsigned char *) data; - GST_BUFFER_SIZE (buf) = size; - GST_BUFFER_OFFSET (buf) = multifilesrc->offset; - GST_BUFFER_OFFSET_END (buf) = multifilesrc->offset + size; - multifilesrc->offset += size; - gst_buffer_set_caps (buf, multifilesrc->caps); - - GST_DEBUG_OBJECT (multifilesrc, "read file \"%s\".", filename); - - g_free (filename); - *buffer = buf; - return GST_FLOW_OK; - -handle_error: - { - switch (errno) { - default:{ - GST_ELEMENT_ERROR (multifilesrc, RESOURCE, READ, - ("Error while reading from file \"%s\".", filename), - ("%s", g_strerror (errno))); - } - } - g_free (filename); - return GST_FLOW_ERROR; - } -} diff --git a/gst/multifile/gstmultifilesrc.h b/gst/multifile/gstmultifilesrc.h deleted file mode 100644 index 686ae4f0..00000000 --- a/gst/multifile/gstmultifilesrc.h +++ /dev/null @@ -1,66 +0,0 @@ -/* GStreamer - * Copyright (C) 2006 David A. Schleef <ds@schleef.org> - * - * gstmultifilesrc.c: - * - * 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_MULTIFILESRC_H__ -#define __GST_MULTIFILESRC_H__ - -#include <gst/gst.h> -#include <gst/base/gstpushsrc.h> - -G_BEGIN_DECLS - -#define GST_TYPE_MULTI_FILE_SRC \ - (gst_multi_file_src_get_type()) -#define GST_MULTI_FILE_SRC(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MULTI_FILE_SRC,GstMultiFileSrc)) -#define GST_MULTI_FILE_SRC_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_MULTI_FILE_SRC,GstMultiFileSrcClass)) -#define GST_IS_MULTI_FILE_SRC(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MULTI_FILE_SRC)) -#define GST_IS_MULTI_FILE_SRC_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MULTI_FILE_SRC)) - -typedef struct _GstMultiFileSrc GstMultiFileSrc; -typedef struct _GstMultiFileSrcClass GstMultiFileSrcClass; - -struct _GstMultiFileSrc -{ - GstPushSrc parent; - - gchar *filename; - int index; - - int offset; - - GstCaps *caps; - gboolean successful_read; -}; - -struct _GstMultiFileSrcClass -{ - GstPushSrcClass parent_class; -}; - -GType gst_multi_file_src_get_type (void); - -G_END_DECLS - -#endif /* __GST_MULTIFILESRC_H__ */ diff --git a/gst/multifile/multifile.vproj b/gst/multifile/multifile.vproj deleted file mode 100644 index 3cc8dae3..00000000 --- a/gst/multifile/multifile.vproj +++ /dev/null @@ -1,148 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="7.10" - Name="multitile" - ProjectGUID="{979C216F-0ACF-4956-AE00-055A42D678BF}" - Keyword="Win32Proj"> - <Platforms> - <Platform - Name="Win32"/> - </Platforms> - <Configurations> - <Configuration - Name="Debug|Win32" - OutputDirectory="../../win32/Debug" - IntermediateDirectory="../../win32/Debug" - ConfigurationType="2" - CharacterSet="2"> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="../../../gstreamer/win32;../../../gstreamer;../../../gstreamer/libs;../../../glib;../../../glib/glib;../../../glib/gmodule;"../../gst-libs";../../../popt/include;../../../libxml2/include/libxml2" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;multitile_EXPORTS;HAVE_CONFIG_H;_USE_MATH_DEFINES" - MinimalRebuild="TRUE" - BasicRuntimeChecks="3" - RuntimeLibrary="3" - UsePrecompiledHeader="0" - WarningLevel="3" - Detect64BitPortabilityProblems="TRUE" - DebugInformationFormat="4"/> - <Tool - Name="VCCustomBuildTool"/> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="glib-2.0.lib gmodule-2.0.lib gthread-2.0.lib gobject-2.0.lib libgstreamer.lib gstbytestream.lib iconv.lib intl.lib" - OutputFile="$(OutDir)/gstmultitile.dll" - LinkIncremental="2" - AdditionalLibraryDirectories="../../../gstreamer/win32/Debug;../../../glib/glib;../../../glib/gmodule;../../../glib/gthread;../../../glib/gobject;../../../gettext/lib;../../../libiconv/lib" - ModuleDefinitionFile="" - GenerateDebugInformation="TRUE" - ProgramDatabaseFile="$(OutDir)/multitile.pdb" - SubSystem="2" - OptimizeReferences="2" - ImportLibrary="$(OutDir)/gstmultitile.lib" - TargetMachine="1"/> - <Tool - Name="VCMIDLTool"/> - <Tool - Name="VCPostBuildEventTool" - CommandLine="copy /Y $(TargetPath) c:\gstreamer\plugins"/> - <Tool - Name="VCPreBuildEventTool"/> - <Tool - Name="VCPreLinkEventTool"/> - <Tool - Name="VCResourceCompilerTool"/> - <Tool - Name="VCWebServiceProxyGeneratorTool"/> - <Tool - Name="VCXMLDataGeneratorTool"/> - <Tool - Name="VCWebDeploymentTool"/> - <Tool - Name="VCManagedWrapperGeneratorTool"/> - <Tool - Name="VCAuxiliaryManagedWrapperGeneratorTool"/> - </Configuration> - <Configuration - Name="Release|Win32" - OutputDirectory="../../win32/Release" - IntermediateDirectory="../../win32/Release" - ConfigurationType="2" - CharacterSet="2"> - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="../../../gstreamer/win32;../../../gstreamer;../../../gstreamer/libs;../../../glib;../../../glib/glib;../../../glib/gmodule;"../../gst-libs";../../../popt/include;../../../libxml2/include/libxml2" - PreprocessorDefinitions="WIN32;NDEBUG;GST_DISABLE_GST_DEBUG;_WINDOWS;_USRDLL;multitile_EXPORTS;HAVE_CONFIG_H;_USE_MATH_DEFINES" - RuntimeLibrary="2" - UsePrecompiledHeader="0" - WarningLevel="3" - Detect64BitPortabilityProblems="TRUE" - DebugInformationFormat="3"/> - <Tool - Name="VCCustomBuildTool"/> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="glib-2.0.lib gmodule-2.0.lib gthread-2.0.lib gobject-2.0.lib libgstreamer.lib gstbytestream.lib iconv.lib intl.lib" - OutputFile="$(OutDir)/gstmultitile.dll" - LinkIncremental="1" - AdditionalLibraryDirectories="../../../gstreamer/win32/Release;../../../glib/glib;../../../glib/gmodule;../../../glib/gthread;../../../glib/gobject;../../../gettext/lib;../../../libiconv/lib" - ModuleDefinitionFile="" - GenerateDebugInformation="TRUE" - SubSystem="2" - OptimizeReferences="2" - EnableCOMDATFolding="2" - ImportLibrary="$(OutDir)/gstmultitile.lib" - TargetMachine="1"/> - <Tool - Name="VCMIDLTool"/> - <Tool - Name="VCPostBuildEventTool" - CommandLine="copy /Y $(TargetPath) c:\gstreamer\plugins"/> - <Tool - Name="VCPreBuildEventTool"/> - <Tool - Name="VCPreLinkEventTool"/> - <Tool - Name="VCResourceCompilerTool"/> - <Tool - Name="VCWebServiceProxyGeneratorTool"/> - <Tool - Name="VCXMLDataGeneratorTool"/> - <Tool - Name="VCWebDeploymentTool"/> - <Tool - Name="VCManagedWrapperGeneratorTool"/> - <Tool - Name="VCAuxiliaryManagedWrapperGeneratorTool"/> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <Filter - Name="Source Files" - Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" - UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> - <File - RelativePath=".\gstmultifile.c"> - </File> - </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl;inc;xsd" - UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> - <File - RelativePath=".\gstmultifile.h"> - </File> - </Filter> - <Filter - Name="Resource Files" - Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" - UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> - </Filter> - </Files> - <Globals> - </Globals> -</VisualStudioProject> diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am index 2eb774b6..598f35df 100644 --- a/tests/check/Makefile.am +++ b/tests/check/Makefile.am @@ -68,7 +68,6 @@ check_PROGRAMS = \ $(check_soup) \ $(check_timidity) \ elements/interleave \ - elements/multifile \ elements/rganalysis \ elements/rglimiter \ elements/rgvolume \ diff --git a/tests/check/elements/multifile.c b/tests/check/elements/multifile.c deleted file mode 100644 index 9529dfd2..00000000 --- a/tests/check/elements/multifile.c +++ /dev/null @@ -1,165 +0,0 @@ -/* GStreamer unit test for multifile plugin - * - * Copyright (C) 2007 David A. 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 <glib/gstdio.h> -#include <gst/check/gstcheck.h> - -static void -run_pipeline (GstElement * pipeline) -{ - gst_element_set_state (pipeline, GST_STATE_PAUSED); - gst_element_get_state (pipeline, NULL, NULL, -1); - gst_element_set_state (pipeline, GST_STATE_PLAYING); - /* FIXME too lazy */ - g_usleep (1000000); - gst_element_set_state (pipeline, GST_STATE_NULL); -} - -gchar * -g_mkdtemp (const gchar * template) -{ - gchar *s; - gchar *tmpdir; - - s = g_strdup (template); - tmpdir = mkdtemp (s); - if (tmpdir == NULL) { - g_free (s); - } - return tmpdir; -} - -GST_START_TEST (test_multifilesink) -{ - GstElement *pipeline; - GstElement *mfs; - int i; - const gchar *tmpdir; - gchar *my_tmpdir; - gchar *template; - gchar *mfs_pattern; - - tmpdir = g_get_tmp_dir (); - template = g_build_filename (tmpdir, "multifile-test-XXXXXX", NULL); - my_tmpdir = g_mkdtemp (template); - fail_if (my_tmpdir == NULL); - - pipeline = - gst_parse_launch - ("videotestsrc num-buffers=10 ! video/x-raw-yuv,format=(fourcc)I420,width=320,height=240 ! multifilesink", - NULL); - fail_if (pipeline == NULL); - mfs = gst_bin_get_by_name (GST_BIN (pipeline), "multifilesink0"); - fail_if (mfs == NULL); - mfs_pattern = g_build_filename (my_tmpdir, "%05d", NULL); - g_object_set (G_OBJECT (mfs), "location", mfs_pattern, NULL); - run_pipeline (pipeline); - gst_object_unref (pipeline); - - for (i = 0; i < 10; i++) { - char *s; - - s = g_strdup_printf (mfs_pattern, i); - fail_if (g_remove (s) != 0); - g_free (s); - } - fail_if (g_remove (my_tmpdir) != 0); - - g_free (mfs_pattern); - g_free (my_tmpdir); - g_free (template); -} - -GST_END_TEST; - -GST_START_TEST (test_multifilesrc) -{ - GstElement *pipeline; - GstElement *mfs; - int i; - const gchar *tmpdir; - gchar *my_tmpdir; - gchar *template; - gchar *mfs_pattern; - - tmpdir = g_get_tmp_dir (); - template = g_build_filename (tmpdir, "multifile-test-XXXXXX", NULL); - my_tmpdir = g_mkdtemp (template); - fail_if (my_tmpdir == NULL); - - pipeline = - gst_parse_launch - ("videotestsrc num-buffers=10 ! video/x-raw-yuv,format=(fourcc)I420,width=320,height=240 ! multifilesink", - NULL); - fail_if (pipeline == NULL); - mfs = gst_bin_get_by_name (GST_BIN (pipeline), "multifilesink0"); - fail_if (mfs == NULL); - mfs_pattern = g_build_filename (my_tmpdir, "%05d", NULL); - g_object_set (G_OBJECT (mfs), "location", mfs_pattern, NULL); - run_pipeline (pipeline); - gst_object_unref (pipeline); - - pipeline = - gst_parse_launch - ("multifilesrc ! video/x-raw-yuv,format=(fourcc)I420,width=320,height=240,framerate=10/1 ! fakesink", - NULL); - fail_if (pipeline == NULL); - mfs = gst_bin_get_by_name (GST_BIN (pipeline), "multifilesrc0"); - fail_if (mfs == NULL); - mfs_pattern = g_build_filename (my_tmpdir, "%05d", NULL); - g_object_set (G_OBJECT (mfs), "location", mfs_pattern, NULL); - run_pipeline (pipeline); - gst_object_unref (pipeline); - - for (i = 0; i < 10; i++) { - char *s; - - s = g_strdup_printf (mfs_pattern, i); - fail_if (g_remove (s) != 0); - g_free (s); - } - fail_if (g_remove (my_tmpdir) != 0); - - g_free (mfs_pattern); - g_free (my_tmpdir); - g_free (template); -} - -GST_END_TEST; - -static Suite * -libvisual_suite (void) -{ - Suite *s = suite_create ("multifile"); - TCase *tc_chain = tcase_create ("general"); - - suite_add_tcase (s, tc_chain); - - tcase_add_test (tc_chain, test_multifilesink); - tcase_add_test (tc_chain, test_multifilesrc); - - return s; -} - -GST_CHECK_MAIN (libvisual); |