[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: