removed gstreamer 0.8

This commit is contained in:
nebojsa 2008-01-21 23:22:08 +00:00
parent f8cc44cafe
commit 8a13ce4bfc
14 changed files with 0 additions and 1086 deletions

View File

@ -1,95 +0,0 @@
#!/bin/bash
#-------------------------------------------------------------------------------
# Copyright (c) 2004 Media Development Loan Fund
#
# This file is part of the Campcaster project.
# http://campcaster.campware.org/
# To report bugs, send an e-mail to bugs@campware.org
#
# Campcaster is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# Campcaster 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Campcaster; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#
# Author : $Author$
# Version : $Revision$
# Location : $URL$
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Run this to set up the build system: configure, makefiles, etc.
# (based on the version in enlightenment's cvs)
#-------------------------------------------------------------------------------
package="gstreamer"
# assume we're in $basedir/bin
reldir=`dirname $0`/..
basedir=`cd $reldir; pwd;`
test -z "$basedir" && basedir=.
usrdir=`cd $basedir/../../../../usr; pwd;`
bindir=$basedir/bin
etcdir=$basedir/etc
tmpdir=$basedir/tmp
cd "$tmpdir"
DIE=0
(autoheader --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have autoconf installed to compile $package."
echo "Download the appropriate package for your distribution,"
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
DIE=1
}
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have autoconf installed to compile $package."
echo "Download the appropriate package for your distribution,"
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
DIE=1
}
if test "$DIE" -eq 1; then
exit 1
fi
if test -z "$*"; then
echo "I am going to run ./configure with no arguments - if you wish "
echo "to pass any to it, please specify them on the $0 command line."
fi
echo "Generating configuration files for $package, please wait...."
configure_ac=${etcdir}/configure.ac
configure=${tmpdir}/configure
aclocal_m4=${tmpdir}/aclocal.m4
# copy over configure.ac and acinlclude.m4 from etc to tmp,
# as aclocal >= 1.8 is sooo unbelivably stupid that it will simply try to
# look for configure.ac in the current directory, and include acinclude.m4
# in aclocal.m4 it without a directory path in front
#ACLOCAL_FLAGS="-I ${tmpdir} --acdir=${tmpdir} --output=${aclocal_m4}"
#echo " aclocal $ACLOCAL_FLAGS"
#cp -f ${configure_ac} ${tmpdir}
#cp -f ${etcdir}/acinclude.m4 ${tmpdir}
#aclocal $ACLOCAL_FLAGS
#echo " autoheader ${configure_ac}"
#autoheader ${configure_ac}
echo " autoconf -I ${tmpdir} -o ${configure} ${configure_ac}"
autoconf -I ${tmpdir} -o ${configure} ${configure_ac}

View File

