a hack to work around intltool's brokenness a current check for mpeg2dec details->klass reorganizations an element br...

Original commit message from CVS:
* a hack to work around intltool's brokenness
* a current check for mpeg2dec
* details->klass reorganizations
* an element browser that uses details->klass
* separated cdxa parse out from the avi directory
This commit is contained in:
Andy Wingo 2002-04-20 21:42:51 +00:00
parent d4458d89c9
commit cca77e215b
29 changed files with 42 additions and 494 deletions

View file

@ -166,7 +166,7 @@ GST_PLUGIN_LDFLAGS='-module -avoid-version'
AC_SUBST(GST_PLUGIN_LDFLAGS) AC_SUBST(GST_PLUGIN_LDFLAGS)
GST_PLUGINS_ALL="\ GST_PLUGINS_ALL="\
ac3parse adder audioscale auparse avi chart\ ac3parse adder audioscale auparse avi cdxaparse chart\
cutter deinterlace flx goom intfloat law level\ cutter deinterlace flx goom intfloat law level\
median mpeg1enc mpeg1sys mpeg1videoparse mpeg2enc mpeg2sub\ median mpeg1enc mpeg1sys mpeg1videoparse mpeg2enc mpeg2sub\
mpegaudio mpegaudioparse mpegstream mpegtypes modplug\ mpegaudio mpegaudioparse mpegstream mpegtypes modplug\
@ -744,6 +744,7 @@ gst/adder/Makefile
gst/audioscale/Makefile gst/audioscale/Makefile
gst/auparse/Makefile gst/auparse/Makefile
gst/avi/Makefile gst/avi/Makefile
gst/cdxaparse/Makefile
gst/chart/Makefile gst/chart/Makefile
gst/cutter/Makefile gst/cutter/Makefile
gst/deinterlace/Makefile gst/deinterlace/Makefile

View file

