added fix for the switch element, see
http://bugzilla.gnome.org/show_bug.cgi?id=308167
This commit is contained in:
parent
cf47169022
commit
4c839c6a80
2 changed files with 38 additions and 1 deletions
|
@ -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
|
||||
|
|
|
@ -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 */
|
Loading…
Add table
Add a link
Reference in a new issue