upgrading gstreamer to version 0.8.12

This commit is contained in:
fgerlits 2006-09-29 15:40:49 +00:00
parent 6f6298a0a8
commit 68298d78dd
22 changed files with 46 additions and 218 deletions

View File

@ -177,7 +177,7 @@ gtkmm_version=gtkmm-2.6.5
gtkmm_tmpdir=$tools_tmpdir/gtkmm
gstreamer_dir=$toolsdir/gstreamer
gstreamer_version=gstreamer-0.8.10
gstreamer_version=gstreamer-0.8.12
gstreamer_tmpdir=$tools_tmpdir/gstreamer
icu_dir=$toolsdir/icu

View File

@ -117,7 +117,7 @@ GTK_VERSION = gtk+-2.6.10
GTKMM_DIR = ${TOOLS_DIR}/gtkmm
GTKMM_VERSION = gtkmm-2.6.5
GSTREAMER_DIR = ${TOOLS_DIR}/gstreamer
GSTREAMER_VERSION = gstreamer-0.8.10
GSTREAMER_VERSION = gstreamer-0.8.12
ICU_DIR = ${TOOLS_DIR}/icu
ICU_VERSION = icu-3.0
CURL_DIR = ${TOOLS_DIR}/curl

View File

@ -513,7 +513,7 @@ by LiveSupport:
boost 1.33.1 ${COMPILE_BOOST}
cppunit 1.10.2 yes
curl 7.12.3 yes
gstreamer 0.8.10 yes
gstreamer 0.8.12 yes
gtk+ 2.6.10 ${COMPILE_GTK}
gtk-- 2.6.5 ${COMPILE_GTKMM}
icu 3.0 ${COMPILE_ICU}

View File

