Version: 1.1 (using KDE KDE 3.2.3) Installed from: Mandrake RPMs Compiler: gcc version 3.3.2 (Mandrake Linux 10.0 3.3.2-6.1mdk) OS: Linux gstreamer engine crashes when compiled in 64-bit mode, the problem is in gstengine.cpp, the two calls to gst_element_link_many() are incorrect in 64-bit mode. This function is a variable arg function which needs to terminate with a NULL but the code terminates it with a zero which is a 32-bit value not 64-bit therefore it doesn't real terminate the variable arg function. Patch to fix the problem: --- amarok/src/engine/gst/gstengine.cpp~ 2004-10-06 11:45:05.098550040 -0400 +++ amarok/src/engine/gst/gstengine.cpp 2004-10-06 11:44:25.030641288 -0400 @@ -415,7 +415,7 @@ g_signal_connect( G_OBJECT( input->src ), "kio_resume", G_CALLBACK( kio_resume_cb ), input->bin ); } - gst_element_link_many( input->src, input->spider, input->volume, 0 ); + gst_element_link_many( input->src, input->spider, input->volume, NULL ); // Prepare bin for playing gst_element_set_state( input->bin, GST_STATE_READY ); @@ -932,7 +932,7 @@ g_signal_connect ( G_OBJECT( m_gst_outputThread ), "error", G_CALLBACK ( outputError_cb ), 0 ); /* link elements */ - gst_element_link_many( m_gst_adder, m_gst_queue, m_gst_identity, m_gst_volume, m_gst_audioscale, m_gst_audioconvert, m_gst_audiosi nk, 0 ); + gst_element_link_many( m_gst_adder, m_gst_queue, m_gst_identity, m_gst_volume, m_gst_audioscale, m_gst_audioconvert, m_gst_audiosi nk, NULL ); setVolume( m_volume );
CVS commit by markey: FIX: Crash when using GStreamer-engine on 64bit. (BR 90869) CCMAIL: 90869-done@bugs.kde.org CCMAIL: amarok-devel@lists.sf.net M +1 -0 ChangeLog 1.354 M +3 -3 src/engine/gst/gstengine.cpp 1.198 --- kdeextragear-1/amarok/ChangeLog #1.353:1.354 @@ -5,4 +5,5 @@ VERSION 1.1.1: + FIX: Crash when using GStreamer-engine on 64bit. (BR 90869) CHG: New splash screen by Nenad Grujicic <mchitman@neobee.net>. FIX: Crash when fetching 1 missing cover using the fetch button. (BR 90673) --- kdeextragear-1/amarok/src/engine/gst/gstengine.cpp #1.197:1.198 @@ -410,5 +410,5 @@ GstEngine::load( const KURL& url, bool s } - gst_element_link_many( input->src, input->spider, input->audioconvert, input->audioscale, input->volume, 0 ); + gst_element_link_many( input->src, input->spider, input->audioconvert, input->audioscale, input->volume, NULL ); // Prepare bin for playing gst_element_set_state( input->bin, GST_STATE_READY ); @@ -922,5 +922,5 @@ GstEngine::createPipeline() // Put everything into the root bin - gst_bin_add_many( GST_BIN( m_gst_rootBin ), m_gst_inputThread, m_gst_outputThread, 0 ); + gst_bin_add_many( GST_BIN( m_gst_rootBin ), m_gst_inputThread, m_gst_outputThread, NULL ); // More buffers means less dropouts and higher latency @@ -931,5 +931,5 @@ GstEngine::createPipeline() /* link elements */ - gst_element_link_many( m_gst_adder, m_gst_queue, m_gst_identity, m_gst_volume, m_gst_audiosink, 0 ); + gst_element_link_many( m_gst_adder, m_gst_queue, m_gst_identity, m_gst_volume, m_gst_audiosink, NULL ); setVolume( m_volume );