Package: libkdegst0.6 Version: 0.6.1-8 Severity: normal Tags: patch When using the offered GSTPlay::setAudioSink() method to alter the audiosink the seekableElements do not get updated leading to a crash of whichever application uses GSTPlay for playback.
-- System Information: Debian Release: 3.1 APT prefers testing APT policy: (990, 'testing'), (200, 'unstable') Architecture: i386 (i686) Kernel: Linux 2.6.9 Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=ISO-8859-15) Versions of packages libkdegst0.6 depends on: ii libaudio2 1.7-2 The Network Audio System (NAS). (s ii libc6 2.3.2.ds1-20 GNU C Library: Shared libraries an ii libfontconfig1 2.2.3-4 generic font configuration library ii libfreetype6 2.1.7-2.3 FreeType 2 font engine, shared lib ii libgcc1 1:3.4.3-6 GCC support library ii libglib2.0-0 2.6.1-2 The GLib library of C routines ii libgstreamer0.6-0 0.6.4-1.1 Core GStreamer libraries, plugins, ii libice6 4.3.0.dfsg.1-10 Inter-Client Exchange library ii libpng12-0 1.2.8rel-1 PNG library - runtime ii libpopt0 1.7-5 lib for parsing cmdline parameters ii libqt3c102-mt 3:3.3.3-7 Qt GUI Library (Threaded runtime v ii libsm6 4.3.0.dfsg.1-10 X Window System Session Management ii libstdc++5 1:3.3.5-5 The GNU Standard C++ Library v3 ii libx11-6 4.3.0.dfsg.1-10 X Window System protocol client li ii libxcursor1 1.1.3-1 X cursor management library ii libxext6 4.3.0.dfsg.1-10 X Window System miscellaneous exte ii libxft2 2.1.2-6 FreeType-based font drawing librar ii libxml2 2.6.11-5 GNOME XML library ii libxrandr2 4.3.0.dfsg.1-10 X Window System Resize, Rotate and ii libxrender1 0.8.3-7 X Rendering Extension client libra ii libxt6 4.3.0.dfsg.1-10 X Toolkit Intrinsics ii xlibs 4.3.0.dfsg.1-10 X Keyboard Extension (XKB) configu ii zlib1g 1:1.2.2-3 compression library - runtime -- no debconf information
diff -ur kgst-0.6.1/gst/kde/gstplay/play.cpp kgst-0.6.1.new/gst/kde/gstplay/play.cpp --- kgst-0.6.1/gst/kde/gstplay/play.cpp 2003-05-09 22:30:58.000000000 +0200 +++ kgst-0.6.1.new/gst/kde/gstplay/play.cpp 2004-12-31 00:43:08.000000000 +0100 @@ -447,13 +447,14 @@ if (d->audioSink) { d->volume->unlink(d->audioSink); + d->seekableElements.remove(d->audioSink); d->pipeline->remove(d->audioSink); } d->audioSink = audioSink; d->pipeline->add(audioSink); d->volume->link(audioSink); - + d->seekableElements.append(audioSink); return true; } @@ -541,12 +542,14 @@ if (d->audioSink) { d->volume->unlink(d->audioSink); + d->seekableElements.remove(d->audioSink); audioBin->remove(d->audioSink); } d->audioSink = audioSink; audioBin->add(audioSink); d->volume->link(audioSink); + d->seekableElements.append(audioSink); return true; } @@ -723,10 +726,12 @@ if (d->videoSink){ videoMate->unlink(d->videoSink); + d->seekableElements.remove(d->videoSink); d->pipeline->remove(d->videoSink); } d->videoSink = videoSink; d->pipeline->add(videoSink); + d->seekableElements.append(videoSink); videoMate->link(videoSink); return true; @@ -740,11 +745,13 @@ if (d->audioSink) { d->volume->unlink(d->audioSink); + d->seekableElements.remove(d->audioSink); audioBin->remove(d->audioSink); } d->audioSink = audioSink; audioBin->add(audioSink); + d->seekableElements.append(audioSink); d->volume->link(audioSink); return true;