@ -70,7 +70,7 @@ GType gst_esdmon_get_type(void);
/* elementfactory information */ /* elementfactory information */
static GstElementDetails esdmon_details = { static GstElementDetails esdmon_details = {
"Esound audio monitor", "Esound audio monitor",
"Src/Esdmon", "Source/Audio",
"Monitors audio from an esound server", "Monitors audio from an esound server",
VERSION, VERSION,
"Richard Boulton <richard-gst@tartarus.org>", "Richard Boulton <richard-gst@tartarus.org>",

View file

@ -26,7 +26,7 @@
/* elementfactory information */ /* elementfactory information */
static GstElementDetails esdsink_details = { static GstElementDetails esdsink_details = {
"Esound audio sink", "Esound audio sink",
"Sink/Esdsink", "Sink/Audio",
"Plays audio to an esound server", "Plays audio to an esound server",
VERSION, VERSION,
"Richard Boulton <richard-gst@tartarus.org>", "Richard Boulton <richard-gst@tartarus.org>",

View file

@ -29,7 +29,7 @@ extern GstPadTemplate *dec_src_template, *dec_sink_template;
/* elementfactory information */ /* elementfactory information */
GstElementDetails flacdec_details = { GstElementDetails flacdec_details = {
"FLAC decoder", "FLAC decoder",
"Filter/Audio/Decoder", "Codec/Audio/Decoder",
"Decodes FLAC lossless audio streams", "Decodes FLAC lossless audio streams",
VERSION, VERSION,
"Wim Taymans <wim.taymans@chello.be>", "Wim Taymans <wim.taymans@chello.be>",

View file

@ -28,7 +28,7 @@ extern GstPadTemplate *enc_src_template, *enc_sink_template;
/* elementfactory information */ /* elementfactory information */
GstElementDetails flacenc_details = { GstElementDetails flacenc_details = {
"FLAC encoder", "FLAC encoder",
"Filter/Audio/Encoder", "Codec/Audio/Encoder",
"Encodes audio with the FLAC lossless audio encoder", "Encodes audio with the FLAC lossless audio encoder",
VERSION, VERSION,
"Wim Taymans <wim.taymans@chello.be>", "Wim Taymans <wim.taymans@chello.be>",

View file

@ -28,7 +28,7 @@ extern GstPadTemplate *jpegdec_src_template, *jpegdec_sink_template;
/* elementfactory information */ /* elementfactory information */
GstElementDetails gst_jpegdec_details = { GstElementDetails gst_jpegdec_details = {
"jpeg image decoder", "jpeg image decoder",
"Filter/Decoder/Image", "Codec/Image/Decoder",
".jpeg", ".jpeg",
VERSION, VERSION,
"Wim Taymans <wim.taymans@tvd.be>", "Wim Taymans <wim.taymans@tvd.be>",

View file

@ -25,7 +25,7 @@
/* elementfactory information */ /* elementfactory information */
GstElementDetails gst_jpegenc_details = { GstElementDetails gst_jpegenc_details = {
"jpeg image encoder", "jpeg image encoder",
"Filter/Encoder/Image", "Codec/Image/Encoder",
".jpeg", ".jpeg",
VERSION, VERSION,
"Wim Taymans <wim.taymans@tvd.be>", "Wim Taymans <wim.taymans@tvd.be>",

View file

@ -398,6 +398,7 @@ gst_ladspa_init (GstLADSPA *ladspa)
ladspa->newcaps = FALSE; ladspa->newcaps = FALSE;
ladspa->activated = FALSE; ladspa->activated = FALSE;
ladspa->bufpool = NULL; ladspa->bufpool = NULL;
ladspa->inplace_broken = LADSPA_IS_INPLACE_BROKEN(ladspa->descriptor->Properties);
if (sinkcount==0 && srccount == 1) { if (sinkcount==0 && srccount == 1) {
/* get mode (no sink pads) */ /* get mode (no sink pads) */
@ -719,7 +720,6 @@ gst_ladspa_loop(GstElement *element)
GstBuffer **buffers_in, **buffers_out; GstBuffer **buffers_in, **buffers_out;
GstBufferPool *bufpool; GstBufferPool *bufpool;
GstByteStream **bytestreams; GstByteStream **bytestreams;
gboolean inplace_broken;
GstLADSPA *ladspa = (GstLADSPA *)element; GstLADSPA *ladspa = (GstLADSPA *)element;
GstLADSPAClass *oclass = (GstLADSPAClass*)(G_OBJECT_GET_CLASS (ladspa)); GstLADSPAClass *oclass = (GstLADSPAClass*)(G_OBJECT_GET_CLASS (ladspa));
@ -799,7 +799,7 @@ gst_ladspa_loop(GstElement *element)
/* we now have a full set of buffers_in. /* we now have a full set of buffers_in.
* now share or create the buffers_out */ * now share or create the buffers_out */
for (i=0 ; i<numsrcpads ; i++){ for (i=0 ; i<numsrcpads ; i++){
if (i <= numsinkpads && !inplace_broken){ if (i <= numsinkpads && !ladspa->inplace_broken){
/* we can share buffers */ /* we can share buffers */
buffers_out[i] = buffers_in[i]; buffers_out[i] = buffers_in[i];
data_out[i] = data_in[i]; data_out[i] = data_in[i];
@ -845,7 +845,7 @@ gst_ladspa_loop(GstElement *element)
buffers_out[i] = NULL; buffers_out[i] = NULL;
} }
for (i=0 ; i<numsinkpads ; i++) { for (i=0 ; i<numsinkpads ; i++) {
if (i > numsrcpads || inplace_broken){ if (i > numsrcpads || ladspa->inplace_broken){
/* we have some buffers to unref */ /* we have some buffers to unref */
gst_buffer_unref(buffers_in[i]); gst_buffer_unref(buffers_in[i]);
} }
@ -873,11 +873,10 @@ static void
gst_ladspa_chain (GstPad *pad, GstBuffer *buf) gst_ladspa_chain (GstPad *pad, GstBuffer *buf)
{ {
LADSPA_Descriptor *desc; LADSPA_Descriptor *desc;
LADSPA_Data *data_in, **data_out; LADSPA_Data *data_in, **data_out = NULL;
GstBuffer **buffers_out; GstBuffer **buffers_out = NULL;
unsigned long num_samples; unsigned long num_samples;
gboolean inplace_broken;
guint num_to_process, num_processed, i, numsrcpads; guint num_to_process, num_processed, i, numsrcpads;
GstLADSPA *ladspa; GstLADSPA *ladspa;
@ -909,13 +908,12 @@ gst_ladspa_chain (GstPad *pad, GstBuffer *buf)
desc = ladspa->descriptor; desc = ladspa->descriptor;
inplace_broken = LADSPA_IS_INPLACE_BROKEN(desc->Properties);
if (numsrcpads > 0){ if (numsrcpads > 0){
guint num_created_buffers = 0; guint num_created_buffers = 0;
buffers_out = g_new(GstBuffer*, numsrcpads); buffers_out = g_new(GstBuffer*, numsrcpads);
data_out = g_new(LADSPA_Data*, numsrcpads); data_out = g_new(LADSPA_Data*, numsrcpads);
if (inplace_broken){ if (ladspa->inplace_broken){
num_created_buffers = numsrcpads; num_created_buffers = numsrcpads;
} }
else { else {
@ -1077,7 +1075,7 @@ ladspa_describe_plugin(const char *pcFullFilename,
/* construct the element details struct */ /* construct the element details struct */
details = g_new0(GstElementDetails,1); details = g_new0(GstElementDetails,1);
details->longname = g_strdup(desc->Name); details->longname = g_strdup(desc->Name);
details->klass = "Filter/LADSPA"; details->klass = "Filter/Audio/LADSPA";
details->description = details->longname; details->description = details->longname;
details->version = g_strdup_printf("%ld",desc->UniqueID); details->version = g_strdup_printf("%ld",desc->UniqueID);
details->author = g_strdup(desc->Maker); details->author = g_strdup(desc->Maker);

View file

@ -66,7 +66,7 @@ struct _GstLADSPA {
gint samplerate, buffersize, numbuffers; gint samplerate, buffersize, numbuffers;
gint64 timestamp; gint64 timestamp;
gboolean inplace_broken;
}; };
struct _GstLADSPAClass { struct _GstLADSPAClass {

View file

@ -30,7 +30,7 @@
/* elementfactory information */ /* elementfactory information */
static GstElementDetails gst_auparse_details = { static GstElementDetails gst_auparse_details = {
".au parser", ".au parser",
"Parser/Audio", "Codec/Parser",
"Parse an .au file into raw audio", "Parse an .au file into raw audio",
VERSION, VERSION,
"Erik Walthinsen <omega@cse.ogi.edu>", "Erik Walthinsen <omega@cse.ogi.edu>",

View file

@ -2,20 +2,17 @@ plugindir = $(libdir)/gst
plugin_LTLIBRARIES = \ plugin_LTLIBRARIES = \
libgstavimux.la \ libgstavimux.la \
libgstavidemux.la \ libgstavidemux.la
libgstcdxaparse.la
# libgstaviaudiodecoder.la # libgstaviaudiodecoder.la
libgstavidemux_la_SOURCES = gstavidemux.c libgstavidemux_la_SOURCES = gstavidemux.c
libgstavimux_la_SOURCES = gstavimux.c libgstavimux_la_SOURCES = gstavimux.c
# libgstaviaudiodecoder_la_SOURCES = gstaviaudiodecoder.c # libgstaviaudiodecoder_la_SOURCES = gstaviaudiodecoder.c
libgstcdxaparse_la_SOURCES = gstcdxaparse.c
noinst_HEADERS = \ noinst_HEADERS = \
gstavimux.h \ gstavimux.h \
gstavidemux.h \ gstavidemux.h \
gstaviaudiodecoder.h \ gstaviaudiodecoder.h
gstcdxaparse.h
#CFLAGS += -Wall -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions -ffast-math -DNDEBUG #CFLAGS += -Wall -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions -ffast-math -DNDEBUG
@ -31,8 +28,4 @@ libgstavimux_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
# libgstaviaudiodecoder_la_LIBADD = # libgstaviaudiodecoder_la_LIBADD =
# libgstaviaudiodecoder_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) # libgstaviaudiodecoder_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstcdxaparse_la_CFLAGS = -O2 -ffast-math $(GST_CFLAGS)
libgstcdxaparse_la_LIBADD =
libgstcdxaparse_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
EXTRA_DIST = README_win32dll README EXTRA_DIST = README_win32dll README

View file

@ -26,9 +26,9 @@
/* elementfactory information */ /* elementfactory information */
static GstElementDetails gst_avi_demux_details = { static GstElementDetails gst_avi_demux_details = {
".avi parser", "Avi demuxer",
"Parser/Video", "Codec/Demuxer",
"Parse a .avi file into audio and video", "Demultiplex an avi file into audio and video",
VERSION, VERSION,
"Erik Walthinsen <omega@cse.ogi.edu>\n" "Erik Walthinsen <omega@cse.ogi.edu>\n"
"Wim Taymans <wim.taymans@tvd.be>", "Wim Taymans <wim.taymans@tvd.be>",

View file

@ -45,8 +45,8 @@
static GstElementDetails static GstElementDetails
gst_avimux_details = gst_avimux_details =
{ {
".avi mux", "Avi multiplexer",
"Mux/Video", "Codec/Muxer",
"Muxes audio and video into an avi stream", "Muxes audio and video into an avi stream",
VERSION, VERSION,
"Ronald Bultje <rbultje@ronald.bitfreak.net>", "Ronald Bultje <rbultje@ronald.bitfreak.net>",

View file

@ -1,363 +0,0 @@
/* GStreamer
* Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
* <2002> Wim Taymans <wim.taymans@chello.be>
*
* 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.
*/
#include <string.h>
#include "gstcdxaparse.h"
#define MAKE_FOUR_CC(a,b,c,d) ( ((guint32)a) | (((guint32)b)<< 8) | \
((guint32)c)<<16 | (((guint32)d)<<24) )
/* RIFF types */
#define GST_RIFF_TAG_RIFF MAKE_FOUR_CC('R','I','F','F')
#define GST_RIFF_RIFF_CDXA MAKE_FOUR_CC('C','D','X','A')
#define GST_RIFF_TAG_fmt MAKE_FOUR_CC('f','m','t',' ')
#define GST_RIFF_TAG_data MAKE_FOUR_CC('d','a','t','a')
/* elementfactory information */
static GstElementDetails gst_cdxa_parse_details = {
".dat parser",
"Parser/Video",
"Parse a .dat file (VCD) into raw mpeg1",
VERSION,
"Wim Taymans <wim.taymans@tvd.be>",
"(C) 2002",
};
static GstCaps* cdxa_type_find (GstBuffer *buf, gpointer private);
/* typefactory for 'cdxa' */
static GstTypeDefinition cdxadefinition = {
"cdxaparse_video/avi",
"video/avi",
".dat",
cdxa_type_find,
};
/* CDXAParse signals and args */
enum {
/* FILL ME */
LAST_SIGNAL
};
enum {
ARG_0,
/* FILL ME */
};
GST_PAD_TEMPLATE_FACTORY (sink_templ,
"sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
GST_CAPS_NEW (
"cdxaparse_sink",
"video/avi",
"format", GST_PROPS_STRING ("CDXA")
)
)
GST_PAD_TEMPLATE_FACTORY (src_templ,
"src",
GST_PAD_SRC,
GST_PAD_ALWAYS,
GST_CAPS_NEW (
"cdxaparse_src",
"video/mpeg",
"mpegversion", GST_PROPS_INT (1),
"systemstream", GST_PROPS_BOOLEAN (TRUE)
)
)
static void gst_cdxa_parse_class_init (GstCDXAParseClass *klass);
static void gst_cdxa_parse_init (GstCDXAParse *cdxa_parse);
static void gst_cdxa_parse_loop (GstElement *element);
static GstElementStateReturn
gst_cdxa_parse_change_state (GstElement *element);
static GstElementClass *parent_class = NULL;
/*static guint gst_cdxa_parse_signals[LAST_SIGNAL] = { 0 }; */
GType
gst_cdxa_parse_get_type(void)
{
static GType cdxa_parse_type = 0;
if (!cdxa_parse_type) {
static const GTypeInfo cdxa_parse_info = {
sizeof(GstCDXAParseClass),
NULL,
NULL,
(GClassInitFunc)gst_cdxa_parse_class_init,
NULL,
NULL,
sizeof(GstCDXAParse),
0,
(GInstanceInitFunc)gst_cdxa_parse_init,
};
cdxa_parse_type = g_type_register_static(GST_TYPE_ELEMENT, "GstCDXAParse", &cdxa_parse_info, 0);
}
return cdxa_parse_type;
}
static void
gst_cdxa_parse_class_init (GstCDXAParseClass *klass)
{
GObjectClass *gobject_class;
GstElementClass *gstelement_class;
gobject_class = (GObjectClass*)klass;
gstelement_class = (GstElementClass*)klass;
parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
gstelement_class->change_state = gst_cdxa_parse_change_state;
}
static void
gst_cdxa_parse_init (GstCDXAParse *cdxa_parse)
{
GST_FLAG_SET (cdxa_parse, GST_ELEMENT_EVENT_AWARE);
cdxa_parse->sinkpad = gst_pad_new_from_template (
GST_PAD_TEMPLATE_GET (sink_templ), "sink");
gst_element_add_pad (GST_ELEMENT (cdxa_parse), cdxa_parse->sinkpad);
cdxa_parse->srcpad = gst_pad_new_from_template (
GST_PAD_TEMPLATE_GET (src_templ), "src");
gst_element_add_pad (GST_ELEMENT (cdxa_parse), cdxa_parse->srcpad);
gst_element_set_loop_function (GST_ELEMENT (cdxa_parse), gst_cdxa_parse_loop);
}
static GstCaps*
cdxa_type_find (GstBuffer *buf,
gpointer private)
{
gchar *data = GST_BUFFER_DATA (buf);
GstCaps *new;
GST_DEBUG (0,"cdxa_parse: typefind");
if (GUINT32_FROM_LE (((guint32 *)data)[0]) != GST_RIFF_TAG_RIFF)
return NULL;
if (GUINT32_FROM_LE (((guint32 *)data)[2]) != GST_RIFF_RIFF_CDXA)
return NULL;
new = GST_CAPS_NEW ("cdxa_type_find",
"video/avi",
"RIFF", GST_PROPS_STRING ("CDXA"));
return new;
}
static gboolean
gst_cdxa_parse_handle_event (GstCDXAParse *cdxa_parse)
{
guint32 remaining;
GstEvent *event;
GstEventType type;
gst_bytestream_get_status (cdxa_parse->bs, &remaining, &event);
type = event? GST_EVENT_TYPE (event) : GST_EVENT_UNKNOWN;
switch (type) {
case GST_EVENT_EOS:
gst_pad_event_default (cdxa_parse->sinkpad, event);
break;
case GST_EVENT_SEEK:
g_warning ("seek event\n");
break;
case GST_EVENT_FLUSH:
g_warning ("flush event\n");
break;
case GST_EVENT_DISCONTINUOUS:
g_warning ("discont event\n");
break;
default:
g_warning ("unhandled event %d\n", type);
break;
}
return TRUE;
}
/*
CDXA starts with the following header:
! RIFF:4 ! size:4 ! "CDXA" ! "fmt " ! size:4 ! (size+1)&~1 bytes of crap !
! "data" ! data_size:4 ! (data_size/2352) sectors...
*/
typedef struct
{
gchar RIFF_tag[4];
guint32 riff_size;
gchar CDXA_tag[4];
gchar fmt_tag[4];
guint32 fmt_size;
} CDXAParseHeader;
/*
A sectors is 2352 bytes long and is composed of:
! sync ! header ! subheader ! data ... ! edc !
! 12 bytes ! 4 bytes ! 8 bytes ! 2324 bytes ! 4 bytes !
!-------------------------------------------------------!
We parse the data out of it and send it to the srcpad.
*/
static void
gst_cdxa_parse_loop (GstElement *element)
{
GstCDXAParse *cdxa_parse;
CDXAParseHeader *header;
g_return_if_fail (element != NULL);
g_return_if_fail (GST_IS_CDXA_PARSE (element));
cdxa_parse = GST_CDXA_PARSE (element);
if (cdxa_parse->state == CDXA_PARSE_HEADER) {
guint32 fmt_size;
guint8 *buf;
header = (CDXAParseHeader *) gst_bytestream_peek_bytes (cdxa_parse->bs, 20);
if (!header)
return;
cdxa_parse->riff_size = GUINT32_FROM_LE (header->riff_size);
fmt_size = (GUINT32_FROM_LE (header->fmt_size) + 1)&~1;
/* flush the header + fmt_size bytes + 4 bytes "data" */
if (!gst_bytestream_flush (cdxa_parse->bs, 20 + fmt_size + 4))
return;
/* get the data size */
buf = gst_bytestream_peek_bytes (cdxa_parse->bs, 4);
if (!buf)
return;
cdxa_parse->data_size = GUINT32_FROM_LE (*((guint32 *)buf));
/* flush the data size */
if (!gst_bytestream_flush (cdxa_parse->bs, 4))
return;
if (cdxa_parse->data_size % CDXA_SECTOR_SIZE)
g_warning ("cdxa_parse: size not multiple of %d bytes", CDXA_SECTOR_SIZE);
cdxa_parse->sectors = cdxa_parse->data_size / CDXA_SECTOR_SIZE;
cdxa_parse->state = CDXA_PARSE_DATA;
}
else {
GstBuffer *buf;
GstBuffer *outbuf;
buf = gst_bytestream_read (cdxa_parse->bs, CDXA_SECTOR_SIZE);
if (!buf) {
gst_cdxa_parse_handle_event (cdxa_parse);
return;
}
outbuf = gst_buffer_create_sub (buf, 24, CDXA_DATA_SIZE);
gst_buffer_unref (buf);
gst_pad_push (cdxa_parse->srcpad, outbuf);
}
}
static GstElementStateReturn
gst_cdxa_parse_change_state (GstElement *element)
{
GstCDXAParse *cdxa_parse = GST_CDXA_PARSE (element);
switch (GST_STATE_TRANSITION (element)) {
case GST_STATE_NULL_TO_READY:
break;
case GST_STATE_READY_TO_PAUSED:
cdxa_parse->state = CDXA_PARSE_HEADER;
cdxa_parse->bs = gst_bytestream_new (cdxa_parse->sinkpad);
break;
case GST_STATE_PAUSED_TO_PLAYING:
break;
case GST_STATE_PLAYING_TO_PAUSED:
break;
case GST_STATE_PAUSED_TO_READY:
gst_bytestream_destroy (cdxa_parse->bs);
break;
case GST_STATE_READY_TO_NULL:
break;
default:
break;
}
parent_class->change_state (element);
return GST_STATE_SUCCESS;
}
static gboolean
plugin_init (GModule *module, GstPlugin *plugin)
{
GstElementFactory *factory;
GstTypeFactory *type;
/* this filter needs the riff parser */
if (!gst_library_load ("gstbytestream")) {
gst_info("cdxaparse: could not load support library: 'gstbytestream'\n");
return FALSE;
}
/* create an elementfactory for the cdxa_parse element */
factory = gst_element_factory_new ("cdxaparse", GST_TYPE_CDXA_PARSE,
&gst_cdxa_parse_details);
g_return_val_if_fail (factory != NULL, FALSE);
gst_element_factory_add_pad_template (factory, GST_PAD_TEMPLATE_GET (src_templ));
gst_element_factory_add_pad_template (factory, GST_PAD_TEMPLATE_GET (sink_templ));
type = gst_type_factory_new (&cdxadefinition);
gst_plugin_add_feature (plugin, GST_PLUGIN_FEATURE (type));
gst_plugin_add_feature (plugin, GST_PLUGIN_FEATURE (factory));
return TRUE;
}
GstPluginDesc plugin_desc = {
GST_VERSION_MAJOR,
GST_VERSION_MINOR,
"cdxaparse",
plugin_init
};

View file

@ -1,81 +0,0 @@
/* GStreamer
* Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
* <2002> Wim Tayans <wim.taymans@chello.be>
*
* 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_CDXA_PARSE_H__
#define __GST_CDXA_PARSE_H__
#include <config.h>
#include <gst/gst.h>
#include <gst/bytestream/bytestream.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define GST_TYPE_CDXA_PARSE \
(gst_cdxa_parse_get_type())
#define GST_CDXA_PARSE(obj) \
(G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_CDXA_PARSE,GstCDXAParse))
#define GST_CDXA_PARSE_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_CDXA_PARSE,GstCDXAParse))
#define GST_IS_CDXA_PARSE(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_CDXA_PARSE))
#define GST_IS_CDXA_PARSE_CLASS(obj) \
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CDXA_PARSE))
#define CDXA_SECTOR_SIZE 2352
#define CDXA_DATA_SIZE 2324
typedef enum
{
CDXA_PARSE_HEADER,
CDXA_PARSE_DATA,
} GstCDXAParseState;
typedef struct _GstCDXAParse GstCDXAParse;
typedef struct _GstCDXAParseClass GstCDXAParseClass;
struct _GstCDXAParse {
GstElement element;
/* pads */
GstPad *sinkpad, *srcpad;
GstByteStream *bs;
GstCDXAParseState state;
guint32 riff_size;
guint32 data_size;
guint32 sectors;
};
struct _GstCDXAParseClass {
GstElementClass parent_class;
};
GType gst_cdxa_parse_get_type (void);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __GST_CDXA_PARSE_H__ */

View file

@ -25,7 +25,7 @@
static GstElementDetails cutter_details = { static GstElementDetails cutter_details = {
"Cutter", "Cutter",
"Filter/Effect", "Filter/Audio/Effect",
"Audio Cutter to split audio into non-silent bits", "Audio Cutter to split audio into non-silent bits",
VERSION, VERSION,
"Thomas <thomas@apestaart.org>", "Thomas <thomas@apestaart.org>",

View file

@ -29,7 +29,7 @@ static GstCaps* flxdec_type_find(GstBuffer *buf, gpointer private);
/* flx element information */ /* flx element information */
static GstElementDetails flxdec_details = { static GstElementDetails flxdec_details = {
"FLX Decoder", "FLX Decoder",
"flxdec", "Codec/Audio/Decoder",
"FLX decoder", "FLX decoder",
VERSION, VERSION,
"Sepp Wijnands <mrrazz@garbage-coderz.net>" "Sepp Wijnands <mrrazz@garbage-coderz.net>"

View file

@ -59,7 +59,7 @@ GType gst_goom_get_type(void);
/* elementfactory information */ /* elementfactory information */
static GstElementDetails gst_goom_details = { static GstElementDetails gst_goom_details = {
"GOOM: what a GOOM!", "GOOM: what a GOOM!",
"Filter/Visualization", "Visualization",
"Takes frames of data and outputs video frames using the GOOM filter", "Takes frames of data and outputs video frames using the GOOM filter",
VERSION, VERSION,
"Wim Taymans <wim.taymans@chello.be>", "Wim Taymans <wim.taymans@chello.be>",

View file

@ -3,7 +3,7 @@
static GstElementDetails alawenc_details = { static GstElementDetails alawenc_details = {
"PCM to A Law conversion", "PCM to A Law conversion",
"Filter/Effect", "Filter/Audio/Conversion",
"Convert 16bit PCM to 8bit A law", "Convert 16bit PCM to 8bit A law",
VERSION, VERSION,
"Zaheer Merali <zaheer@bellworldwide.net>", "Zaheer Merali <zaheer@bellworldwide.net>",
@ -12,7 +12,7 @@ static GstElementDetails alawenc_details = {
static GstElementDetails alawdec_details = { static GstElementDetails alawdec_details = {
"A Law to PCM conversion", "A Law to PCM conversion",
"Filter/Effect", "Filter/Audio/Conversion",
"Convert 8bit A law to 16bit PCM", "Convert 8bit A law to 16bit PCM",
VERSION, VERSION,
"Zaheer Merali <zaheer@bellworldwide.net>", "Zaheer Merali <zaheer@bellworldwide.net>",

View file

@ -3,7 +3,7 @@
static GstElementDetails mulawenc_details = { static GstElementDetails mulawenc_details = {
"PCM to Mu Law conversion", "PCM to Mu Law conversion",
"Filter/Effect", "Filter/Audio/Conversion",
"Convert 16bit PCM to 8bit mu law", "Convert 16bit PCM to 8bit mu law",
VERSION, VERSION,
"Zaheer Merali <zaheer@bellworldwide.net>", "Zaheer Merali <zaheer@bellworldwide.net>",
@ -12,7 +12,7 @@ static GstElementDetails mulawenc_details = {
static GstElementDetails mulawdec_details = { static GstElementDetails mulawdec_details = {
"Mu Law to PCM conversion", "Mu Law to PCM conversion",
"Filter/Effect", "Filter/Audio/Conversion",
"Convert 8bit mu law to 16bit PCM", "Convert 8bit mu law to 16bit PCM",
VERSION, VERSION,
"Zaheer Merali <zaheer@bellworldwide.net>", "Zaheer Merali <zaheer@bellworldwide.net>",

View file

@ -24,7 +24,7 @@
static GstElementDetails level_details = { static GstElementDetails level_details = {
"Level", "Level",
"Filter/Effect", "Filter/Audio/Analysis",
"RMS Level indicator for audio/raw", "RMS Level indicator for audio/raw",
VERSION, VERSION,
"Thomas <thomas@apestaart.org>", "Thomas <thomas@apestaart.org>",

View file

@ -23,8 +23,8 @@
static GstElementDetails median_details = { static GstElementDetails median_details = {
"Median effect", "Median effect",
"Filter/Effect", "Filter/Video",
"apply a median filter to an image", "Apply a median filter to an image",
VERSION, VERSION,
"Wim Taymans <wim.taymans@chello.be>", "Wim Taymans <wim.taymans@chello.be>",
"(C) 2000", "(C) 2000",

View file

@ -62,7 +62,7 @@ GType gst_monoscope_get_type(void);
/* elementfactory information */ /* elementfactory information */
static GstElementDetails gst_monoscope_details = { static GstElementDetails gst_monoscope_details = {
"Monoscope", "Monoscope",
"Filter/Visualization", "Visualization",
"Displays a highly stabilised waveform of audio input", "Displays a highly stabilised waveform of audio input",
VERSION, VERSION,
"Richard Boulton <richard@tartarus.org>", "Richard Boulton <richard@tartarus.org>",

View file

@ -23,7 +23,7 @@
static GstElementDetails gst_spectrum_details = { static GstElementDetails gst_spectrum_details = {
"Spectrum analyzer", "Spectrum analyzer",
"Filter/Analysis", "Filter/Audio/Analysis",
"Run an FFT on the audio signal, output spectrum data", "Run an FFT on the audio signal, output spectrum data",
VERSION, VERSION,
"Erik Walthinsen <omega@cse.ogi.edu>", "Erik Walthinsen <omega@cse.ogi.edu>",

View file

@ -26,7 +26,7 @@
/* elementfactory information */ /* elementfactory information */
GstElementDetails gst_udpsink_details = { GstElementDetails gst_udpsink_details = {
"UDP packet sender", "UDP packet sender",
"Transport/", "Sink/Network",
"", "",
VERSION, VERSION,
"Wim Taymans <wim.taymans@chello.be>", "Wim Taymans <wim.taymans@chello.be>",

View file

@ -25,7 +25,7 @@
/* elementfactory information */ /* elementfactory information */
GstElementDetails gst_udpsrc_details = { GstElementDetails gst_udpsrc_details = {
"UDP packet receiver", "UDP packet receiver",
"Transport/", "Source/Network",
"", "",
VERSION, VERSION,
"Wim Taymans <wim.taymans@chello.be>", "Wim Taymans <wim.taymans@chello.be>",

View file

@ -32,7 +32,7 @@ static void gst_wavparse_chain (GstPad *pad, GstBuffer *buf);
/* elementfactory information */ /* elementfactory information */
static GstElementDetails gst_wavparse_details = { static GstElementDetails gst_wavparse_details = {
".wav parser", ".wav parser",
"Parser/Audio", "Codec/Parser",
"Parse a .wav file into raw audio", "Parse a .wav file into raw audio",
VERSION, VERSION,
"Erik Walthinsen <omega@cse.ogi.edu>", "Erik Walthinsen <omega@cse.ogi.edu>",

View file

@ -57,12 +57,12 @@ AC_ARG_WITH(mpeg2dec-prefix,
if test x$mpeg2dec_config_prefix = x ; then if test x$mpeg2dec_config_prefix = x ; then
MPEG2DEC_CHECK_LIBHEADER(MPEG2DEC, mpeg2, mpeg2_init, mpeg2dec/mpeg2.h, MPEG2DEC_CHECK_LIBHEADER(MPEG2DEC, mpeg2, mpeg2_init, mpeg2dec/mpeg2.h,
MPEG2DEC_LIBS="-lmpeg2 -lcpuaccel") MPEG2DEC_LIBS="-lmpeg2 -lcpuaccel",, -lcpuaccel)
else else
MPEG2DEC_CHECK_LIBHEADER(MPEG2DEC, mpeg2, mpeg2_init, mpeg2dec/mpeg2.h, [ MPEG2DEC_CHECK_LIBHEADER(MPEG2DEC, mpeg2, mpeg2_init, mpeg2dec/mpeg2.h, [
MPEG2DEC_LIBS="-lmpeg2 -lcpuaccel -L$mpeg2dec_config_prefix/lib" MPEG2DEC_LIBS="-lmpeg2 -lcpuaccel -L$mpeg2dec_config_prefix/lib"
MPEG2DEC_CFLAGS="-I$mpeg2dec_config_prefix/include" MPEG2DEC_CFLAGS="-I$mpeg2dec_config_prefix/include"
], , -L$mpeg2dec_config_prefix/lib, -I$mpeg2dec_config_prefix/include) ], , -L$mpeg2dec_config_prefix/lib -lcpuaccel, -I$mpeg2dec_config_prefix/include)
fi fi
if test "x$HAVE_MPEG2DEC" = "xyes"; then if test "x$HAVE_MPEG2DEC" = "xyes"; then

View file

@ -36,7 +36,7 @@
static GstElementDetails gst_ossgst_details = { static GstElementDetails gst_ossgst_details = {
"Audio Wrapper (OSS)", "Audio Wrapper (OSS)",
"Src/Audio", "Source/Audio",
"Hijacks /dev/dsp to get the output of OSS apps into GStreamer", "Hijacks /dev/dsp to get the output of OSS apps into GStreamer",
VERSION, VERSION,
"Wim Taymans <wim.taymans@chello.be>", "Wim Taymans <wim.taymans@chello.be>",