diff --git a/livesupport/tools/gstreamer/gstreamer-0.8.10/bin/install.sh b/livesupport/tools/gstreamer/gstreamer-0.8.10/bin/install.sh index 6de8114a5..56a6d2847 100755 --- a/livesupport/tools/gstreamer/gstreamer-0.8.10/bin/install.sh +++ b/livesupport/tools/gstreamer/gstreamer-0.8.10/bin/install.sh @@ -22,7 +22,7 @@ # # # Author : $Author: maroy $ -# Version : $Revision: 1.1 $ +# Version : $Revision: 1.2 $ # Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/tools/gstreamer/gstreamer-0.8.10/bin/Attic/install.sh,v $ #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- @@ -62,7 +62,12 @@ echo "installing $plugins from $basedir to $installdir" cd $tmpdir tar xfj $plugins_tar cd $plugins +# see bug report at http://bugzilla.gnome.org/show_bug.cgi?id=305658 +# for details on the following patch patch -p1 < $etcdir/adder-fix.diff +# see bug report at http://bugzilla.gnome.org/show_bug.cgi?id=308167 +# for details on the following patch +patch -p1 < $etcdir/switcher-fix.diff # --disable-spc is a workaround for gst-plugins-0.8.9, as some APU.c file # is missing from there. remove this when later versions come around ./configure --disable-spc --prefix=$installdir diff --git a/livesupport/tools/gstreamer/gstreamer-0.8.10/etc/switch-fix.diff b/livesupport/tools/gstreamer/gstreamer-0.8.10/etc/switch-fix.diff new file mode 100644 index 000000000..0b083cb61 --- /dev/null +++ b/livesupport/tools/gstreamer/gstreamer-0.8.10/etc/switch-fix.diff @@ -0,0 +1,32 @@ +--- 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 +@@ -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 */