docs/plugins/Makefile.am: Add multipart elements.

Original commit message from CVS:
2005-12-08  Julien MOUTTE  <julien@moutte.net>

* docs/plugins/Makefile.am: Add multipart elements.
* docs/plugins/gst-plugins-good-plugins-docs.sgml:
* docs/plugins/gst-plugins-good-plugins-sections.txt: Fix flac.
* docs/plugins/gst-plugins-good-plugins.hierarchy:
* gst/multipart/multipartdemux.c:
* gst/multipart/multipartmux.c: Add docs.
This commit is contained in:
Julien Moutte 2005-12-08 16:27:12 +00:00
parent 82d3a26a56
commit 207aced76d
7 changed files with 95 additions and 11 deletions

View file

@ -1,3 +1,12 @@
2005-12-08 Julien MOUTTE <julien@moutte.net>
* docs/plugins/Makefile.am: Add multipart elements.
* docs/plugins/gst-plugins-good-plugins-docs.sgml:
* docs/plugins/gst-plugins-good-plugins-sections.txt: Fix flac.
* docs/plugins/gst-plugins-good-plugins.hierarchy:
* gst/multipart/multipartdemux.c:
* gst/multipart/multipartmux.c: Add docs.
2005-12-07 Edward Hervey <edward@fluendo.com> 2005-12-07 Edward Hervey <edward@fluendo.com>
* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event), * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event),

View file

@ -79,7 +79,9 @@ EXTRA_HFILES = \
$(top_srcdir)/gst/level/gstlevel.h \ $(top_srcdir)/gst/level/gstlevel.h \
$(top_srcdir)/gst/goom/gstgoom.h \ $(top_srcdir)/gst/goom/gstgoom.h \
$(top_srcdir)/ext/cairo/gsttimeoverlay.h \ $(top_srcdir)/ext/cairo/gsttimeoverlay.h \
$(top_srcdir)/ext/flac/gstflacdec.h $(top_srcdir)/ext/flac/gstflacdec.h \
$(top_srcdir)/gst/multipart/multipartmux.c \
$(top_srcdir)/gst/multipart/multipartdemux.c
# example code that needs to be converted to xml and placed in xml/ # example code that needs to be converted to xml and placed in xml/
EXAMPLE_CFILES = \ EXAMPLE_CFILES = \

View file

@ -18,6 +18,8 @@
<xi:include href="xml/element-flacdec.xml" /> <xi:include href="xml/element-flacdec.xml" />
<xi:include href="xml/element-goom.xml" /> <xi:include href="xml/element-goom.xml" />
<xi:include href="xml/element-level.xml" /> <xi:include href="xml/element-level.xml" />
<xi:include href="xml/element-multipartmux.xml" />
<xi:include href="xml/element-multipartdemux.xml" />
</chapter> </chapter>
<chapter> <chapter>
@ -38,7 +40,6 @@
<xi:include href="xml/plugin-efence.xml" /> <xi:include href="xml/plugin-efence.xml" />
<xi:include href="xml/plugin-effectv.xml" /> <xi:include href="xml/plugin-effectv.xml" />
<xi:include href="xml/plugin-esdsink.xml" /> <xi:include href="xml/plugin-esdsink.xml" />
<xi:include href="xml/plugin-fdsrc.xml" />
<xi:include href="xml/plugin-flac.xml" /> <xi:include href="xml/plugin-flac.xml" />
<xi:include href="xml/plugin-flxdec.xml" /> <xi:include href="xml/plugin-flxdec.xml" />
<xi:include href="xml/plugin-gconfelements.xml" /> <xi:include href="xml/plugin-gconfelements.xml" />

View file

@ -24,10 +24,10 @@ GstCairoTimeOverlayClass
<SECTION> <SECTION>
<FILE>element-flacdec</FILE> <FILE>element-flacdec</FILE>
GstFlacDec FlacDec
<TITLE>flacdec</TITLE> <TITLE>flacdec</TITLE>
<SUBSECTION Standard> <SUBSECTION Standard>
GstFlacDecClass FlacDecClass
</SECTION> </SECTION>
<SECTION> <SECTION>
@ -46,4 +46,19 @@ GstLevel
GstLevelClass GstLevelClass
</SECTION> </SECTION>
<SECTION>
<FILE>element-multipartmux</FILE>
GstMultipartMux
<TITLE>multipartmux</TITLE>
<SUBSECTION Standard>
GstMultipartMuxClass
</SECTION>
<SECTION>
<FILE>element-multipartdemux</FILE>
GstMultipartDemux
<TITLE>multipartdemux</TITLE>
<SUBSECTION Standard>
GstMultipartDemuxClass
</SECTION>

View file

@ -292,6 +292,8 @@ GObject
GstAlsaMixerElement GstAlsaMixerElement
GstTee GstTee
GstTypeFindElement GstTypeFindElement
GstMultipartMux
GstMultipartDemux
GstPadTemplate GstPadTemplate
GstIndex GstIndex
GstMemIndex GstMemIndex

