Phonon macht Qt instabil
Verfasst: 20. Mai 2009 17:26
Ich habe zu meinem Chatprogramm jetzt Sound über Phonon hinzugefügt. Leider hat das schwere Folgen:
-QFileBrowser löst seitdem einen SIGSEGV aus
-Nach dem Beenden kommt ein SIGSEGV
-Die Sounds werden nur "halb" abgespielt
Der Code dazu:
Im Header deklariert:
Danach in der CPP-Datei:
Wie gesagt, das clean up verursacht einen SIGSEGV (aka. Speicherzugriffsfehler). Ich habe den Code von den Beispielseiten kopiert - deswegen verstehe ich auch nicht, warum das Programm dadurch instabil wird.
Es kommt immer eine Debug-Ausgabe:
Noch dazu spuckt valgrind bei jedem Abspielbefehl:
... und beim Beenden ...
Normalerweise bringt mich valgrind bei solchen Dingen immer weiter, aber in diesem Fall kann ich mit den Ausgaben leider nichts anfangen. Übersetzt habe ich das ganze mit "-g".
System: OpenSuSE Linux 11.1, KDE 4.2.3, Qt: 4.5.1
Hat jemand eine Idee, was diese Fehler verursachen könnte?
-QFileBrowser löst seitdem einen SIGSEGV aus
-Nach dem Beenden kommt ein SIGSEGV
-Die Sounds werden nur "halb" abgespielt
Der Code dazu:
Im Header deklariert:
Code: Alles auswählen
Phonon::MediaObject *music1;
Phonon::AudioOutput *audioOutput1;
Phonon::Path path1;
Code: Alles auswählen
//Initialisierung
music1 = new Phonon::MediaObject(this);
audioOutput1 = new Phonon::AudioOutput(Phonon::NotificationCategory);
path1 = Phonon::createPath(music1, audioOutput1);
...
//sndfile ist ein const char* array (z.B. "/opt/kde3/share/sounds/KDE_Beep_Ahem.wav"
music1->setCurrentSource(Phonon::MediaSource(soundfile));
music1->play();
...
//clean up beim Beenden
delete music1;
delete audioOutput1;
Es kommt immer eine Debug-Ausgabe:
Code: Alles auswählen
virtual bool Phonon::Gstreamer::AudioOutput::setOutputDevice(const Phonon::AudioOutputDevice&) "default" Code: Alles auswählen
==27579== Syscall param ioctl(arg) contains uninitialised byte(s)
==27579== at 0x4000832: (within /lib/ld-2.9.so)
==27579== by 0x9BC4950: snd_pcm_hwsync (in /usr/lib/libasound.so.2.0.0)
==27579== by 0x9BD7674: (within /usr/lib/libasound.so.2.0.0)
==27579== by 0x9BC4950: snd_pcm_hwsync (in /usr/lib/libasound.so.2.0.0)
==27579== by 0x9BC96CA: (within /usr/lib/libasound.so.2.0.0)
==27579== by 0x9BD8788: (within /usr/lib/libasound.so.2.0.0)
==27579== by 0x9BC3F93: snd_pcm_writei (in /usr/lib/libasound.so.2.0.0)
==27579== by 0x7C62993: (within /usr/lib/gstreamer-0.10/libgstalsa.so)
==27579== by 0x7ED968B: (within /usr/lib/libgstaudio-0.10.so.0.15.0)
==27579== by 0x4FA337E: (within /usr/lib/libglib-2.0.so.0.1800.2)
==27579== by 0x500F1B4: start_thread (in /lib/libpthread-2.9.so)
==27579== by 0x52213BD: clone (in /lib/libc-2.9.so)
Code: Alles auswählen
==27579== Use of uninitialised value of size 4
==27579== at 0x6BC2737: (within /usr/lib/kde4/plugins/phonon_backend/phonon_gstreamer.so)
==27579==
==27579== Process terminating with default action of signal 11 (SIGSEGV)
==27579== Bad permissions for mapped region at address 0x4A6BFF4
==27579== at 0x6BC2737: (within /usr/lib/kde4/plugins/phonon_backend/phonon_gstreamer.so)
System: OpenSuSE Linux 11.1, KDE 4.2.3, Qt: 4.5.1
Hat jemand eine Idee, was diese Fehler verursachen könnte?