@ -1,29 +0,0 @@
--- gst-plugins-0.8.9/gst/adder/gstadder.c 2005-06-29 14:45:17.000000000 +0200
+++ gst-plugins-0.8.9-livesupport/gst/adder/gstadder.c 2005-06-29 14:42:05.000000000 +0200
@@ -558,14 +558,19 @@
}
if (valid_inputs > 0 || adder->eos == FALSE) {
+ gint64 delta;
+ gint64 duration;
+
+ delta = (adder->format == GST_ADDER_FORMAT_FLOAT)
+ ? GST_BUFFER_SIZE (buf_out) / adder->width / adder->channels
+ : GST_BUFFER_SIZE (buf_out) * 8 / adder->width / adder->channels;
+ duration = delta * GST_SECOND / adder->rate;
+
GST_BUFFER_TIMESTAMP (buf_out) = adder->timestamp;
- if (adder->format == GST_ADDER_FORMAT_FLOAT)
- adder->offset +=
- GST_BUFFER_SIZE (buf_out) / adder->width / adder->channels;
- else
- adder->offset +=
- GST_BUFFER_SIZE (buf_out) * 8 / adder->width / adder->channels;
- adder->timestamp = adder->offset * GST_SECOND / adder->rate;
+ GST_BUFFER_DURATION (buf_out) = duration;
+
+ adder->offset += delta;
+ adder->timestamp += duration;
/* send it out */
GST_LOG ("pushing buf_out");

View File

@ -1,54 +0,0 @@
--- gst-plugins-0.8.10/gst/adder/gstadder.c 2005-09-07 16:24:18.000000000 +0200
+++ gst-plugins-0.8.10-livesupport/gst/adder/gstadder.c 2005-09-07 16:22:40.000000000 +0200
@@ -107,6 +107,11 @@
const GstCaps * caps);
static GstCaps *gst_adder_get_caps (GstPad * pad);
+static gboolean gst_adder_query(GstPad * pad,
+ GstQueryType type,
+ GstFormat * format,
+ gint64 * value);
+
static GstElementClass *parent_class = NULL;
/* static guint gst_adder_signals[LAST_SIGNAL] = { 0 }; */
@@ -283,6 +288,7 @@
gst_element_set_loop_function (GST_ELEMENT (adder), gst_adder_loop);
gst_pad_set_getcaps_function (adder->srcpad, gst_adder_get_caps);
gst_pad_set_link_function (adder->srcpad, gst_adder_link);
+ gst_pad_set_query_function (adder->srcpad, gst_adder_query);
adder->format = GST_ADDER_FORMAT_UNSET;
@@ -654,6 +660,31 @@
}
+static gboolean gst_adder_query(GstPad * pad,
+ GstQueryType type,
+ GstFormat * format,
+ gint64 * value)
+{
+ GstAdder * adder;
+
+ adder = GST_ADDER(gst_pad_get_parent(pad));
+ if (!GST_IS_ADDER(adder)) {
+ return FALSE;
+ }
+
+ if (pad != adder->srcpad) {
+ return gst_pad_query_default(pad, type, format, value);
+ }
+
+ if (type != GST_QUERY_POSITION || *format != GST_FORMAT_TIME) {
+ return gst_pad_query_default(pad, type, format, value);
+ }
+
+ *value = adder->timestamp;
+ return TRUE;
+}
+
+
static GstElementStateReturn
gst_adder_change_state (GstElement * element)
{

View File

@ -1,86 +0,0 @@
--- gst-plugins-0.8.9/gst/typefind/gsttypefindfunctions.c 2005-05-17 10:41:47.000000000 +0200
+++ gst-plugins-0.8.9-livesupport/gst/typefind/gsttypefindfunctions.c 2005-06-22 18:46:33.000000000 +0200
@@ -132,6 +132,66 @@
}
}
+/*** application/smil *********************************************************/
+
+static GstStaticCaps smil_caps = GST_STATIC_CAPS ("application/smil");
+
+#define SMIL_CAPS (gst_static_caps_get(&smil_caps))
+static void
+smil_type_find (GstTypeFind * tf, gpointer unused)
+{
+ guint8 *data = gst_type_find_peek (tf, 0, BUFFER_SIZE);
+ guint pos = 0;
+ guint offset = 0;
+
+ if (data) {
+ /* look for the XMLDec,
+ * see XML spec 2.8, Prolog and Document Type Declaration
+ * http://www.w3.org/TR/2004/REC-xml-20040204/#sec-prolog-dtd
+ */
+ /* we know that BUFFER_SIZE > strlen("<?xml") */
+ if (!(data[0] == '<'
+ && data[1] == '?'
+ && data[2] == 'x'
+ && data[3] == 'm'
+ && data[4] == 'l')) {
+
+ return;
+ }
+
+ data += 5;
+ pos += 5;
+
+ /* look for the first element, it has to be a <smil> element */
+ while (data) {
+ while (*data != '<') {
+ INC_BUFFER;
+ }
+
+ INC_BUFFER;
+ if (!g_ascii_isalpha(*data)) {
+ /* if not alphabetic, it's a PI or an element / attribute declaration
+ * like <?xxx or <!xxx */
+ INC_BUFFER;
+ continue;
+ }
+
+ /* the first normal element
+ * get the next 4 bytes, and look if it's smil */
+ data = gst_type_find_peek(tf, offset + pos, 5);
+ if (!(data[0] == 's'
+ && data[1] == 'm'
+ && data[2] == 'i'
+ && data[3] == 'l')) {
+ return;
+ }
+
+ gst_type_find_suggest(tf, GST_TYPE_FIND_MAXIMUM, SMIL_CAPS);
+ return;
+ }
+ }
+}
+
/*** video/x-fli **************************************************************/
static GstStaticCaps flx_caps = GST_STATIC_CAPS ("video/x-fli");
@@ -1789,6 +1849,7 @@
static gchar *shn_exts[] = { "shn", NULL };
static gchar *ape_exts[] = { "ape", NULL };
static gchar *uri_exts[] = { "ram", NULL };
+ static gchar *smil_exts[] = { "smil", NULL };
static gchar *jpeg_exts[] = { "jpg", "jpe", "jpeg", NULL };
static gchar *gif_exts[] = { "gif", NULL };
static gchar *png_exts[] = { "png", NULL };
@@ -1871,6 +1932,8 @@
utf8_exts, UTF8_CAPS, NULL);
TYPE_FIND_REGISTER (plugin, "text/uri-list", GST_RANK_MARGINAL, uri_type_find,
uri_exts, URI_CAPS, NULL);
+ TYPE_FIND_REGISTER (plugin, "application/smil", GST_RANK_PRIMARY, smil_type_find,
+ smil_exts, SMIL_CAPS, NULL);
TYPE_FIND_REGISTER_RIFF (plugin, "audio/x-wav", GST_RANK_PRIMARY, wav_exts,
"WAVE");
TYPE_FIND_REGISTER (plugin, "audio/x-aiff", GST_RANK_SECONDARY,

View File

@ -1,11 +0,0 @@
--- gstreamer-0.8.10/configure.ac 2005-05-03 15:24:30.000000000 +0200
+++ gstreamer-0.8.10-livesupport/configure.ac 2006-08-22 11:12:12.000000000 +0200
@@ -589,7 +589,7 @@
dnl Private vars for libgst only
GST_LIB_CFLAGS="$GST_PKG_CFLAGS $GST_INT_CFLAGS \
$VALGRIND_CFLAGS -I\$(top_srcdir)"
-GST_LIB_LIBS="$XML_LIBS $GLIB_LIBS -lpopt $GST_PKG_LIBS $LTLIBINTL $VALGRIND_LIBS -lm"
+GST_LIB_LIBS="$XML_LIBS $GLIB_LIBS -lpopt $GST_PKG_LIBS $LTLIBINTL -lm"
GST_LIB_LDFLAGS="$GST_LT_LDFLAGS -version-info $GST_LIBVERSION $EXPORT_LDFLAGS"
AC_SUBST(GST_LIB_CFLAGS)
AC_SUBST(GST_LIB_LIBS)

View File

@ -29,8 +29,8 @@
# Run this script to prepare gstreamer to be configured and compiled.
# To read more about gstreamer, see http://gstreamer.freedesktop.org/
#-------------------------------------------------------------------------------
product=gstreamer-0.8.10
plugins=gst-plugins-0.8.10
product=gstreamer-0.8.12
plugins=gst-plugins-0.8.12
reldir=`dirname $0`/..
basedir=`cd ${reldir}; pwd;`
@ -50,9 +50,7 @@ cd ${tmpdir}
if [ ! -d $product ]; then
tar xfj ${gstreamer_tar}
cd ${product}
# see bug report at http://bugzilla.gnome.org/show_bug.cgi?id=330308
# for details of the following patch
patch -p1 < ${etcdir}/valgrind.patch
# patch here
fi
cd ${tmpdir}
@ -64,18 +62,15 @@ if [ ! -d $plugins ]; then
patch -p1 < ${etcdir}/adder-caps-property.patch
# see bug report at http://bugzilla.gnome.org/show_bug.cgi?id=309218
# for details on the following patch
patch -p1 < ${etcdir}/adder-duration-fix.patch
# see bug report at http://bugzilla.gnome.org/show_bug.cgi?id=315457
# for details on the following patch
patch -p1 < ${etcdir}/adder-query.patch
# the patch was applied to 0.8.12, but in a slightly different form;
# this reverts it to Akos's original version
# TODO: figure out if this is needed, and remove it if it isn't
patch -p1 < ${etcdir}/adder-duration-fix-revert-to-original.patch
# see bug report at http://bugzilla.gnome.org/show_bug.cgi?id=308167
# for details on the following patch
patch -p1 < ${etcdir}/switch-fix.patch
# see bug report at http://bugzilla.gnome.org/show_bug.cgi?id=308619
# for details on the following patch
patch -p1 < ${etcdir}/id3demuxbin-pad-free-fix.patch
# see bug report at http://bugzilla.gnome.org/show_bug.cgi?id=308663
# for details on the following patch
patch -p1 < ${etcdir}/typefind-smil.patch
fi

View File

@ -49,9 +49,9 @@ COVERAGE_DIR = ${DOC_DIR}/coverage
ETC_DIR = ${BASE_DIR}/etc
TMP_DIR = ${BASE_DIR}/tmp
GSTREAMER_VERSION = gstreamer-0.8.10
GSTREAMER_VERSION = gstreamer-0.8.12
GSTREAMER_DIR = ${TMP_DIR}/${GSTREAMER_VERSION}
GST_PLUGINS_VERSION = gst-plugins-0.8.10
GST_PLUGINS_VERSION = gst-plugins-0.8.12
GST_PLUGINS_DIR = ${TMP_DIR}/${GST_PLUGINS_VERSION}
prefix=@prefix@

View File

@ -1,5 +1,5 @@
--- gst-plugins-0.8.10/gst/adder/gstadder.h 2005-05-17 10:41:43.000000000 +0200
+++ gst-plugins-0.8.10-livesupport/gst/adder/gstadder.h 2005-08-26 10:58:46.000000000 +0200
--- gst-plugins-0.8.12/gst/adder/gstadder.h 2006-09-29 12:37:30.000000000 +0200
+++ gst-plugins-0.8.12-livesupport/gst/adder/gstadder.h 2006-09-29 12:38:35.000000000 +0200
@@ -65,6 +65,8 @@
GstPad *srcpad;
@ -9,8 +9,8 @@
/* keep track of the sinkpads */
guint numsinkpads;
GSList *input_channels;
--- gst-plugins-0.8.10/gst/adder/gstadder.c 2005-06-14 18:38:01.000000000 +0200
+++ gst-plugins-0.8.10-livesupport/gst/adder/gstadder.c 2005-08-26 12:07:30.000000000 +0200
--- gst-plugins-0.8.12/gst/adder/gstadder.c 2006-09-29 12:37:24.000000000 +0200
+++ gst-plugins-0.8.12-livesupport/gst/adder/gstadder.c 2006-09-29 12:38:35.000000000 +0200
@@ -64,7 +64,8 @@
{
ARG_0,
@ -37,8 +37,8 @@
+ const GstCaps * caps);
static GstCaps *gst_adder_get_caps (GstPad * pad);
static GstElementClass *parent_class = NULL;
@@ -131,13 +135,11 @@
static gboolean gst_adder_query (GstPad * pad,
@@ -134,13 +138,11 @@
static GstPadLinkReturn
gst_adder_link (GstPad * pad, const GstCaps * caps)
{
@ -57,7 +57,7 @@
g_return_val_if_fail (caps != NULL, GST_PAD_LINK_REFUSED);
g_return_val_if_fail (pad != NULL, GST_PAD_LINK_REFUSED);
@@ -145,41 +147,42 @@
@@ -148,41 +150,42 @@
element = GST_PAD_PARENT (pad);
adder = GST_ADDER (element);
@ -129,7 +129,7 @@
GstAdderInputChannel *input = (GstAdderInputChannel *) links->data;
if (input->sinkpad == pad) {
@@ -200,6 +203,8 @@
@@ -203,6 +206,8 @@
gobject_class = (GObjectClass *) klass;
gstelement_class = (GstElementClass *) klass;
@ -138,7 +138,7 @@
gst_element_class_add_pad_template (gstelement_class,
gst_static_pad_template_get (&gst_adder_src_template));
gst_element_class_add_pad_template (gstelement_class,
@@ -217,6 +222,11 @@
@@ -220,6 +225,11 @@
"generate an EOS when all input channels did", FALSE,
G_PARAM_READWRITE));
@ -150,7 +150,7 @@
gobject_class->get_property = gst_adder_get_property;
gobject_class->set_property = gst_adder_set_property;
@@ -226,6 +236,44 @@
@@ -229,6 +239,44 @@
}
static void
@ -195,7 +195,7 @@
gst_adder_init (GstAdder * adder)
{
adder->srcpad =
@@ -238,6 +286,8 @@
@@ -245,6 +293,8 @@
adder->format = GST_ADDER_FORMAT_UNSET;
@ -204,7 +204,7 @@
/* keep track of the sinkpads requested */
adder->numsinkpads = 0;
@@ -246,6 +296,18 @@
@@ -253,6 +303,18 @@
adder->eos = FALSE;
}
@ -223,7 +223,7 @@
static GstPad *
gst_adder_request_new_pad (GstElement * element, GstPadTemplate * templ,
const gchar * unused)
@@ -339,6 +401,9 @@
@@ -362,6 +424,9 @@
case ARG_EOS:
g_value_set_boolean (value, adder->eos);
break;
@ -233,7 +233,7 @@
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -360,6 +425,9 @@
@@ -383,6 +448,9 @@
case ARG_EOS:
adder->eos = g_value_get_boolean (value);
break;
@ -243,7 +243,7 @@
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -613,23 +681,28 @@
@@ -664,23 +732,28 @@
gst_adder_get_caps (GstPad * pad)
{
GstAdder *adder = GST_ADDER (gst_pad_get_parent (pad));

View File

@ -0,0 +1,13 @@
--- gst-plugins-0.8.12/gst/adder/gstadder.c 2006-09-29 12:37:24.000000000 +0200
+++ gst-plugins-0.8.12-livesupport/gst/adder/gstadder.c 2006-09-29 12:53:25.000000000 +0200
@@ -585,7 +585,9 @@
gint64 delta;
gint64 duration;
- delta = GST_BUFFER_SIZE (buf_out) * 8 / (adder->width * adder->channels);
+ delta = (adder->format == GST_ADDER_FORMAT_FLOAT)
+ ? GST_BUFFER_SIZE (buf_out) / adder->width / adder->channels
+ : GST_BUFFER_SIZE (buf_out) * 8 / adder->width / adder->channels;
duration = delta * GST_SECOND / adder->rate;
GST_BUFFER_TIMESTAMP (buf_out) = adder->timestamp;

View File

@ -32,12 +32,12 @@ dnl This is due to the fact that configure spreads a lot of trash around,
dnl like atom4te cache directories, config.* files, etc. into the directory
dnl it is being run from. We clearly don't want these in our base directory.
dnl-----------------------------------------------------------------------------
AC_INIT(gstreamer, 0.8.10, bugs@campware.org)
AC_INIT(gstreamer, 0.8.12, bugs@campware.org)
AC_PREREQ(2.59)
AC_COPYRIGHT([Copyright (c) 2004 Media Development Loan Fund under the GNU GPL])
AC_REVISION($Revision$)
AC_CONFIG_SRCDIR(../src/gstreamer-0.8.10.tar.bz2)
AC_CONFIG_SRCDIR(../src/gstreamer-0.8.12.tar.bz2)
dnl untar the sources before anything happens

View File

@ -1,5 +1,5 @@
--- gst-plugins-0.8.9/ext/mad/gstid3demuxbin.c 2005-04-10 22:24:17.000000000 +0200
+++ gst-plugins-0.8.9-livesupport/ext/mad/gstid3demuxbin.c 2005-06-22 10:45:31.000000000 +0200
--- gst-plugins-0.8.12/ext/mad/gstid3demuxbin.c 2005-07-28 13:47:03.000000000 +0200
+++ gst-plugins-0.8.12-livesupport/ext/mad/gstid3demuxbin.c 2006-09-29 13:26:47.000000000 +0200
@@ -188,7 +188,11 @@
gst_id3demux_bin_remove_pad (GstId3DemuxBin * id3)
{

View File

@ -1,5 +1,5 @@
--- gst-plugins-0.8.9/gst/switch/gstswitch.c 2005-04-14 18:26:47.000000000 +0200
+++ gst-plugins-0.8.9-livesupport/gst/switch/gstswitch.c 2005-06-18 11:26:19.000000000 +0200
--- gst-plugins-0.8.12/gst/switch/gstswitch.c 2005-04-14 10:45:59.000000000 +0200
+++ gst-plugins-0.8.12-livesupport/gst/switch/gstswitch.c 2006-09-29 13:21:30.000000000 +0200
@@ -241,15 +241,23 @@
GstEvent *event = GST_EVENT (data);