Bug#694670: kscd does not play any CD
Hi Pino,
Pino Toscano <pino@debian.org> writes:
> In any case, kscd basically queries the Solid library which in the end
> asks udisks about the supported drives; you can find out what is
> detected with
> $ solid-hardware query "IS OpticalDrive"
> and then you can get the details of the found devices with
> $ solid-hardware details /org/...
$ solid-hardware query "IS OpticalDrive"
udi = '/org/freedesktop/UDisks/devices/sr0'
$ solid-hardware details /org/freedesktop/UDisks/devices/sr0
udi = '/org/freedesktop/UDisks/devices/sr0'
parent = '/org/freedesktop/UDisks' (string)
vendor = 'HL-DT-ST' (string)
product = 'HL-DT-STCD-RW/DVD DRIVE MU10N' (string)
description = 'CD-RW/DVD-ROM Drive' (string)
Block.major = 11 (0xb) (int)
Block.minor = 0 (0x0) (int)
Block.device = '/dev/sr0' (string)
StorageDrive.bus = 'Scsi' (0x3) (enum)
StorageDrive.driveType = 'CdromDrive' (0x1) (enum)
StorageDrive.removable = true (bool)
StorageDrive.hotpluggable = false (bool)
StorageDrive.inUse = false (bool)
StorageDrive.size = 654350336 (0x27009800) (qulonglong)
OpticalDrive.supportedMedia = 'Cdr|Cdrw|Dvd' (0x7) (flag)
OpticalDrive.readSpeed = 0 (0x0) (int)
OpticalDrive.writeSpeed = 0 (0x0) (int)
OpticalDrive.writeSpeeds = {} (int list)
So, this works as expected. But we must still be missing something.
To figure out where the problem lies, I wrote a tiny example program:
#include <iostream>
#include <phonon/phononnamespace.h>
#include <phonon/mediaobject.h>
#include <phonon/mediasource.h>
#include <phonon/mediacontroller.h>
#include <QApplication>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
app.setOrganizationName("Trolltech");
app.setApplicationName("Application Example");
std::cout << "ohai" << std::endl;
Phonon::MediaObject *myMusic = Phonon::createPlayer(Phonon::MusicCategory,Phonon::MediaSource(Phonon::Cd, QString("/dev/sr0")));
Phonon::MediaController myMediaController(myMusic);
myMediaController.setAutoplayTitles(true);
myMusic->play();
}
(compile it with g++ -g -o test test.cpp $(pkg-config --cflags --libs phonon QtCore))
This program exhibits the same symptom as kscd.
It turns out that there is at least one access to /dev/cdrom through
gstreamer, which implies for me that either phonon or gstreamer itself
is buggy:
gdb $ bt
#0 *__GI___xstat (vers=1, name=0xaab720 "/dev/cdrom", buf=0x7fffffffd9a0)
at ../sysdeps/unix/sysv/linux/wordsize-64/xstat.c:37
#1 0x00007fffe39ada82 in cdda_identify () from /usr/lib/libcdda_interface.so.0
#2 0x00007fffe3df5aef in ?? () from /usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstcdparanoia.so
#3 0x00007fffe3bbdcdc in ?? () from /usr/lib/x86_64-linux-gnu/libgstcdda-0.10.so.0
#4 0x00007fffeb6e5048 in ?? () from /usr/lib/x86_64-linux-gnu/libgstbase-0.10.so.0
#5 0x00007fffeb6e5a88 in ?? () from /usr/lib/x86_64-linux-gnu/libgstbase-0.10.so.0
#6 0x00007fffecc94c3b in gst_pad_activate_push () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#7 0x00007fffecc956d7 in gst_pad_set_active () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#8 0x00007fffecc749b0 in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#9 0x00007fffecc870be in gst_iterator_fold () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#10 0x00007fffecc74921 in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#11 0x00007fffecc76f07 in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#12 0x00007fffecc77273 in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#13 0x00007fffeb6e7c44 in ?? () from /usr/lib/x86_64-linux-gnu/libgstbase-0.10.so.0
#14 0x00007fffecc78fcc in gst_element_change_state () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#15 0x00007fffecc7904f in gst_element_change_state () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#16 0x00007fffecc79922 in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#17 0x00007fffecc6670a in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#18 0x00007fffe400bada in ?? () from /usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstdecodebin2.so
#19 0x00007fffecc78fcc in gst_element_change_state () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#20 0x00007fffecc79922 in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#21 0x00007fffecc6670a in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#22 0x00007fffecc99528 in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#23 0x00007fffdf74cce0 in ?? () from /usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstplaybin.so
#24 0x00007fffecc78fcc in gst_element_change_state () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#25 0x00007fffecc7904f in gst_element_change_state () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#26 0x00007fffecc79922 in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
#27 0x00007fffecf4e53a in Phonon::Gstreamer::Pipeline::setState (this=0xa8e690, state=GST_STATE_PLAYING)
at ../../gstreamer/pipeline.cpp:223
#28 0x00007ffff7b95bf9 in Phonon::MediaObject::play (this=0x606dd0) at ../../phonon/mediaobject.cpp:113
#29 0x0000000000401165 in main (argc=1, argv=0x7fffffffe798) at test.cpp:21
Also, there are a lot of upstream bugreports about this issue:
https://bugs.kde.org/show_bug.cgi?id=219294
https://bugs.kde.org/show_bug.cgi?id=222841
https://bugs.kde.org/show_bug.cgi?id=238458
(similar ones omitted)
Feel free to re-assign the bug as you see fit, I think it’s not in kscd itself.
--
Best regards,
Michael
Reply to: