After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 529741 - Add ioctl-based CDDA plugin for Solaris
Add ioctl-based CDDA plugin for Solaris
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other opensolaris
: Normal enhancement
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-04-24 16:05 UTC by Brian Cameron
Modified: 2009-05-01 09:20 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
patch adding ioctl based CDDA plugin (19.60 KB, patch)
2008-04-24 16:08 UTC, Brian Cameron
reviewed Details | Review

Description Brian Cameron 2008-04-24 16:05:44 UTC
I'm attaching a patch which adds an ioctl-based GStreamer CDDA plugin which works well on Solaris.  It probably would require a bit of work to get functional on Linux, since I believe the ioctls are slightly different.

The advantage of this plugin is that it is LGPL, whereas libcdio and libcdparanoia are GPL and not good to link into the LGPL GStreamer framework (refer to bug #413705).  Secondly, even if libcdparanoia is relicensed under LGPL, libcdparanoia does not support or build on Solaris.  

So, this is a handy, simply GStreamer plugin for supporting CDDA without the licensing issues of GPL.

Could this plugin be added to gst-plugins-good, or gst-plugins-bad?
Comment 1 Brian Cameron 2008-04-24 16:08:01 UTC
Created attachment 109834 [details] [review]
patch adding ioctl based CDDA plugin
Comment 2 Brian Cameron 2008-04-25 18:05:45 UTC
I wouldn't say that this is only desirable for Solaris.  I understand the code as provided only works on Solaris, but other distros might want to have a LGPL CDDA plugin.  It would require a bit of work to make it support Linux ioctls, but probably not more than a few hours of work for someone with a bit of experience in this area.  I guess we'll see if other distros have an interest in it.
Comment 3 Tim-Philipp Müller 2009-05-01 00:29:31 UTC
Hrm, this has been in bugzilla for a while. Are you still interested in getting this in?

Some quick comments/questions:

 - is the code the latest version?

 - I think it should be called suncddasrc / GstSunCddaSrc
    and go into -bad/sys/sunccda or so as long as it's specific 
    to sun/solaris (or -bad/sys/suncdda if you shed the libhal
    dependency, see next item)

 - presumably the cd drive querying could be done via glib/gio
    these days (GVolumeMonitor)? (Not a requirement, just
    wondering)

 - is it ok to call ioctl() on the same file descriptor / device
    from multiple threads at the same time? (the speed
    changing would be done from the main application
    thread while the streaming thread accesses the drive
    as well)

 - please run gst-indent on the .c file (and only the .c file)

 - please change all the return (foo); into return foo; to
     match the rest of the GStreamer code base.
Comment 4 Brian Cameron 2009-05-01 03:31:43 UTC
Thanks for bringing this to my attention.  We no longer ship this plugin on Solaris.  Now we use a plugin that interfaces with the /usr/bin/cdda2wav binary directly.  Joerg Schilling added some interactive features to the cdda2wav program so that our new plugin can start cdda2wav once, and the plugin can interactively request sectors.  It works better than the ioctls since cdda2wav uses USCSI interfaces and more reliably can read CDDA data from the drive than ioctls can.

I originally posted this bug report because I thought other platforms might be interested in making it work as a general simple ioctl-based plugin.  But, since that doesn't seem to be the case, it's probably best to just close this bug as will not fix.  I don't think anyone at Sun has an interest in using it anymore.
Comment 5 Tim-Philipp Müller 2009-05-01 09:20:46 UTC
Ok, thanks.