@ -1,323 +0,0 @@
#!/bin/bash
# install - install a program, script, or datafile
scriptversion=2005-02-02.21
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
chmodcmd="$chmodprog 0755"
chowncmd=
chgrpcmd=
stripcmd=
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=
dst=
dir_arg=
dstarg=
no_target_directory=
usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
Options:
-c (ignored)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
-s $stripprog installed files.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
--help display this help and exit.
--version display version info and exit.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
"
while test -n "$1"; do
case $1 in
-c) shift
continue;;
-d) dir_arg=true
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
--help) echo "$usage"; exit $?;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-s) stripcmd=$stripprog
shift
continue;;
-t) dstarg=$2
shift
shift
continue;;
-T) no_target_directory=true
shift
continue;;
--version) echo "$0 $scriptversion"; exit $?;;
*) # When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
test -n "$dir_arg$dstarg" && break
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dstarg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dstarg"
shift # fnord
fi
shift # arg
dstarg=$arg
done
break;;
esac
done
if test -z "$1"; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call `install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
for src
do
# Protect names starting with `-'.
case $src in
-*) src=./$src ;;
esac
if test -n "$dir_arg"; then
dst=$src
src=
if test -d "$dst"; then
mkdircmd=:
chmodcmd=
else
mkdircmd=$mkdirprog
fi
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dstarg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dstarg
# Protect names starting with `-'.
case $dst in
-*) dst=./$dst ;;
esac
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
if test -n "$no_target_directory"; then
echo "$0: $dstarg: Is a directory" >&2
exit 1
fi
dst=$dst/`basename "$src"`
fi
fi
# This sed command emulates the dirname command.
dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# Skip lots of stat calls in the usual case.
if test ! -d "$dstdir"; then
defaultIFS='
'
IFS="${IFS-$defaultIFS}"
oIFS=$IFS
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
shift
IFS=$oIFS
pathcomp=
while test $# -ne 0 ; do
pathcomp=$pathcomp$1
shift
if test ! -d "$pathcomp"; then
$mkdirprog "$pathcomp"
# mkdir can fail with a `File exist' error in case several
# install-sh are creating the directory concurrently. This
# is OK.
test -d "$pathcomp" || exit
fi
pathcomp=$pathcomp/
done
fi
if test -n "$dir_arg"; then
$doit $mkdircmd "$dst" \
&& { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
else
dstfile=`basename "$dst"`
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
trap '(exit $?); exit' 1 2 13 15
# Copy the file name to the temp name.
$doit $cpprog "$src" "$dsttmp" &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
# Now rename the file to the real destination.
{ $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
|| {
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
if test -f "$dstdir/$dstfile"; then
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
|| $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
|| {
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
(exit 1); exit 1
}
else
:
fi
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
}
}
fi || { (exit 1); exit 1; }
done
# The final little trick to "correctly" pass the exit status to the exit trap.
{
(exit 0); exit 0
}
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:

View File

@ -1,79 +0,0 @@
#!/bin/bash
#-------------------------------------------------------------------------------
# Copyright (c) 2004 Media Development Loan Fund
#
# This file is part of the Campcaster project.
# http://campcaster.campware.org/
# To report bugs, send an e-mail to bugs@campware.org
#
# Campcaster is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# Campcaster 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Campcaster; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#
# Author : $Author$
# Version : $Revision$
# Location : $URL$
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# 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.12
plugins=gst-plugins-0.8.12
reldir=`dirname $0`/..
basedir=`cd ${reldir}; pwd;`
bindir=${basedir}/bin
etcdir=${basedir}/etc
tmpdir=${basedir}/tmp
gstreamer_tar=${basedir}/src/${product}.tar.bz2
plugins_tar=${basedir}/src/${plugins}.tar.bz2
mkdir -p ${tmpdir}
# copy over install-sh, as AC_CONFIG_SUBDIRS will be looking for it
cp -r $bindir/install-sh $tmpdir
cd ${tmpdir}
if [ ! -d $product ]; then
tar xfj ${gstreamer_tar}
cd ${product}
# patch here
fi
cd ${tmpdir}
if [ ! -d $plugins ]; then
tar xfj ${plugins_tar}
cd ${plugins}
# see bug report at http://bugzilla.gnome.org/show_bug.cgi?id=314146
# for details on the following patch
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
# 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=359237
# for details on the following patch
patch -p1 < ${etcdir}/xml-buffer-size.patch
fi

View File

@ -1,52 +0,0 @@
#!/bin/sh
#-------------------------------------------------------------------------------
# Copyright (c) 2004 Media Development Loan Fund
#
# This file is part of the Campcaster project.
# http://campcaster.campware.org/
# To report bugs, send an e-mail to bugs@campware.org
#
# Campcaster is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# Campcaster 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Campcaster; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#
# Author : $Author$
# Version : $Revision$
# Location : $URL$
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Run this script to configure the environment.
#
# This script in effect calls the real automake / autoconf configure script
#-------------------------------------------------------------------------------
# assume we're in $basedir
reldir=`dirname $0`
basedir=`cd $reldir; pwd;`
test -z "$basedir" && basedir=.
bindir=$basedir/bin
tmpdir=$basedir/tmp
autogen=$bindir/autogen.sh
configure=$tmpdir/configure
if [ ! -x $configure ]; then
(cd $basedir && $autogen $*)
fi
(cd $tmpdir && $configure $*)

View File

@ -1,125 +0,0 @@
#-------------------------------------------------------------------------------
# Copyright (c) 2004 Media Development Loan Fund
#
# This file is part of the Campcaster project.
# http://campcaster.campware.org/
# To report bugs, send an e-mail to bugs@campware.org
#
# Campcaster is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# Campcaster 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Campcaster; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#
# Author : $Author$
# Version : $Revision$
# Location : $URL$
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# General command definitions
#-------------------------------------------------------------------------------
MKDIR = mkdir -p
RM = rm -f
RMDIR = rm -rf
DOXYGEN = doxygen
DOXYTAG = doxytag
XSLTPROC = xsltproc
ECHO = @echo
FLAWFINDER = flawfinder
#-------------------------------------------------------------------------------
# Basic directory and file definitions
#-------------------------------------------------------------------------------
BASE_DIR = .
BIN_DIR = ${BASE_DIR}/bin
DOC_DIR = ${BASE_DIR}/doc
DOXYGEN_DIR = ${DOC_DIR}/doxygen
COVERAGE_DIR = ${DOC_DIR}/coverage
ETC_DIR = ${BASE_DIR}/etc
TMP_DIR = ${BASE_DIR}/tmp
GSTREAMER_VERSION = gstreamer-0.8.12
GSTREAMER_DIR = ${TMP_DIR}/${GSTREAMER_VERSION}
GST_PLUGINS_VERSION = gst-plugins-0.8.12
GST_PLUGINS_DIR = ${TMP_DIR}/${GST_PLUGINS_VERSION}
prefix=@prefix@
exec_prefix=@exec_prefix@
# libdir will look literally like ${exec_prefix}/lib
# thus we need exec_prefix defined as well above
libdir=@libdir@
pkg_config_path=${libdir}/pkgconfig
USR_DIR=${prefix}
USR_BIN_DIR=${USR_DIR}/bin
USR_LIB_DIR=${libdir}
USR_INCLUDE_DIR=${USR_DIR}/include
export PATH:=${USR_BIN_DIR}:${PATH}
export CPPFLAGS=-I${USR_DIR}/include
export LDFLAGS=-L${USR_LIB_DIR}
export LD_LIBRARY_PATH:=${USR_LIB_DIR}:${LD_LIBRARY_PATH}
export PKG_CONFIG_PATH=${USR_LIB_DIR}/pkgconfig
#-------------------------------------------------------------------------------
# Targets
#-------------------------------------------------------------------------------
all: ${TMP_DIR}/all.stamp
${TMP_DIR}/all.stamp:
cd ${GSTREAMER_DIR} && autoconf
cd ${GSTREAMER_DIR} && \
./configure --prefix=${prefix} \
--with-pkg-config-path=${pkg_config_path}
${MAKE} -C ${GSTREAMER_DIR}
${MAKE} -C ${GSTREAMER_DIR} install
cd ${GST_PLUGINS_DIR} && \
./configure --prefix=${prefix} \
--with-pkg-config-path=${pkg_config_path} \
--disable-spc \
--disable-gconf --disable-gconftool \
--disable-opengl
${MAKE} -C ${GST_PLUGINS_DIR}
${MAKE} -C ${GST_PLUGINS_DIR} install
touch ${TMP_DIR}/all.stamp
install: all
uninstall:
${RM} ${USR_BIN_DIR}/gst-*
${RMDIR} ${USR_LIB_DIR}/gstreamer*
${RM} ${USR_LIB_DIR}/libgst*
${RM} ${USR_LIB_DIR}/pkgconfig/gstreamer-*
${RMDIR} ${USR_INCLUDE_DIR}/gstreamer*
${RM} ${USR_DIR}/share/aclocal/gst-*
${RMDIR} ${USR_DIR}/share/doc/gstreamer-*
${RM} `find ${USR_DIR}/share/locale -name 'gstreamer-*'`
${RM} `find ${USR_DIR}/share/locale -name 'gst-plugins-*'`
${RMDIR} ${USR_DIR}/share/gtk-doc/html/gstreamer-*
${RMDIR} ${USR_DIR}/share/gtk-doc/html/gstreamer-libs-*
${RM} ${USR_DIR}/man/man1/gst-*
${RMDIR} ${USR_DIR}/var/cache/gstreamer-*
clean:
${RM} ${TMP_DIR}/*.stamp
${MAKE} -C ${GSTREAMER_DIR} clean
${MAKE} -C ${GST_PLUGINS_DIR} clean
distclean:
${RM} ${TMP_DIR}/*.stamp
${RMDIR} ${GSTREAMER_DIR}
${RMDIR} ${GST_PLUGINS_DIR}
${RMDIR} ${TMP_DIR}/auto* ${TMP_DIR}/config* ${TMP_DIR}/install-sh

View File

@ -1,290 +0,0 @@
--- 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;
+ GstCaps *caps;
+
/* keep track of the sinkpads */
guint numsinkpads;
GSList *input_channels;
--- 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,
ARG_NUM_PADS,
- ARG_EOS
+ ARG_EOS,
+ ARG_CAPS
/* FILL ME */
};
@@ -86,6 +87,7 @@
static void gst_adder_class_init (GstAdderClass * klass);
static void gst_adder_init (GstAdder * adder);
+static void gst_adder_dispose (GObject * object);
static void gst_adder_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec);
@@ -101,6 +103,8 @@
/* we do need a loop function */
static void gst_adder_loop (GstElement * element);
+static void gst_adder_set_caps(GstAdder * adder,
+ const GstCaps * caps);
static GstCaps *gst_adder_get_caps (GstPad * pad);
static gboolean gst_adder_query (GstPad * pad,
@@ -134,13 +138,11 @@
static GstPadLinkReturn
gst_adder_link (GstPad * pad, const GstCaps * caps)
{
- GstAdder *adder;
- const char *media_type;
- const GList *pads;
- GstStructure *structure;
- GstPadLinkReturn ret;
- GstElement *element;
- const GSList *links;
+ GstAdder * adder;
+ const GList * pads;
+ GstPadLinkReturn ret;
+ GstElement * element;
+ GSList * links;
g_return_val_if_fail (caps != NULL, GST_PAD_LINK_REFUSED);
g_return_val_if_fail (pad != NULL, GST_PAD_LINK_REFUSED);
@@ -148,41 +150,42 @@
element = GST_PAD_PARENT (pad);
adder = GST_ADDER (element);
- pads = gst_element_get_pad_list (element);
- while (pads) {
- GstPad *otherpad = GST_PAD (pads->data);
-
- if (otherpad != pad) {
- ret = gst_pad_try_set_caps (otherpad, caps);
- if (ret == GST_PAD_LINK_REFUSED ||
- (otherpad == adder->srcpad && GST_PAD_LINK_FAILED (ret))) {
- return ret;
+ if (adder->caps != NULL) {
+ pads = gst_element_get_pad_list (element);
+ while (pads) {
+ GstPad *otherpad = GST_PAD (pads->data);
+
+ if (otherpad != pad) {
+ ret = gst_pad_try_set_caps (otherpad, adder->caps);
+ if (ret == GST_PAD_LINK_REFUSED ||
+ (otherpad == adder->srcpad && GST_PAD_LINK_FAILED (ret))) {
+ return ret;
+ }
}
+ pads = g_list_next (pads);
+ }
+ } else {
+ pads = gst_element_get_pad_list (element);
+ while (pads) {
+ GstPad *otherpad = GST_PAD (pads->data);
+
+ if (otherpad != pad) {
+ ret = gst_pad_try_set_caps (otherpad, caps);
+ if (ret == GST_PAD_LINK_REFUSED ||
+ (otherpad == adder->srcpad && GST_PAD_LINK_FAILED (ret))) {
+ return ret;
+ }
+ }
+ pads = g_list_next (pads);
}
- pads = g_list_next (pads);
- }
- structure = gst_caps_get_structure (caps, 0);
- media_type = gst_structure_get_name (structure);
- if (strcmp (media_type, "audio/x-raw-int") == 0) {
- GST_DEBUG ("parse_caps sets adder to format int");
- adder->format = GST_ADDER_FORMAT_INT;
- gst_structure_get_int (structure, "width", &adder->width);
- gst_structure_get_int (structure, "depth", &adder->depth);
- gst_structure_get_int (structure, "endianness", &adder->endianness);
- gst_structure_get_boolean (structure, "signed", &adder->is_signed);
- gst_structure_get_int (structure, "channels", &adder->channels);
- gst_structure_get_int (structure, "rate", &adder->rate);
- } else if (strcmp (media_type, "audio/x-raw-float") == 0) {
- GST_DEBUG ("parse_caps sets adder to format float");
- adder->format = GST_ADDER_FORMAT_FLOAT;
- gst_structure_get_int (structure, "width", &adder->width);
- gst_structure_get_int (structure, "channels", &adder->channels);
- gst_structure_get_int (structure, "rate", &adder->rate);
+ /* set our caps, if all try_set_caps succeeded */
+ gst_adder_set_caps(adder, caps);
+
}
for (links = adder->input_channels;
- links != NULL; links = g_slist_next (links)) {
+ links != NULL; links = g_slist_next (links)) {
GstAdderInputChannel *input = (GstAdderInputChannel *) links->data;
if (input->sinkpad == pad) {
@@ -203,6 +206,8 @@
gobject_class = (GObjectClass *) klass;
gstelement_class = (GstElementClass *) klass;
+ gobject_class->dispose = gst_adder_dispose;
+
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,
@@ -220,6 +225,11 @@
"generate an EOS when all input channels did", FALSE,
G_PARAM_READWRITE));
+ g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_CAPS,
+ g_param_spec_pointer ("caps", "pad capabilities",
+ "fix all adder capabilities to supplied value",
+ G_PARAM_READWRITE));
+
gobject_class->get_property = gst_adder_get_property;
gobject_class->set_property = gst_adder_set_property;
@@ -229,6 +239,44 @@
}
static void
+gst_adder_set_caps(GstAdder * adder,
+ const GstCaps * caps)
+{
+ GstStructure * structure;
+ const char * media_type;
+
+ if (adder == NULL || !GST_IS_ADDER(adder)
+ || caps == NULL || !GST_IS_CAPS(caps)) {
+
+ return;
+ }
+ if (adder->caps != NULL) {
+ gst_caps_free(adder->caps);
+ }
+
+ adder->caps = gst_caps_copy(caps);
+
+ structure = gst_caps_get_structure (adder->caps, 0);
+ media_type = gst_structure_get_name (structure);
+ if (strcmp (media_type, "audio/x-raw-int") == 0) {
+ GST_DEBUG ("parse_caps sets adder to format int");
+ adder->format = GST_ADDER_FORMAT_INT;
+ gst_structure_get_int (structure, "width", &adder->width);
+ gst_structure_get_int (structure, "depth", &adder->depth);
+ gst_structure_get_int (structure, "endianness", &adder->endianness);
+ gst_structure_get_boolean (structure, "signed", &adder->is_signed);
+ gst_structure_get_int (structure, "channels", &adder->channels);
+ gst_structure_get_int (structure, "rate", &adder->rate);
+ } else if (strcmp (media_type, "audio/x-raw-float") == 0) {
+ GST_DEBUG ("parse_caps sets adder to format float");
+ adder->format = GST_ADDER_FORMAT_FLOAT;
+ gst_structure_get_int (structure, "width", &adder->width);
+ gst_structure_get_int (structure, "channels", &adder->channels);
+ gst_structure_get_int (structure, "rate", &adder->rate);
+ }
+}
+
+static void
gst_adder_init (GstAdder * adder)
{
adder->srcpad =
@@ -245,6 +293,8 @@
adder->format = GST_ADDER_FORMAT_UNSET;
+ adder->caps = NULL;
+
/* keep track of the sinkpads requested */
adder->numsinkpads = 0;
@@ -253,6 +303,18 @@
adder->eos = FALSE;
}
+static void
+gst_adder_dispose(GObject * object)
+{
+ GstAdder * adder = GST_ADDER(object);
+
+ g_return_if_fail(GST_IS_ADDER(adder));
+ if (adder->caps) {
+ gst_caps_free(adder->caps);
+ }
+ G_OBJECT_CLASS(parent_class)->dispose(object);
+}
+
static GstPad *
gst_adder_request_new_pad (GstElement * element, GstPadTemplate * templ,
const gchar * unused)
@@ -362,6 +424,9 @@
case ARG_EOS:
g_value_set_boolean (value, adder->eos);
break;
+ case ARG_CAPS:
+ g_value_set_pointer (value, adder->caps);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -383,6 +448,9 @@
case ARG_EOS:
adder->eos = g_value_get_boolean (value);
break;
+ case ARG_CAPS:
+ gst_adder_set_caps(adder, g_value_get_pointer(value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -664,23 +732,28 @@
gst_adder_get_caps (GstPad * pad)
{
GstAdder *adder = GST_ADDER (gst_pad_get_parent (pad));
- GstCaps *caps = gst_caps_new_any ();
- GstCaps *tmp, *res;
- GstPad *otherpad;
- const GList *pads;
-
- for (pads = gst_element_get_pad_list (GST_ELEMENT (adder));
- pads != NULL; pads = pads->next) {
- otherpad = GST_PAD (pads->data);
-
- tmp = gst_pad_get_allowed_caps (otherpad);
- res = gst_caps_intersect (caps, tmp);
- gst_caps_free (tmp);
- gst_caps_free (caps);
- caps = res;
- }
- return caps;
+ if (adder->caps != NULL) {
+ return gst_caps_copy(adder->caps);
+ } else {
+ GstCaps *caps = gst_caps_new_any ();
+ GstCaps *tmp, *res;
+ GstPad *otherpad;
+ const GList *pads;
+
+ for (pads = gst_element_get_pad_list (GST_ELEMENT (adder));
+ pads != NULL; pads = pads->next) {
+ otherpad = GST_PAD (pads->data);
+
+ tmp = gst_pad_get_allowed_caps (otherpad);
+ res = gst_caps_intersect (caps, tmp);
+ gst_caps_free (tmp);
+ gst_caps_free (caps);
+ caps = res;
+ }
+
+ return caps;
+ }
}
static gboolean

View File

@ -1,13 +0,0 @@
--- 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

@ -1,50 +0,0 @@
dnl-----------------------------------------------------------------------------
dnl Copyright (c) 2004 Media Development Loan Fund
dnl
dnl This file is part of the Campcaster project.
dnl http://campcaster.campware.org/
dnl To report bugs, send an e-mail to bugs@campware.org
dnl
dnl Campcaster is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 2 of the License, or
dnl (at your option) any later version.
dnl
dnl Campcaster is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with Campcaster; if not, write to the Free Software
dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
dnl
dnl
dnl Author : $Author$
dnl Version : $Revision$
dnl Location : $URL$
dnl-----------------------------------------------------------------------------
dnl-----------------------------------------------------------------------------
dnl NOTE: Run all configure related scripts from the tmp directory of the
dnl project.
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.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.12.tar.bz2)
dnl untar the sources before anything happens
../bin/prepare.sh
AC_CONFIG_FILES(../Makefile:../etc/Makefile.in)
AC_OUTPUT()

View File

@ -1,15 +0,0 @@
--- 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)
{
if (id3->srcpad) {
- gst_element_remove_pad (GST_ELEMENT (id3), id3->srcpad);
+ GstPad * pad = gst_element_get_pad(GST_ELEMENT(id3), "src");
+
+ if (pad && pad == id3->srcpad) {
+ gst_element_remove_pad (GST_ELEMENT (id3), id3->srcpad);
+ }
id3->srcpad = NULL;
}
}

View File

@ -1,32 +0,0 @@
--- 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);
GST_LOG_OBJECT (gstswitch,
- "handling event from active pad %p", switchpad->sinkpad);
+ "handling event of type %d from active pad %p",
+ GST_EVENT_TYPE(GST_EVENT(data)),
+ switchpad->sinkpad);
/* Handling event */
gst_pad_event_default (switchpad->sinkpad, event);
} else {
- /* Pushing active sinkpad data to srcpad */
- GST_LOG_OBJECT (gstswitch,
- "pushing data from active pad %p to %p",
- switchpad->sinkpad, gstswitch->srcpad);
- gst_pad_push (gstswitch->srcpad, data);
+ if (GST_PAD_IS_ACTIVE(GST_PAD_PEER(gstswitch->srcpad))) {
+ /* Pushing active sinkpad data to srcpad */
+ GST_LOG_OBJECT (gstswitch,
+ "pushing data from active pad %p to %p",
+ switchpad->sinkpad, gstswitch->srcpad);
+ gst_pad_push (gstswitch->srcpad, data);
+ } else {
+ /* the peer has become inactive, put us into EOS state */
+ GST_LOG_OBJECT(gstswitch, "peer pad inactivated, going to eos");
+ gst_element_set_eos(GST_ELEMENT(gstswitch));
+ }
}
/* Mark this data as forwarded so that it won't get unrefed on next poll */

View File

@ -1,11 +0,0 @@
--- gst-plugins-0.8.12/gst/typefind/gsttypefindfunctions.c 2006-01-29 23:54:47.000000000 +0100
+++ gst-plugins-0.8.12-livesupport/gst/typefind/gsttypefindfunctions.c 2006-10-03 12:17:53.000000000 +0200
@@ -143,7 +143,7 @@
/*** application/xml **********************************************************/
-#define XML_BUFFER_SIZE 256
+#define XML_BUFFER_SIZE 16 /* If the XML file is < 16 bytes we're screwed */
#define XML_INC_BUFFER { \
pos++; \
if (pos == XML_BUFFER_SIZE) { \