summaryrefslogtreecommitdiffstats
path: root/ext
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>2003-07-06 20:49:52 +0000
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>2003-07-06 20:49:52 +0000
commit292fec2a0bd1f221a46ad69c5100995d04c01057 (patch)
tree658db299e0e03b2454ff840730569d79539e67c4 /ext
parenta8183e9a3fa87cf4247c7df16207f440ea4069c0 (diff)
New mimetypes gone into effect today - this commit changes all old mimetypes over to the new mimetypes spec as descri...
Original commit message from CVS: New mimetypes gone into effect today - this commit changes all old mimetypes over to the new mimetypes spec as described in the previous commit's document. Note: some plugins will break, some pipelines will break, expect HEAD to be broken or at least not 100% working for a few days, but don't forget to report bugs
Diffstat (limited to 'ext')
-rw-r--r--ext/aalib/gstaasink.c8
-rw-r--r--ext/dv/gstdvdec.c85
-rw-r--r--ext/esd/esdmon.c46
-rw-r--r--ext/esd/esdsink.c46
-rw-r--r--ext/flac/gstflac.c17
-rw-r--r--ext/flac/gstflacdec.c4
-rw-r--r--ext/flac/gstflacenc.c12
-rw-r--r--ext/gdk_pixbuf/gstgdkpixbuf.c7
-rw-r--r--ext/gdk_pixbuf/gstgdkpixbuf.h22
-rw-r--r--ext/jpeg/gstjpeg.c20
-rw-r--r--ext/jpeg/gstjpegdec.c38
-rw-r--r--ext/jpeg/gstjpegdec.h1
-rw-r--r--ext/jpeg/gstjpegenc.c26
-rw-r--r--ext/jpeg/gstjpegenc.h1
-rw-r--r--ext/ladspa/gstladspa.c18
-rw-r--r--ext/libpng/gstpng.c23
-rw-r--r--ext/libpng/gstpngenc.c8
-rw-r--r--ext/mikmod/gstmikmod.c164
-rw-r--r--ext/shout2/gstshout2.c13
-rw-r--r--ext/speex/gstspeex.c7
-rw-r--r--ext/speex/gstspeexdec.c4
-rw-r--r--ext/speex/gstspeexenc.c6
22 files changed, 332 insertions, 244 deletions
diff --git a/ext/aalib/gstaasink.c b/ext/aalib/gstaasink.c
index 6a9fbd5f..537cfd54 100644
--- a/ext/aalib/gstaasink.c
+++ b/ext/aalib/gstaasink.c
@@ -26,6 +26,7 @@
#include <sys/time.h>
#include "gstaasink.h"
+#include <gst/video/video.h>
/* elementfactory information */
static GstElementDetails gst_aasink_details = {
@@ -65,10 +66,11 @@ GST_PAD_TEMPLATE_FACTORY (sink_template,
"sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
- GST_CAPS_NEW (
+ gst_caps_new (
"aasink_caps",
- "video/raw",
- "format", GST_PROPS_FOURCC (GST_STR_FOURCC ("I420"))
+ "video/x-raw-yuv",
+ GST_VIDEO_YUV_PAD_TEMPLATE_PROPS (
+ GST_PROPS_FOURCC (GST_STR_FOURCC ("I420")))
)
)
diff --git a/ext/dv/gstdvdec.c b/ext/dv/gstdvdec.c
index da53e4d2..569a9d13 100644
--- a/ext/dv/gstdvdec.c
+++ b/ext/dv/gstdvdec.c
@@ -37,7 +37,7 @@
*/
static GstElementDetails dvdec_details = {
"DV (smpte314) decoder plugin",
- "Codec/Video/Decoder/DV",
+ "Codec/Video/Decoder",
"LGPL",
"Uses libdv to decode DV video (libdv.sourceforge.net)",
VERSION,
@@ -77,11 +77,8 @@ GST_PAD_TEMPLATE_FACTORY (sink_temp,
GST_PAD_ALWAYS,
GST_CAPS_NEW (
"dv_dec_sink",
- "video/dv",
- "format", GST_PROPS_LIST (
- GST_PROPS_STRING ("PAL"),
- GST_PROPS_STRING ("NTSC")
- )
+ "video/x-dv",
+ "systemstream", GST_PROPS_BOOLEAN (TRUE)
)
)
@@ -92,36 +89,55 @@ GST_PAD_TEMPLATE_FACTORY (video_src_temp,
GST_PAD_ALWAYS,
GST_CAPS_NEW (
"dv_dec_src",
- "video/raw",
+ "video/x-raw-yuv",
"format", GST_PROPS_FOURCC (GST_MAKE_FOURCC ('Y','U','Y','2')),
"width", GST_PROPS_INT (720),
- "height", GST_PROPS_INT_RANGE (NTSC_HEIGHT, PAL_HEIGHT)
+ "height", GST_PROPS_LIST (
+ GST_PROPS_INT (NTSC_HEIGHT),
+ GST_PROPS_INT (PAL_HEIGHT)
+ ),
+ "framerate", GST_PROPS_LIST (
+ GST_PROPS_FLOAT (25.),
+ GST_PROPS_FLOAT (30/1.001)
+ )
),
GST_CAPS_NEW (
"dv_dec_src",
- "video/raw",
- "format", GST_PROPS_FOURCC(GST_MAKE_FOURCC('R','G','B',' ')),
+ "video/x-raw-rgb",
"bpp", GST_PROPS_INT(32),
"depth", GST_PROPS_INT(32),
- "endianness", GST_PROPS_INT (G_LITTLE_ENDIAN),
- "red_mask", GST_PROPS_INT(0x00ff0000),
+ "endianness", GST_PROPS_INT (G_BIG_ENDIAN),
+ "red_mask", GST_PROPS_INT(0x000000ff),
"green_mask", GST_PROPS_INT(0x0000ff00),
- "blue_mask", GST_PROPS_INT(0x000000ff),
+ "blue_mask", GST_PROPS_INT(0x00ff00),
"width", GST_PROPS_INT (720),
- "height", GST_PROPS_INT_RANGE (NTSC_HEIGHT, PAL_HEIGHT)
+ "height", GST_PROPS_LIST (
+ GST_PROPS_INT (NTSC_HEIGHT),
+ GST_PROPS_INT (PAL_HEIGHT)
+ ),
+ "framerate", GST_PROPS_LIST (
+ GST_PROPS_FLOAT (25.),
+ GST_PROPS_FLOAT (30/1.001)
+ )
),
GST_CAPS_NEW (
"dv_dec_src",
- "video/raw",
- "format", GST_PROPS_FOURCC(GST_MAKE_FOURCC('R','G','B',' ')),
+ "video/x-raw-rgb",
"bpp", GST_PROPS_INT(24),
"depth", GST_PROPS_INT(24),
- "endianness", GST_PROPS_INT (G_LITTLE_ENDIAN),
+ "endianness", GST_PROPS_INT (G_BIG_ENDIAN),
"red_mask", GST_PROPS_INT(0x0000ff),
"green_mask", GST_PROPS_INT(0x00ff00),
"blue_mask", GST_PROPS_INT(0xff0000),
"width", GST_PROPS_INT (720),
- "height", GST_PROPS_INT_RANGE (NTSC_HEIGHT, PAL_HEIGHT)
+ "height", GST_PROPS_LIST (
+ GST_PROPS_INT (NTSC_HEIGHT),
+ GST_PROPS_INT (PAL_HEIGHT)
+ ),
+ "framerate", GST_PROPS_LIST (
+ GST_PROPS_FLOAT (25.),
+ GST_PROPS_FLOAT (30/1.001)
+ )
)
)
@@ -131,9 +147,7 @@ GST_PAD_TEMPLATE_FACTORY ( audio_src_temp,
GST_PAD_ALWAYS,
GST_CAPS_NEW (
"arts_sample",
- "audio/raw",
- "format", GST_PROPS_STRING ("int"),
- "law", GST_PROPS_INT (0),
+ "audio/x-raw-int",
"depth", GST_PROPS_INT (16),
"width", GST_PROPS_INT (16),
"signed", GST_PROPS_BOOLEAN (TRUE),
@@ -160,15 +174,15 @@ dv_type_find (GstBuffer *buf, gpointer private)
format = "NTSC";
new = GST_CAPS_NEW ("dv_type_find",
- "video/dv",
- "format", GST_PROPS_STRING (format)
+ "video/x-dv",
+ "systemstream", GST_PROPS_BOOLEAN (TRUE)
);
}
return new;
}
static GstTypeDefinition dv_definition = {
- "dv_video/dv", "video/dv", ".dv", dv_type_find
+ "dv_video/dv", "video/x-dv", ".dv", dv_type_find
};
#define GST_TYPE_DVDEC_QUALITY (gst_dvdec_quality_get_type())
@@ -690,6 +704,7 @@ gst_dvdec_loop (GstElement *element)
guint32 length, got_bytes;
GstFormat format;
guint64 ts;
+ gfloat fps;
dvdec = GST_DVDEC (element);
@@ -704,6 +719,7 @@ gst_dvdec_loop (GstElement *element)
dvdec->PAL = dv_system_50_fields (dvdec->decoder);
dvdec->framerate = (dvdec->PAL ? 2500 : 2997);
+ fps = (dvdec->PAL ? 25. : 30/1.001);
dvdec->height = height = (dvdec->PAL ? PAL_HEIGHT : NTSC_HEIGHT);
length = (dvdec->PAL ? PAL_BUFFER : NTSC_BUFFER);
@@ -728,12 +744,18 @@ gst_dvdec_loop (GstElement *element)
allowed = gst_pad_get_allowed_caps (dvdec->videosrcpad);
/* try to fix our height */
- trylist = gst_caps_intersect (allowed,
- GST_CAPS_NEW (
+ trylist = gst_caps_intersect (allowed, gst_caps_append (
+ GST_CAPS_NEW (
"dvdec_negotiate",
- "video/raw",
- "height", GST_PROPS_INT (height)
- ));
+ "video/x-raw-yuv",
+ "height", GST_PROPS_INT (height),
+ "framerate", GST_PROPS_FLOAT (fps)
+ ), GST_CAPS_NEW (
+ "dvdec_negotiate",
+ "video/x-raw-rgb",
+ "height", GST_PROPS_INT (height),
+ "framerate", GST_PROPS_FLOAT (fps)
+ )));
/* prepare for looping */
trylist = gst_caps_normalize (trylist);
@@ -792,10 +814,8 @@ gst_dvdec_loop (GstElement *element)
gst_pad_try_set_caps (dvdec->audiosrcpad,
GST_CAPS_NEW (
"dvdec_audio_caps",
- "audio/raw",
- "format", GST_PROPS_STRING ("int"),
+ "audio/x-raw-int",
"rate", GST_PROPS_INT (dvdec->decoder->audio->frequency),
- "law", GST_PROPS_INT (0),
"depth", GST_PROPS_INT (16),
"width", GST_PROPS_INT (16),
"signed", GST_PROPS_BOOLEAN (TRUE),
@@ -1012,4 +1032,3 @@ GstPluginDesc plugin_desc = {
"dvdec",
plugin_init
};
-
diff --git a/ext/esd/esdmon.c b/ext/esd/esdmon.c
index 569942db..851ffd8c 100644
--- a/ext/esd/esdmon.c
+++ b/ext/esd/esdmon.c
@@ -103,30 +103,27 @@ GST_PAD_TEMPLATE_FACTORY (src_factory,
GST_PAD_SRC, /* type of the pad */
GST_PAD_ALWAYS, /* ALWAYS/SOMETIMES */
GST_CAPS_NEW (
- "esdmon_src8", /* the name of the caps */
- "audio/raw", /* the mime type of the caps */
+ "esdmon_src", /* the name of the caps */
+ "audio/x-raw-int", /* the mime type of the caps */
/* Properties follow: */
- "format", GST_PROPS_STRING ("int"),
- "law", GST_PROPS_INT (0),
"endianness", GST_PROPS_INT (G_BYTE_ORDER),
- "signed", GST_PROPS_BOOLEAN (TRUE),
- "width", GST_PROPS_INT (8),
- "depth", GST_PROPS_INT (8),
+ "signed", GST_PROPS_LIST (
+ GST_PROPS_BOOLEAN (TRUE),
+ GST_PROPS_BOOLEAN (FALSE)
+ ),
+ "width", GST_PROPS_LIST (
+ GST_PROPS_INT (8),
+ GST_PROPS_INT (16)
+ ),
+ "depth", GST_PROPS_LIST (
+ GST_PROPS_INT (8),
+ GST_PROPS_INT (16)
+ ),
"rate", GST_PROPS_INT_RANGE (8000, 96000),
- "channels", GST_PROPS_LIST (GST_PROPS_INT (1), GST_PROPS_INT (2))
- ),
- GST_CAPS_NEW (
- "esdmon_src16", /* the name of the caps */
- "audio/raw", /* the mime type of the caps */
- /* Properties follow: */
- "format", GST_PROPS_STRING ("int"),
- "law", GST_PROPS_INT (0),
- "endianness", GST_PROPS_INT (G_BYTE_ORDER),
- "signed", GST_PROPS_BOOLEAN (TRUE),
- "width", GST_PROPS_INT (16),
- "depth", GST_PROPS_INT (16),
- "rate", GST_PROPS_INT_RANGE (8000, 96000),
- "channels", GST_PROPS_LIST (GST_PROPS_INT (1), GST_PROPS_INT (2))
+ "channels", GST_PROPS_LIST (
+ GST_PROPS_INT (1),
+ GST_PROPS_INT (2)
+ )
)
);
@@ -298,15 +295,14 @@ gst_esdmon_get (GstPad *pad)
return NULL;
}
if (!GST_PAD_CAPS (pad)) {
+ gint sign = (esdmon->depth == 8 ? FALSE : TRUE);
/* set caps on src pad */
if (gst_pad_try_set_caps (esdmon->srcpad,
GST_CAPS_NEW (
"oss_src",
- "audio/raw",
- "format", GST_PROPS_STRING ("int"),
- "law", GST_PROPS_INT (0), /*FIXME */
+ "audio/x-raw-int",
"endianness", GST_PROPS_INT (G_BYTE_ORDER), /*FIXME */
- "signed", GST_PROPS_BOOLEAN (TRUE), /*FIXME */
+ "signed", GST_PROPS_BOOLEAN (sign), /*FIXME */
"width", GST_PROPS_INT (esdmon->depth),
"depth", GST_PROPS_INT (esdmon->depth),
"rate", GST_PROPS_INT (esdmon->frequency),
diff --git a/ext/esd/esdsink.c b/ext/esd/esdsink.c
index 120a2a5f..54cb2833 100644
--- a/ext/esd/esdsink.c
+++ b/ext/esd/esdsink.c
@@ -55,29 +55,27 @@ GST_PAD_TEMPLATE_FACTORY (sink_factory,
GST_PAD_SINK, /* type of the pad */
GST_PAD_ALWAYS, /* ALWAYS/SOMETIMES */
GST_CAPS_NEW (
- "esdsink_sink8", /* the name of the caps */
- "audio/raw", /* the mime type of the caps */
+ "esdsink_sink", /* the name of the caps */
+ "audio/x-raw-int", /* the mime type of the caps */
/* Properties follow: */
- "format", GST_PROPS_STRING ("int"),
- "law", GST_PROPS_INT (0),
"endianness", GST_PROPS_INT (G_BYTE_ORDER),
- "width", GST_PROPS_INT (8),
- "depth", GST_PROPS_INT (8),
+ "signed", GST_PROPS_LIST (
+ GST_PROPS_BOOLEAN (TRUE),
+ GST_PROPS_BOOLEAN (FALSE)
+ ),
+ "width", GST_PROPS_LIST (
+ GST_PROPS_INT (8),
+ GST_PROPS_INT (16)
+ ),
+ "depth", GST_PROPS_LIST (
+ GST_PROPS_INT (8),
+ GST_PROPS_INT (16)
+ ),
"rate", GST_PROPS_INT_RANGE (8000, 96000),
- "channels", GST_PROPS_LIST (GST_PROPS_INT (1), GST_PROPS_INT (2))
- ),
- GST_CAPS_NEW (
- "esdsink_sink16", /* the name of the caps */
- "audio/raw", /* the mime type of the caps */
- /* Properties follow: */
- "format", GST_PROPS_STRING ("int"),
- "law", GST_PROPS_INT (0),
- "endianness", GST_PROPS_INT (G_BYTE_ORDER),
- "signed", GST_PROPS_BOOLEAN (TRUE),
- "width", GST_PROPS_INT (16),
- "depth", GST_PROPS_INT (16),
- "rate", GST_PROPS_INT_RANGE (8000, 96000),
- "channels", GST_PROPS_LIST (GST_PROPS_INT (1), GST_PROPS_INT (2))
+ "channels", GST_PROPS_LIST (
+ GST_PROPS_INT (1),
+ GST_PROPS_INT (2)
+ )
)
);
@@ -173,6 +171,7 @@ static GstPadLinkReturn
gst_esdsink_sinkconnect (GstPad *pad, GstCaps *caps)
{
GstEsdsink *esdsink;
+ gboolean sign;
esdsink = GST_ESDSINK (gst_pad_get_parent (pad));
@@ -180,9 +179,16 @@ gst_esdsink_sinkconnect (GstPad *pad, GstCaps *caps)
return GST_PAD_LINK_DELAYED;
gst_caps_get_int (caps, "depth", &esdsink->depth);
+ gst_caps_get_int (caps, "signed", &sign);
gst_caps_get_int (caps, "channels", &esdsink->channels);
gst_caps_get_int (caps, "rate", &esdsink->frequency);
+ /* only u8/s16 */
+ if ((sign == FALSE && esdsink->depth != 8) ||
+ (sign == TRUE && esdsink->depth != 16)) {
+ return GST_PAD_LINK_REFUSED;
+ }
+
gst_esdsink_close_audio (esdsink);
if (gst_esdsink_open_audio (esdsink)) {
esdsink->negotiated = TRUE;
diff --git a/ext/flac/gstflac.c b/ext/flac/gstflac.c
index e955c2cc..af10d794 100644
--- a/ext/flac/gstflac.c
+++ b/ext/flac/gstflac.c
@@ -37,8 +37,11 @@ flac_caps_factory (void)
return
gst_caps_new (
"flac_flac",
- "application/x-flac",
- NULL);
+ "audio/x-flac",
+ /*gst_props_new (
+ "rate", GST_PROPS_INT_RANGE (11025, 48000),
+ "channels", GST_PROPS_INT_RANGE (1, 2),
+ NULL)*/ NULL);
}
static GstCaps*
@@ -47,10 +50,8 @@ raw_caps_factory (void)
return
gst_caps_new (
"flac_raw",
- "audio/raw",
+ "audio/x-raw-int",
gst_props_new (
- "format", GST_PROPS_STRING ("int"),
- "law", GST_PROPS_INT (0),
"endianness", GST_PROPS_INT (G_BYTE_ORDER),
"signed", GST_PROPS_BOOLEAN (TRUE),
"width", GST_PROPS_INT (16),
@@ -61,8 +62,8 @@ raw_caps_factory (void)
}
static GstTypeDefinition flacdefinition = {
- "flac_application/x-flac",
- "application/x-flac",
+ "flac_audio/x-flac",
+ "audio/x-flac",
".flac",
flac_type_find,
};
@@ -75,7 +76,7 @@ flac_type_find (GstBuffer *buf, gpointer private)
if (head != 0x664C6143)
return NULL;
- return gst_caps_new ("flac_type_find", "application/x-flac", NULL);
+ return gst_caps_new ("flac_type_find", "audio/x-flac", NULL);
}
diff --git a/ext/flac/gstflacdec.c b/ext/flac/gstflacdec.c
index b439f044..c11be9f6 100644
--- a/ext/flac/gstflacdec.c
+++ b/ext/flac/gstflacdec.c
@@ -460,9 +460,7 @@ gst_flacdec_write (const FLAC__SeekableStreamDecoder *decoder,
gst_pad_try_set_caps (flacdec->srcpad,
GST_CAPS_NEW (
"flac_caps",
- "audio/raw",
- "format", GST_PROPS_STRING ("int"),
- "law", GST_PROPS_INT (0),
+ "audio/x-raw-int",
"endianness", GST_PROPS_INT (G_BYTE_ORDER),
"signed", GST_PROPS_BOOLEAN (TRUE),
"width", GST_PROPS_INT (depth),
diff --git a/ext/flac/gstflacenc.c b/ext/flac/gstflacenc.c
index aa1a0195..ef9e5386 100644
--- a/ext/flac/gstflacenc.c
+++ b/ext/flac/gstflacenc.c
@@ -325,6 +325,7 @@ gst_flacenc_dispose (GObject *object)
static GstPadLinkReturn
gst_flacenc_sinkconnect (GstPad *pad, GstCaps *caps)
{
+ GstPadLinkReturn ret;
FlacEnc *flacenc;
flacenc = GST_FLACENC (gst_pad_get_parent (pad));
@@ -336,6 +337,15 @@ gst_flacenc_sinkconnect (GstPad *pad, GstCaps *caps)
gst_caps_get_int (caps, "depth", &flacenc->depth);
gst_caps_get_int (caps, "rate", &flacenc->sample_rate);
+ caps = GST_CAPS_NEW ("flacenc_srccaps",
+ "audio/x-flac",
+ "channels", GST_PROPS_INT (flacenc->channels),
+ "rate", GST_PROPS_INT (flacenc->sample_rate));
+ ret = gst_pad_try_set_caps (flacenc->srcpad, caps);
+ if (ret <= 0) {
+ return ret;
+ }
+
FLAC__seekable_stream_encoder_set_bits_per_sample (flacenc->encoder,
flacenc->depth);
FLAC__seekable_stream_encoder_set_sample_rate (flacenc->encoder,
@@ -345,7 +355,7 @@ gst_flacenc_sinkconnect (GstPad *pad, GstCaps *caps)
flacenc->negotiated = TRUE;
- return GST_PAD_LINK_OK;
+ return ret;
}
static gboolean
diff --git a/ext/gdk_pixbuf/gstgdkpixbuf.c b/ext/gdk_pixbuf/gstgdkpixbuf.c
index 667d5704..e9e12897 100644
--- a/ext/gdk_pixbuf/gstgdkpixbuf.c
+++ b/ext/gdk_pixbuf/gstgdkpixbuf.c
@@ -81,10 +81,12 @@ GST_PAD_TEMPLATE_FACTORY (gst_gdk_pixbuf_src_factory,
GST_PAD_ALWAYS,
GST_CAPS_NEW(
"gdk_pixbuf_src",
- "video/raw",
- "format", GST_PROPS_FOURCC(GST_MAKE_FOURCC('R','G','B',' ')),
+ "video/x-raw-rgb",
"width", GST_PROPS_INT_RANGE(1,INT_MAX),
"height", GST_PROPS_INT_RANGE(1,INT_MAX),
+ /* well, it's needed for connectivity but this
+ * doesn't really make sense... */
+ "framerate", GST_PROPS_FLOAT_RANGE(0, G_MAXFLOAT),
"bpp", GST_PROPS_INT(32),
"depth", GST_PROPS_INT(24),
"endianness", GST_PROPS_INT(G_BIG_ENDIAN),
@@ -268,6 +270,7 @@ gst_gdk_pixbuf_chain (GstPad *pad, GstBuffer *buf)
caps = gst_pad_get_caps(filter->srcpad);
gst_caps_set(caps, "width", GST_PROPS_INT(filter->width));
gst_caps_set(caps, "height", GST_PROPS_INT(filter->height));
+ gst_caps_set(caps, "framerate", GST_PROPS_FLOAT(0.));
gst_pad_try_set_caps(filter->srcpad, caps);
}
diff --git a/ext/gdk_pixbuf/gstgdkpixbuf.h b/ext/gdk_pixbuf/gstgdkpixbuf.h
index 8c6486ca..6cfcdbc5 100644
--- a/ext/gdk_pixbuf/gstgdkpixbuf.h
+++ b/ext/gdk_pixbuf/gstgdkpixbuf.h
@@ -1,5 +1,23 @@
-/*
- * gstplugin.h: sample header file for plug-in
+/*
+ * gstgdkpixbuf.h
+ * GStreamer
+ * Copyright (C) 1999-2001 Erik Walthinsen <omega@cse.ogi.edu>
+ * Copyright (C) 2003 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.
*/
#ifndef __GST_GDK_PIXBUF_H__
diff --git a/ext/jpeg/gstjpeg.c b/ext/jpeg/gstjpeg.c
index 96c3b584..48cfaaf5 100644
--- a/ext/jpeg/gstjpeg.c
+++ b/ext/jpeg/gstjpeg.c
@@ -20,6 +20,7 @@
#include "gstjpegdec.h"
#include "gstjpegenc.h"
+#include <gst/video/video.h>
/* elementfactory information */
extern GstElementDetails gst_jpegdec_details;
@@ -34,8 +35,12 @@ jpeg_caps_factory (void)
return
gst_caps_new (
"jpeg_jpeg",
- "video/jpeg",
- NULL);
+ "video/x-jpeg",
+ gst_props_new (
+ "width", GST_PROPS_INT_RANGE (16, 4096),
+ "height", GST_PROPS_INT_RANGE (16, 4096),
+ "framerate", GST_PROPS_FLOAT_RANGE (0, G_MAXFLOAT),
+ NULL));
}
static GstCaps*
@@ -44,14 +49,9 @@ raw_caps_factory (void)
return
gst_caps_new (
"jpeg_raw",
- "video/raw",
- gst_props_new (
- "format", GST_PROPS_LIST (
- GST_PROPS_FOURCC (GST_MAKE_FOURCC ('I','4','2','0'))
- ),
- "width", GST_PROPS_INT_RANGE (16, 4096),
- "height", GST_PROPS_INT_RANGE (16, 4096),
- NULL));
+ "video/x-raw-yuv",
+ GST_VIDEO_YUV_PAD_TEMPLATE_PROPS (
+ GST_PROPS_FOURCC (GST_MAKE_FOURCC ('I','4','2','0'))));
}
static gboolean
diff --git a/ext/jpeg/gstjpegdec.c b/ext/jpeg/gstjpegdec.c
index 0e499043..a8ee30cd 100644
--- a/ext/jpeg/gstjpegdec.c
+++ b/ext/jpeg/gstjpegdec.c
@@ -54,6 +54,8 @@ static void gst_jpegdec_class_init (GstJpegDec *klass);
static void gst_jpegdec_init (GstJpegDec *jpegdec);
static void gst_jpegdec_chain (GstPad *pad, GstBuffer *buf);
+static GstPadLinkReturn
+ gst_jpegdec_link (GstPad *pad, GstCaps *caps);
static GstElementClass *parent_class = NULL;
/*static guint gst_jpegdec_signals[LAST_SIGNAL] = { 0 }; */
@@ -127,6 +129,7 @@ gst_jpegdec_init (GstJpegDec *jpegdec)
jpegdec->sinkpad = gst_pad_new_from_template (jpegdec_sink_template, "sink");
gst_element_add_pad(GST_ELEMENT(jpegdec),jpegdec->sinkpad);
gst_pad_set_chain_function(jpegdec->sinkpad,gst_jpegdec_chain);
+ gst_pad_set_link_function(jpegdec->sinkpad, gst_jpegdec_link);
jpegdec->srcpad = gst_pad_new_from_template (jpegdec_src_template, "src");
gst_element_add_pad(GST_ELEMENT(jpegdec),jpegdec->srcpad);
@@ -157,6 +160,31 @@ gst_jpegdec_init (GstJpegDec *jpegdec)
}
+static GstPadLinkReturn
+gst_jpegdec_link (GstPad *pad, GstCaps *caps)
+{
+ GstJpegDec *jpegdec = GST_JPEGDEC (gst_pad_get_parent (pad));
+
+ if (!GST_CAPS_IS_FIXED (caps))
+ return GST_PAD_LINK_DELAYED;
+
+ gst_caps_get (caps,
+ "framerate", &jpegdec->fps,
+ "width", &jpegdec->width,
+ "height", &jpegdec->height,
+ NULL);
+
+ caps = GST_CAPS_NEW ("jpegdec_srccaps",
+ "video/x-raw-yuv",
+ "format", GST_PROPS_FOURCC (
+ GST_MAKE_FOURCC ('I','4','2','0')),
+ "width", GST_PROPS_INT (jpegdec->width),
+ "height", GST_PROPS_INT (jpegdec->height),
+ "framerate", GST_PROPS_FLOAT (jpegdec->fps));
+
+ return gst_pad_try_set_caps (jpegdec->srcpad, caps);
+}
+
/* shamelessly ripped from jpegutils.c in mjpegtools */
static void add_huff_table (j_decompress_ptr dinfo,
JHUFF_TBL **htblptr,
@@ -345,10 +373,12 @@ gst_jpegdec_chain (GstPad *pad, GstBuffer *buf)
gst_pad_try_set_caps (jpegdec->srcpad,
GST_CAPS_NEW (
"jpegdec_caps",
- "video/raw",
- "format", GST_PROPS_FOURCC (GST_MAKE_FOURCC ('I','4','2','0')),
- "width", GST_PROPS_INT (width),
- "height", GST_PROPS_INT (height)
+ "video/x-raw-yuv",
+ "format", GST_PROPS_FOURCC (
+ GST_MAKE_FOURCC ('I','4','2','0')),
+ "width", GST_PROPS_INT (width),
+ "height", GST_PROPS_INT (height),
+ "framerate", GST_PROPS_FLOAT (jpegdec->fps)
));
}
diff --git a/ext/jpeg/gstjpegdec.h b/ext/jpeg/gstjpegdec.h
index c497f8e5..9607b01b 100644
--- a/ext/jpeg/gstjpegdec.h
+++ b/ext/jpeg/gstjpegdec.h
@@ -64,6 +64,7 @@ struct _GstJpegDec {
gint format;
gint width;
gint height;
+ gfloat fps;
/* the size of the output buffer */
gint outsize;
/* the jpeg line buffer */
diff --git a/ext/jpeg/gstjpegenc.c b/ext/jpeg/gstjpegenc.c
index b2a8fc1d..ccd5bbce 100644
--- a/ext/jpeg/gstjpegenc.c
+++ b/ext/jpeg/gstjpegenc.c
@@ -52,6 +52,8 @@ static void gst_jpegenc_class_init (GstJpegEnc *klass);
static void gst_jpegenc_init (GstJpegEnc *jpegenc);
static void gst_jpegenc_chain (GstPad *pad,GstBuffer *buf);
+static GstPadLinkReturn gst_jpegenc_link (GstPad *pad, GstCaps *caps);
+
static GstBuffer *gst_jpegenc_get (GstPad *pad);
static void gst_jpegenc_resync (GstJpegEnc *jpegenc);
@@ -123,6 +125,7 @@ gst_jpegenc_init (GstJpegEnc *jpegenc)
jpegenc->sinkpad = gst_pad_new("sink",GST_PAD_SINK);
gst_element_add_pad(GST_ELEMENT(jpegenc),jpegenc->sinkpad);
gst_pad_set_chain_function(jpegenc->sinkpad,gst_jpegenc_chain);
+ gst_pad_set_link_function(jpegenc->sinkpad, gst_jpegenc_link);
gst_pad_set_get_function(jpegenc->sinkpad,gst_jpegenc_get);
jpegenc->srcpad = gst_pad_new("src",GST_PAD_SRC);
gst_element_add_pad(GST_ELEMENT(jpegenc),jpegenc->srcpad);
@@ -151,6 +154,29 @@ gst_jpegenc_init (GstJpegEnc *jpegenc)
}
+static GstPadLinkReturn
+gst_jpegenc_link (GstPad *pad, GstCaps *caps)
+{
+ GstJpegEnc *jpegenc = GST_JPEGENC (gst_pad_get_parent (pad));
+
+ if (!GST_CAPS_IS_FIXED (caps))
+ return GST_PAD_LINK_DELAYED;
+
+ gst_caps_get (caps,
+ "framerate", &jpegenc->fps,
+ "width", &jpegenc->width,
+ "height", &jpegenc->height,
+ NULL);
+
+ caps = GST_CAPS_NEW ("jpegdec_srccaps",
+ "video/x-jpeg",
+ "width", GST_PROPS_INT (jpegenc->width),
+ "height", GST_PROPS_INT (jpegenc->height),
+ "framerate", GST_PROPS_FLOAT (jpegenc->fps));
+
+ return gst_pad_try_set_caps (jpegenc->srcpad, caps);
+}
+
static void
gst_jpegenc_resync (GstJpegEnc *jpegenc)
{
diff --git a/ext/jpeg/gstjpegenc.h b/ext/jpeg/gstjpegenc.h
index a31b3145..9f03e8c4 100644
--- a/ext/jpeg/gstjpegenc.h
+++ b/ext/jpeg/gstjpegenc.h
@@ -58,6 +58,7 @@ struct _GstJpegEnc {
gint format;
gint width;
gint height;
+ gfloat fps;
/* the video buffer */
gint bufsize;
GstBuffer *buffer;
diff --git a/ext/ladspa/gstladspa.c b/ext/ladspa/gstladspa.c
index 55c0186d..ddaa7970 100644
--- a/ext/ladspa/gstladspa.c
+++ b/ext/ladspa/gstladspa.c
@@ -33,10 +33,10 @@ GST_PAD_TEMPLATE_FACTORY (ladspa_sink_factory,
GST_PAD_REQUEST,
GST_CAPS_NEW (
"ladspa_sink",
- "audio/raw",
+ "audio/x-raw-float",
+ "width", GST_PROPS_INT (32),
+ "endianness", GST_PROPS_INT (G_BYTE_ORDER),
"rate", GST_PROPS_INT_RANGE (4000, 96000),
- "format", GST_PROPS_STRING ("float"),
- "layout", GST_PROPS_STRING ("gfloat"),
"intercept", GST_PROPS_FLOAT(0.0),
"slope", GST_PROPS_FLOAT(1.0),
"channels", GST_PROPS_INT (1)
@@ -49,10 +49,10 @@ GST_PAD_TEMPLATE_FACTORY (ladspa_src_factory,
GST_PAD_REQUEST,
GST_CAPS_NEW (
"ladspa_src",
- "audio/raw",
+ "audio/x-raw-float",
+ "width", GST_PROPS_INT (32),
+ "endianness", GST_PROPS_INT (G_BYTE_ORDER),
"rate", GST_PROPS_INT_RANGE (4000, 96000),
- "format", GST_PROPS_STRING ("float"),
- "layout", GST_PROPS_STRING ("gfloat"),
"intercept", GST_PROPS_FLOAT (0.0),
"slope", GST_PROPS_FLOAT (1.0),
"channels", GST_PROPS_INT (1)
@@ -542,10 +542,10 @@ gst_ladspa_force_src_caps(GstLADSPA *ladspa, GstPad *pad)
GST_DEBUG ("forcing caps with rate %d", ladspa->samplerate);
gst_pad_try_set_caps (pad, gst_caps_new (
"ladspa_src_caps",
- "audio/raw",
+ "audio/x-raw-float",
gst_props_new (
- "format", GST_PROPS_STRING ("float"),
- "layout", GST_PROPS_STRING ("gfloat"),
+ "width", GST_PROPS_INT (32),
+ "endianness", GST_PROPS_INT (G_BYTE_ORDER),
"intercept", GST_PROPS_FLOAT(0.0),
"slope", GST_PROPS_FLOAT(1.0),
"rate", GST_PROPS_INT (ladspa->samplerate),
diff --git a/ext/libpng/gstpng.c b/ext/libpng/gstpng.c
index 5a5da081..f3ac003c 100644
--- a/ext/libpng/gstpng.c
+++ b/ext/libpng/gstpng.c
@@ -18,6 +18,7 @@
#include <string.h>
#include <gst/gst.h>
+#include <gst/video/video.h>
#include "gstpngenc.h"
@@ -26,7 +27,13 @@ extern GstElementDetails gst_pngenc_details;
static GstCaps*
png_caps_factory (void)
{
- return gst_caps_new ( "png_png", "video/png", NULL);
+ return gst_caps_new ( "png_png",
+ "video/x-png",
+ gst_props_new (
+ "width", GST_PROPS_INT_RANGE (16, 4096),
+ "height", GST_PROPS_INT_RANGE (16, 4096),
+ "framerate", GST_PROPS_FLOAT_RANGE (0, G_MAXFLOAT),
+ NULL));
}
@@ -34,17 +41,9 @@ static GstCaps*
raw_caps_factory (void)
{
return gst_caps_new ( "png_raw",
- "video/raw",
- gst_props_new (
- "format", GST_PROPS_FOURCC (GST_STR_FOURCC ("RGB ")),
- "bpp", GST_PROPS_INT (24),
- "red_mask", GST_PROPS_INT (0xff),
- "green_mask", GST_PROPS_INT (0xff00),
- "blue_mask", GST_PROPS_INT (0xff0000),
- "width", GST_PROPS_INT_RANGE (16, 4096),
- "height", GST_PROPS_INT_RANGE (16, 4096),
- NULL )
- );
+ "video/x-raw-rgb",
+ GST_VIDEO_RGB_PAD_TEMPLATE_PROPS_24
+ );
}
static gboolean
diff --git a/ext/libpng/gstpngenc.c b/ext/libpng/gstpngenc.c
index 9cd39cc3..3c035d27 100644
--- a/ext/libpng/gstpngenc.c
+++ b/ext/libpng/gstpngenc.c
@@ -107,6 +107,7 @@ static GstPadLinkReturn
gst_pngenc_sinklink (GstPad *pad, GstCaps *caps)
{
GstPngEnc *pngenc;
+ gfloat fps;
pngenc = GST_PNGENC (gst_pad_get_parent (pad));
@@ -115,8 +116,15 @@ gst_pngenc_sinklink (GstPad *pad, GstCaps *caps)
gst_caps_get_int (caps, "width", &pngenc->width);
gst_caps_get_int (caps, "height", &pngenc->height);
+ gst_caps_get_float (caps, "framerate", &fps);
gst_caps_get_int (caps, "bpp", &pngenc->bpp);
+ caps = GST_CAPS_NEW ("png_src",
+ "video/x-png",
+ "framerate", GST_PROPS_FLOAT (fps),
+ "width", GST_PROPS_INT (pngenc->width),
+ "height", GST_PROPS_INT (pngenc->height));
+
return gst_pad_try_set_caps (pngenc->srcpad, caps);
}
diff --git a/ext/mikmod/gstmikmod.c b/ext/mikmod/gstmikmod.c
index 40bf3f81..6ef507c2 100644
--- a/ext/mikmod/gstmikmod.c
+++ b/ext/mikmod/gstmikmod.c
@@ -52,15 +52,12 @@ enum {
ARG_REVERB,
ARG_SNDFXVOLUME,
ARG_VOLUME,
- ARG_MIXFREQ,
ARG_INTERP,
ARG_REVERSE,
ARG_SURROUND,
- ARG_16BIT,
ARG_HQMIXER,
ARG_SOFT_MUSIC,
- ARG_SOFT_SNDFX,
- ARG_STEREO
+ ARG_SOFT_SNDFX
};
@@ -74,33 +71,11 @@ mikmod_src_factory (void)
"src",
GST_PAD_SRC,
GST_PAD_ALWAYS,
- gst_caps_new ( /* use16bit = TRUE */
- "mikmod_src",
- "audio/raw",
- gst_props_new (
- "format", GST_PROPS_STRING ("int"),
- "law", GST_PROPS_INT (0),
- "endianness", GST_PROPS_INT (G_BYTE_ORDER),
- "signed", GST_PROPS_BOOLEAN (TRUE),
- "width", GST_PROPS_INT (16),
- "depth", GST_PROPS_INT (16),
- "rate", GST_PROPS_INT_RANGE (8000, 48000),
- "channels", GST_PROPS_INT_RANGE (1, 2),
- NULL)),
- gst_caps_new ( /* use16bit = FALSE */
+ gst_caps_new (
"mikmod_src",
- "audio/raw",
- gst_props_new (
- "format", GST_PROPS_STRING ("int"),
- "law", GST_PROPS_INT (0),
- "endianness", GST_PROPS_INT (G_BYTE_ORDER),
- "signed", GST_PROPS_BOOLEAN (FALSE),
- "width", GST_PROPS_INT (8),
- "depth", GST_PROPS_INT (8),
- "rate", GST_PROPS_INT_RANGE (8000, 48000),
- "channels", GST_PROPS_INT_RANGE (1, 2),
- NULL)),
- NULL);
+ "audio/x-raw-int",
+ GST_AUDIO_INT_PAD_TEMPLATE_PROPS
+ ), NULL);
}
return template;
}
@@ -118,7 +93,7 @@ mikmod_sink_factory (void)
GST_PAD_ALWAYS,
gst_caps_new (
"mikmod_sink",
- "audio/mod",
+ "audio/x-mod",
NULL),NULL
);
}
@@ -130,6 +105,7 @@ static void gst_mikmod_class_init (GstMikModClass *klass);
static void gst_mikmod_init (GstMikMod *filter);
static void gst_mikmod_set_property (GObject *object, guint id, const GValue *value, GParamSpec *pspec );
static void gst_mikmod_get_property (GObject *object, guint id, GValue *value, GParamSpec *pspec );
+static GstPadLinkReturn gst_mikmod_srclink (GstPad *pad, GstCaps *caps);
static void gst_mikmod_loop (GstElement *element);
static gboolean gst_mikmod_setup (GstMikMod *mikmod);
static GstElementStateReturn gst_mikmod_change_state (GstElement *element);
@@ -138,25 +114,6 @@ static GstElementStateReturn gst_mikmod_change_state (GstElement *element);
static GstElementClass *parent_class = NULL;
-#define GST_TYPE_MIKMOD_MIXFREQ (gst_mikmod_mixfreq_get_type())
-
-static GType
-gst_mikmod_mixfreq_get_type (void)
-{
- static GType mikmod_mixfreq_type = 0;
- static GEnumValue mikmod_mixfreq[] = {
- { 0, "8000", "8000 Hz" },
- { 1, "11025", "11025 Hz" },
- { 2, "22100", "22100 Hz" },
- { 3, "44100", "44100 Hz" },
- { 0, NULL, NULL },
- };
- if (! mikmod_mixfreq_type ) {
- mikmod_mixfreq_type = g_enum_register_static ("GstMikmodmixfreq", mikmod_mixfreq);
- }
- return mikmod_mixfreq_type;
-}
-
GType
gst_mikmod_get_type(void) {
static GType mikmod_type = 0;
@@ -211,9 +168,7 @@ gst_mikmod_class_init (GstMikModClass *klass)
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_VOLUME,
g_param_spec_int("volume", "volume", "volume",
0, 128, 96, G_PARAM_READWRITE ));
- g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_MIXFREQ,
- g_param_spec_enum("mixfreq", "mixfreq", "mixfreq",
- GST_TYPE_MIKMOD_MIXFREQ, 3,G_PARAM_READWRITE ));
+
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_INTERP,
g_param_spec_boolean("interp", "interp", "interp",
FALSE, G_PARAM_READWRITE ));
@@ -223,9 +178,6 @@ gst_mikmod_class_init (GstMikModClass *klass)
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_SURROUND,
g_param_spec_boolean("surround", "surround", "surround",
TRUE, G_PARAM_READWRITE ));
- g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_16BIT,
- g_param_spec_boolean("use16bit", "use16bit", "use16bit",
- TRUE, G_PARAM_READWRITE ));
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_HQMIXER,
g_param_spec_boolean("hqmixer", "hqmixer", "hqmixer",
FALSE, G_PARAM_READWRITE ));
@@ -235,9 +187,6 @@ gst_mikmod_class_init (GstMikModClass *klass)
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_SOFT_SNDFX,
g_param_spec_boolean("soft_sndfx", "soft_sndfx", "soft_sndfx",
TRUE, G_PARAM_READWRITE ));
- g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_STEREO,
- g_param_spec_boolean("stereo", "stereo", "stereo",
- TRUE, G_PARAM_READWRITE ));
gobject_class->set_property = gst_mikmod_set_property;
@@ -255,6 +204,7 @@ gst_mikmod_init (GstMikMod *filter)
gst_element_add_pad(GST_ELEMENT(filter),filter->sinkpad);
gst_element_add_pad(GST_ELEMENT(filter),filter->srcpad);
+ gst_pad_set_link_function (filter->srcpad, gst_mikmod_srclink);
gst_element_set_loop_function (GST_ELEMENT (filter), gst_mikmod_loop);
@@ -276,12 +226,62 @@ gst_mikmod_init (GstMikMod *filter)
}
+static GstPadLinkReturn
+gst_mikmod_negotiate (GstMikMod *mikmod)
+{
+ gint width, sign;
+
+ if ( mikmod->_16bit ) {
+ width = 16;
+ sign = TRUE;
+ } else {
+ width = 8;
+ sign = FALSE;
+ }
+
+ return gst_pad_try_set_caps (mikmod->srcpad,
+ GST_CAPS_NEW (
+ "mikmod_src",
+ "audio/x-raw-int",
+ "endianness", GST_PROPS_INT (G_BYTE_ORDER),
+ "signed", GST_PROPS_BOOLEAN (sign),
+ "width", GST_PROPS_INT (width),
+ "depth", GST_PROPS_INT (width),
+ "rate", GST_PROPS_INT (mikmod->mixfreq),
+ "channels", GST_PROPS_INT (mikmod->stereo ? 2 : 1)));
+}
+
+
+static GstPadLinkReturn
+gst_mikmod_srclink (GstPad *pad, GstCaps *caps)
+{
+ GstMikMod *filter;
+
+ filter = GST_MIKMOD (gst_pad_get_parent (pad));
+
+ if (gst_caps_has_property_typed (caps, "depth", GST_PROPS_INT_TYPE)) {
+ gint depth;
+ gst_caps_get_int (caps, "depth", &depth);
+ filter->_16bit = (depth == 16);
+ }
+ if (gst_caps_has_property_typed (caps, "channels", GST_PROPS_INT_TYPE)) {
+ gint channels;
+ gst_caps_get_int (caps, "channels", &channels);
+ filter->stereo = (channels == 2);
+ }
+ if (gst_caps_has_property_typed (caps, "rate", GST_PROPS_INT_TYPE)) {
+ gst_caps_get_int (caps, "rate", &filter->mixfreq);
+ }
+
+ return gst_mikmod_negotiate(filter);
+}
+
+
static void
gst_mikmod_loop (GstElement *element)
{
GstMikMod *mikmod;
GstBuffer *buffer_in;
- gint width, sign;
g_return_if_fail (element != NULL);
g_return_if_fail (GST_IS_MIKMOD (element));
@@ -308,14 +308,13 @@ gst_mikmod_loop (GstElement *element)
}
}
- if ( mikmod->_16bit ) {
- width = 16;
- sign = TRUE;
- } else {
- width = 8;
- sign = FALSE;
+ if (!GST_PAD_CAPS (mikmod->srcpad)) {
+ if (gst_mikmod_negotiate (mikmod) <= 0) {
+ gst_element_error (GST_ELEMENT (mikmod),
+ "Failed to negotiate with next element in mikmod");
+ return;
+ }
}
-
gst_mikmod_setup( mikmod );
MikMod_RegisterDriver(&drv_gst);
@@ -330,19 +329,6 @@ gst_mikmod_loop (GstElement *element)
if ( ! Player_Active() )
Player_Start(module);
- gst_pad_try_set_caps (mikmod->srcpad,
- GST_CAPS_NEW (
- "mikmod_src",
- "audio/raw",
- "format", GST_PROPS_STRING ("int"),
- "law", GST_PROPS_INT (0),
- "endianness", GST_PROPS_INT (G_BYTE_ORDER),
- "signed", GST_PROPS_BOOLEAN (sign),
- "width", GST_PROPS_INT (width),
- "depth", GST_PROPS_INT (width),
- "rate", GST_PROPS_INT (mikmod->mixfreq),
- "channels", GST_PROPS_INT (2)));
-
do {
if ( Player_Active() ) {
@@ -482,9 +468,6 @@ gst_mikmod_set_property (GObject *object, guint id, const GValue *value, GParamS
case ARG_VOLUME:
filter->volume = g_value_get_int (value);
break;
- case ARG_MIXFREQ:
- filter->mixfreq = g_value_get_enum (value);
- break;
case ARG_INTERP:
filter->interp = g_value_get_boolean (value);
break;
@@ -494,9 +477,6 @@ gst_mikmod_set_property (GObject *object, guint id, const GValue *value, GParamS
case ARG_SURROUND:
filter->surround = g_value_get_boolean (value);
break;
- case ARG_16BIT:
- filter->_16bit = g_value_get_boolean (value);
- break;
case ARG_HQMIXER:
filter->hqmixer = g_value_get_boolean (value);
break;
@@ -506,9 +486,6 @@ gst_mikmod_set_property (GObject *object, guint id, const GValue *value, GParamS
case ARG_SOFT_SNDFX:
filter->soft_sndfx = g_value_get_boolean (value);
break;
- case ARG_STEREO:
- filter->stereo = g_value_get_boolean (value);
- break;
default:
break;
}
@@ -539,9 +516,6 @@ gst_mikmod_get_property (GObject *object, guint id, GValue *value, GParamSpec *p
case ARG_VOLUME:
g_value_set_int (value, filter->volume);
break;
- case ARG_MIXFREQ:
- g_value_set_enum (value, filter->mixfreq);
- break;
case ARG_INTERP:
g_value_set_boolean (value, filter->interp);
break;
@@ -551,9 +525,6 @@ gst_mikmod_get_property (GObject *object, guint id, GValue *value, GParamSpec *p
case ARG_SURROUND:
g_value_set_boolean (value, filter->surround);
break;
- case ARG_16BIT:
- g_value_set_boolean (value, filter->_16bit);
- break;
case ARG_HQMIXER:
g_value_set_boolean (value, filter->hqmixer);
break;
@@ -563,9 +534,6 @@ gst_mikmod_get_property (GObject *object, guint id, GValue *value, GParamSpec *p
case ARG_SOFT_SNDFX:
g_value_set_boolean (value, filter->soft_sndfx);
break;
- case ARG_STEREO:
- g_value_set_boolean (value, filter->stereo);
- break;
default:
break;
}
diff --git a/ext/shout2/gstshout2.c b/ext/shout2/gstshout2.c
index 8e4bcce7..b7d01c74 100644
--- a/ext/shout2/gstshout2.c
+++ b/ext/shout2/gstshout2.c
@@ -71,12 +71,15 @@ sink_template_factory (void)
GST_PAD_ALWAYS,
gst_caps_new (
"shout2send_sink",
- "application/x-ogg",
+ "application/ogg",
NULL),
gst_caps_new (
"shout2send_sink",
- "audio/x-mp3",
- NULL),
+ "audio/mpeg",
+ gst_props_new (
+ "layer", GST_PROPS_INT_RANGE (1, 3),
+ NULL
+ )),
NULL);
}
@@ -362,13 +365,13 @@ gst_shout2send_connect (GstPad *pad, GstCaps *caps)
{
- if (!strcmp(gst_caps_get_mime (caps), "audio/x-mp3"))
+ if (!strcmp(gst_caps_get_mime (caps), "audio/mpeg"))
{
audio_format = SHOUT_FORMAT_MP3;
return GST_PAD_LINK_OK;
}
- if (!strcmp(gst_caps_get_mime (caps), "application/x-ogg"))
+ if (!strcmp(gst_caps_get_mime (caps), "application/ogg"))
{
audio_format = SHOUT_FORMAT_VORBIS;
return GST_PAD_LINK_OK;
diff --git a/ext/speex/gstspeex.c b/ext/speex/gstspeex.c
index f167749b..518e392c 100644
--- a/ext/speex/gstspeex.c
+++ b/ext/speex/gstspeex.c
@@ -32,16 +32,15 @@ GST_CAPS_FACTORY (speex_caps_factory,
GST_CAPS_NEW (
"speex_speex",
"audio/x-speex",
- "rate", GST_PROPS_INT_RANGE (1000, 48000)
+ "rate", GST_PROPS_INT_RANGE (1000, 48000),
+ "channels", GST_PROPS_INT (1)
)
)
GST_CAPS_FACTORY (raw_caps_factory,
GST_CAPS_NEW (
"speex_raw",
- "audio/raw",
- "format", GST_PROPS_STRING ("int"),
- "law", GST_PROPS_INT (0),
+ "audio/x-raw-int",
"endianness", GST_PROPS_INT (G_BYTE_ORDER),
"signed", GST_PROPS_BOOLEAN (TRUE),
"width", GST_PROPS_INT (16),
diff --git a/ext/speex/gstspeexdec.c b/ext/speex/gstspeexdec.c
index 3d92a086..93c1782c 100644
--- a/ext/speex/gstspeexdec.c
+++ b/ext/speex/gstspeexdec.c
@@ -119,9 +119,7 @@ gst_speexdec_sinkconnect (GstPad *pad, GstCaps *caps)
if (gst_pad_try_set_caps (speexdec->srcpad,
GST_CAPS_NEW (
"speex_raw",
- "audio/raw",
- "format", GST_PROPS_STRING ("int"),
- "law", GST_PROPS_INT (0),
+ "audio/x-raw-int",
"endianness", GST_PROPS_INT (G_BYTE_ORDER),
"signed", GST_PROPS_BOOLEAN (TRUE),
"width", GST_PROPS_INT (16),
diff --git a/ext/speex/gstspeexenc.c b/ext/speex/gstspeexenc.c
index b9e06596..19e40736 100644
--- a/ext/speex/gstspeexenc.c
+++ b/ext/speex/gstspeexenc.c
@@ -131,7 +131,8 @@ gst_speexenc_sinkconnect (GstPad *pad, GstCaps *caps)
if (gst_pad_try_set_caps (speexenc->srcpad, GST_CAPS_NEW (
"speex_speex",
"audio/x-speex",
- "rate", GST_PROPS_INT (speexenc->rate)
+ "rate", GST_PROPS_INT (speexenc->rate),
+ "channels", GST_PROPS_INT (1)
)))
{
speex_init_header(&speexenc->header, speexenc->rate, 1, speexenc->mode);
@@ -170,7 +171,8 @@ gst_speexenc_chain (GstPad *pad, GstBuffer *buf)
GST_CAPS_NEW (
"speex_enc",
"audio/x-speex",
- "rate", GST_PROPS_INT (speexenc->rate)
+ "rate", GST_PROPS_INT (speexenc->rate),
+ "channels", GST_PROPS_INT (1)
)))
{
gst_element_error (GST_ELEMENT (speexenc), "could not negotiate");