Date: Thu, 02 Dec 2010 18:31:34 +0200 From: Andriy Gapon <avg@freebsd.org> To: Max Brazhnikov <makc@freebsd.org> Cc: freebsd-multimedia@freebsd.org, kde@freebsd.org Subject: libxine and audio cd: use libcdio ? Message-ID: <4CF7C9E6.8090903@freebsd.org>
next in thread | raw e-mail | index | archive | help
I've noticed that libxine currently supports digital extraction of Audio CD data only for acd(4) devices, but not for cd(4); the latter case including access via ahci, ATA_CAM or atapicam. This in turn means problems for KDE if Phonon is configured with Xine backend. This is easy to test with kscd or amarok and an audio CD. So I got this craze idea. multimedia/libxine already has a dependency on sysutils/libcdio, but for unrelated reasons. libcdio is a bit more sophisticated than libxine in digital audio extraction area and does properly support both cd(4) and acd(4). So, why not use libcdio's capabilities in libxine instead of rolling duplicate (and less capable in FreeBSD case) routines. This suggestion should probably go to the upstream developers as well. But for time being let's focus on our immediate problem. Here's a work-in-progress and a little bit hackish patch that implements the idea: http://people.freebsd.org/~avg/libxine-input_cdda.diff Short description: - add read_cdrom_toc() and read_cdrom_frames() implementations that use libcdio - universally use cdda_input_plugin_t* as the first argument to read_cdrom_toc - this removes ifdef in the calling code and adds this_gen->fd dereference where needed - an unrelated change that sneaked in - __FreeBSD_kernel__ => __FreeBSD_kernel__, __FreeBSD_kernel_version => __FreeBSD_version - cdda_open => _cdda_open, cdda_close => _cdda_close to avoid name conflict with libcdio headers (cdparanoia compatibility names) - $(LIBCDIO_LIBS) -lcdio_cdda in related Makefile - this is an "unlcean" change, it should be in Makefile.am and should check libcdio availability (like #ifdef LIBCDIO_CONFIG_H in the source code) - also it seems that I missed cdio_cddap_close() call, will fix that. What do you think? Thanks! P.S. I've also written a little posting about differences between cd(4) and acd(4) with respect audio CDs: http://www.listshow.net/201012/freebsd-arch/1747-accessing-data-on-audio-cd.html -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4CF7C9E6.8090903>