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 gtkmm_tmpdir=$tools_tmpdir/gtkmm
gstreamer_dir=$toolsdir/gstreamer gstreamer_dir=$toolsdir/gstreamer
gstreamer_version=gstreamer-0.8.10 gstreamer_version=gstreamer-0.8.12
gstreamer_tmpdir=$tools_tmpdir/gstreamer gstreamer_tmpdir=$tools_tmpdir/gstreamer
icu_dir=$toolsdir/icu icu_dir=$toolsdir/icu

View file

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

View file

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

View file

@ -49,9 +49,9 @@ COVERAGE_DIR = ${DOC_DIR}/coverage
ETC_DIR = ${BASE_DIR}/etc ETC_DIR = ${BASE_DIR}/etc
TMP_DIR = ${BASE_DIR}/tmp TMP_DIR = ${BASE_DIR}/tmp
GSTREAMER_VERSION = gstreamer-0.8.10 GSTREAMER_VERSION = gstreamer-0.8.12
GSTREAMER_DIR = ${TMP_DIR}/${GSTREAMER_VERSION} 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} GST_PLUGINS_DIR = ${TMP_DIR}/${GST_PLUGINS_VERSION}
prefix=@prefix@ 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.12/gst/adder/gstadder.h 2006-09-29 12:37:30.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-livesupport/gst/adder/gstadder.h 2006-09-29 12:38:35.000000000 +0200
@@ -65,6 +65,8 @@ @@ -65,6 +65,8 @@
GstPad *srcpad; GstPad *srcpad;
@ -9,8 +9,8 @@
/* keep track of the sinkpads */ /* keep track of the sinkpads */
guint numsinkpads; guint numsinkpads;
GSList *input_channels; GSList *input_channels;
--- gst-plugins-0.8.10/gst/adder/gstadder.c 2005-06-14 18:38:01.000000000 +0200 --- gst-plugins-0.8.12/gst/adder/gstadder.c 2006-09-29 12:37:24.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-livesupport/gst/adder/gstadder.c 2006-09-29 12:38:35.000000000 +0200
@@ -64,7 +64,8 @@ @@ -64,7 +64,8 @@
{ {
ARG_0, ARG_0,
@ -37,8 +37,8 @@
+ const GstCaps * caps); + const GstCaps * caps);
static GstCaps *gst_adder_get_caps (GstPad * pad); static GstCaps *gst_adder_get_caps (GstPad * pad);
static GstElementClass *parent_class = NULL; static gboolean gst_adder_query (GstPad * pad,
@@ -131,13 +135,11 @@ @@ -134,13 +138,11 @@
static GstPadLinkReturn static GstPadLinkReturn
gst_adder_link (GstPad * pad, const GstCaps * caps) 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 (caps != NULL, GST_PAD_LINK_REFUSED);
g_return_val_if_fail (pad != 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); element = GST_PAD_PARENT (pad);
adder = GST_ADDER (element); adder = GST_ADDER (element);
@ -129,7 +129,7 @@
GstAdderInputChannel *input = (GstAdderInputChannel *) links->data; GstAdderInputChannel *input = (GstAdderInputChannel *) links->data;
if (input->sinkpad == pad) { if (input->sinkpad == pad) {
@@ -200,6 +203,8 @@ @@ -203,6 +206,8 @@
gobject_class = (GObjectClass *) klass; gobject_class = (GObjectClass *) klass;
gstelement_class = (GstElementClass *) klass; gstelement_class = (GstElementClass *) klass;
@ -138,7 +138,7 @@
gst_element_class_add_pad_template (gstelement_class, gst_element_class_add_pad_template (gstelement_class,
gst_static_pad_template_get (&gst_adder_src_template)); gst_static_pad_template_get (&gst_adder_src_template));
gst_element_class_add_pad_template (gstelement_class, 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, "generate an EOS when all input channels did", FALSE,
G_PARAM_READWRITE)); G_PARAM_READWRITE));
@ -150,7 +150,7 @@
gobject_class->get_property = gst_adder_get_property; gobject_class->get_property = gst_adder_get_property;
gobject_class->set_property = gst_adder_set_property; gobject_class->set_property = gst_adder_set_property;
@@ -226,6 +236,44 @@ @@ -229,6 +239,44 @@
} }
static void static void
@ -195,7 +195,7 @@
gst_adder_init (GstAdder * adder) gst_adder_init (GstAdder * adder)
{ {
adder->srcpad = adder->srcpad =
@@ -238,6 +286,8 @@ @@ -245,6 +293,8 @@
adder->format = GST_ADDER_FORMAT_UNSET; adder->format = GST_ADDER_FORMAT_UNSET;
@ -204,7 +204,7 @@
/* keep track of the sinkpads requested */ /* keep track of the sinkpads requested */
adder->numsinkpads = 0; adder->numsinkpads = 0;
@@ -246,6 +296,18 @@ @@ -253,6 +303,18 @@
adder->eos = FALSE; adder->eos = FALSE;
} }
@ -223,7 +223,7 @@
static GstPad * static GstPad *
gst_adder_request_new_pad (GstElement * element, GstPadTemplate * templ, gst_adder_request_new_pad (GstElement * element, GstPadTemplate * templ,
const gchar * unused) const gchar * unused)
@@ -339,6 +401,9 @@ @@ -362,6 +424,9 @@
case ARG_EOS: case ARG_EOS:
g_value_set_boolean (value, adder->eos); g_value_set_boolean (value, adder->eos);
break; break;
@ -233,7 +233,7 @@
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break; break;
@@ -360,6 +425,9 @@ @@ -383,6 +448,9 @@
case ARG_EOS: case ARG_EOS:
adder->eos = g_value_get_boolean (value); adder->eos = g_value_get_boolean (value);
break; break;
@ -243,7 +243,7 @@
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break; break;
@@ -613,23 +681,28 @@ @@ -664,23 +732,28 @@
gst_adder_get_caps (GstPad * pad) gst_adder_get_caps (GstPad * pad)
{ {
GstAdder *adder = GST_ADDER (gst_pad_get_parent (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 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 it is being run from. We clearly don't want these in our base directory.
dnl----------------------------------------------------------------------------- dnl-----------------------------------------------------------------------------
AC_INIT(gstreamer, 0.8.10, bugs@campware.org) AC_INIT(gstreamer, 0.8.12, bugs@campware.org)
AC_PREREQ(2.59) AC_PREREQ(2.59)
AC_COPYRIGHT([Copyright (c) 2004 Media Development Loan Fund under the GNU GPL]) AC_COPYRIGHT([Copyright (c) 2004 Media Development Loan Fund under the GNU GPL])
AC_REVISION($Revision$) 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 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.12/ext/mad/gstid3demuxbin.c 2005-07-28 13:47:03.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-livesupport/ext/mad/gstid3demuxbin.c 2006-09-29 13:26:47.000000000 +0200
@@ -188,7 +188,11 @@ @@ -188,7 +188,11 @@
gst_id3demux_bin_remove_pad (GstId3DemuxBin * id3) 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.12/gst/switch/gstswitch.c 2005-04-14 10:45:59.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-livesupport/gst/switch/gstswitch.c 2006-09-29 13:21:30.000000000 +0200
@@ -241,15 +241,23 @@ @@ -241,15 +241,23 @@
GstEvent *event = GST_EVENT (data); GstEvent *event = GST_EVENT (data);