View file

@ -19,6 +19,29 @@
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*/ */
/**
* SECTION:element-multipartdemux
* @short_description: Demuxer that takes a multipart digital stream as input
* and demuxes one or many digital streams from it.
* @see_also: #GstMultipartMux
*
* <refsect2>
* <para>
* MultipartDemux uses the Content-type field of incoming buffers to demux and
* push data to dynamic source pads. Most of the time multipart streams are
* sequential JPEG frames.
* </para>
* <title>Sample pipelines</title>
* <para>
* Here is a simple pipeline to demux a multipart file muxed with
* #GstMultipartMux containing JPEG frames at a rate of 5 frames per second :
* <programlisting>
* gst-launch filesrc location=/tmp/test.multipart ! multipartdemux ! jpegdec ! video/x-raw-yuv, framerate=(fraction)5/1 ! ffmpegcolorspace ! ximagesink
* </programlisting>
* </para>
* </refsect2>
*/
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif
@ -27,22 +50,16 @@
#include <string.h> #include <string.h>
GST_DEBUG_CATEGORY_STATIC (gst_multipart_demux_debug);
#define GST_CAT_DEFAULT gst_multipart_demux_debug
#define GST_TYPE_MULTIPART_DEMUX (gst_multipart_demux_get_type()) #define GST_TYPE_MULTIPART_DEMUX (gst_multipart_demux_get_type())
#define GST_MULTIPART_DEMUX(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MULTIPART_DEMUX, GstMultipartDemux)) #define GST_MULTIPART_DEMUX(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MULTIPART_DEMUX, GstMultipartDemux))
#define GST_MULTIPART_DEMUX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_MULTIPART_DEMUX, GstMultipartDemux)) #define GST_MULTIPART_DEMUX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_MULTIPART_DEMUX, GstMultipartDemux))
#define GST_IS_MULTIPART_DEMUX(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MULTIPART_DEMUX)) #define GST_IS_MULTIPART_DEMUX(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MULTIPART_DEMUX))
#define GST_IS_MULTIPART_DEMUX_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MULTIPART_DEMUX)) #define GST_IS_MULTIPART_DEMUX_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MULTIPART_DEMUX))
#define MAX_LINE_LEN 500
typedef struct _GstMultipartDemux GstMultipartDemux; typedef struct _GstMultipartDemux GstMultipartDemux;
typedef struct _GstMultipartDemuxClass GstMultipartDemuxClass; typedef struct _GstMultipartDemuxClass GstMultipartDemuxClass;
static gchar *toFind = "--ThisRandomString\nContent-type: "; #define MAX_LINE_LEN 500
static gint toFindLen;
/* all information needed for one multipart stream */ /* all information needed for one multipart stream */
typedef struct typedef struct
@ -58,6 +75,11 @@ typedef struct
} }
GstMultipartPad; GstMultipartPad;
/**
* GstMultipartDemux:
*
* The opaque #GstMultipartDemux structure.
*/
struct _GstMultipartDemux struct _GstMultipartDemux
{ {
GstElement element; GstElement element;
@ -81,6 +103,12 @@ struct _GstMultipartDemuxClass
GstElementClass parent_class; GstElementClass parent_class;
}; };
GST_DEBUG_CATEGORY_STATIC (gst_multipart_demux_debug);
#define GST_CAT_DEFAULT gst_multipart_demux_debug
static gchar *toFind = "--ThisRandomString\nContent-type: ";
static gint toFindLen;
/* elementfactory information */ /* elementfactory information */
static GstElementDetails gst_multipart_demux_details = static GstElementDetails gst_multipart_demux_details =
GST_ELEMENT_DETAILS ("multipart demuxer", GST_ELEMENT_DETAILS ("multipart demuxer",

View file

@ -17,6 +17,28 @@
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*/ */
/**
* SECTION:element-multipartmux
* @short_description: Muxer that takes one or several digital streams
* and muxes them to a single multipart stream.
*
* <refsect2>
* <para>
* MultipartMux uses the #GstCaps of the sink pad as the Content-type field for
* incoming buffers when muxing them to a multipart stream. Most of the time
* multipart streams are sequential JPEG frames.
* </para>
* <title>Sample pipelines</title>
* <para>
* Here is a simple pipeline to mux 5 JPEG frames per second into a multipart
* stream stored to a file :
* <programlisting>
* gst-launch videotestsrc ! video/x-raw-yuv, framerate=(fraction)5/1 ! jpegenc ! multipartmux ! filesink location=/tmp/test.multipart
* </programlisting>
* </para>
* </refsect2>
*/
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif
@ -47,6 +69,11 @@ typedef struct
} }
GstMultipartPad; GstMultipartPad;
/**
* GstMultipartMux:
*
* The opaque #GstMultipartMux structure.
*/
struct _GstMultipartMux struct _GstMultipartMux
{ {
GstElement element; GstElement element;