[mythtv] [RFC] MythMusic: use libcdio to play & rip CDs (Win32 & MacOSX too)
Lawrence Rust
lvr at softsystem.co.uk
Wed Dec 1 14:20:10 UTC 2010
On Wed, 2010-12-01 at 13:15 +0100, Jonathan Martens wrote:
> On 1-12-2010 1:02, Jonathan Martens wrote:
> > On 30-11-2010 23:00, Lawrence Rust wrote:
> >>> There are some issues with compiling libcio on windows:
> >>>
> >>> 1. libcdio needs iconv but ./configure under MinGW fails to detect iconv
> >>
> >> Yes, found that and fixed it by adding --disable-joliet to ./configue
> >> (see bottom of my original post).
> >
> > Have not tried that (yet).
>
> I have applied all you patches (and removed some interfering changes in
> my local tree) and I am able to build mythmusic with support for ripping.
Good news. I am currently attempting the build on a clean XP SP3 system
using VirtualBox and the current trunk head (r27402). It gets as far as
building FFmpeg and then mingw segfaults:
CC libswscale/rgb2rgb.o
In file included from libswscale/rgb2rgb.c:185:
libswscale/rgb2rgb_template.c: In function 'rgb24toyv12_3DNOW':
libswscale/rgb2rgb_template.c:1998: internal compiler error:
Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
Any idea?
> To start ripping I have had to manually update the database as some
> settings (regarding the drive) would not stick through the frontend
> interface resulting in errors like this:
>
> 2010-12-01 12:51:08.921 XMLParseBase, Error: Duplicate name: 'banner' in
> parent
> 'ripstatus'
> Location:
> D:/mythtv/build/share/mythtv/themes/default/mu
> sic-ui.xml @ 1061
> Name: 'banner' Type: 'textarea'
> ++ WARN: could not open input stream...
> 2010-12-01 12:51:09.093 Error: getSectorCount('Z:\',track=1) failed at
> cdda_iden
> tify()
> ++ WARN: could not open input stream...
[snip]
Ah yes - well spotted. This is the backslash on the drive letter.
Simple workaround is to add -O "CDDevice=e:" to the mythfrontend command
line. I strip this in cddecoder-cdio.cpp but made minimal changes to
cdrip.cpp and so it slipped thru - apologies. This patch will fix it:
Index: mythplugins/mythmusic/mythmusic/cdrip.cpp
===================================================================
--- mythplugins/mythmusic/mythmusic/cdrip.cpp (revision 27299)
+++ mythplugins/mythmusic/mythmusic/cdrip.cpp (working copy)
@@ -146,6 +179,10 @@
m_totalSectorsDone(0), m_lastTrackPct(0),
m_lastOverallPct(0)
{
+#ifdef WIN32 // libcdio needs the drive letter with no path
+ if (this->m_CDdevice.endsWith('\\'))
+ this->m_CDdevice.chop(1);
+#endif
}
CDRipperThread::~CDRipperThread(void)
> read::ripTrack(tracknum = 13) exiting.
> TagLib: Ogg::PageHeader::read() -- error reading page header
> TagLib: broken ogg file
> 2010-12-01 12:53:32.093 MythMainWindow::attach old: none, new: progress,
> thread:
> 2916
>
> I need to debug this some more, but my first attempts in looking up a CD
> and ripping it after the manual intervention (setting the drive letter
> from 'default' to 'z:') in the database seems to work.
OK, as expected.
> > Attached is a (manually modified) diff of th ewin32-packager.pl scripts.
> > Since I have lots more of local changes/additions in win32-packager.pl
> > the line numbers are possible way off, likely only to apply very fuzzy.
Thanks, applied it and tried it with results noted above. I also added
this:
@@ -760,6 +760,30 @@
"make install"],
comment => 'building and installing: msys libvorbis' ],
+# confirmed latest source version as at 01-12-2010:
+[ archive => $sources.'flac-1.2.1.tar.gz',
+ fetch =>
'http://mesh.dl.sourceforge.net/project/flac/flac-src/flac-1.2.1-src/flac-1.2.1.tar.gz'],
+[ dir => $sources.'flac-1.2.1',
+ extract => $sources.'flac-1.2.1.tar' ],
+[ file => $msys.'lib/libFLAC.a',
+ shell => ["cd $unixsources/flac-1.2.1",
+ "./configure --prefix=/usr",
+ "make",
+ "make install"],
+ comment => 'building and installing: msys libFLAC' ],
to build libFLAC which is needed by mythmusic. I also found that the
installed \bin\taglib-config has an error:
-prefix=/usr/local
+prefix=/usr
> Attached is my latest minimal modification to the win32-packager.pl
> script, still need to run it top down from a clean start to see how it
> works, as well as needing to properly write out the patch to a file.
> For now I manually created the patch by downloading it from your
> suggested link.
> Due to more local changes to the win32-packager.pl script line numbers
> might be off and some fuzziness is needed to apply the patch.
Thanks, I'll keep at it until I find a method to build it.
-- Lawrence
More information about the mythtv-dev
mailing list