[Rhythmbox-devel] Misidentified, unidentified FLAC files.



Hi All,

I installed Rhythmbox (0.5.3) about 24 hours ago.  It did take me a
while to get everything running (mostly some gstreamer issues, I think),
but altogether not too painful.  So far I am really impressed and
pleased with what I have seen.

A couple of the problems led me to casually poke around in the code. 
Obviously I don't have a good sense yet for what is going on, but I have
a few questions and maybe you can point me in the right direction (or
let me know that I am totally screwed up).

Right now I am using RB on a pretty extensive collection of FLAC files
that I previously ripped with grip.

RB did a great job of tracking down all the files, organizing them, and
labelling them correctly as far as artist/album/title.  Very cool.

However, it seems to be identifying all of the files wrong.  An example
properties/details output would be like this:


Name:   	owner_of_a_lonely_heart.flac

Duration:	57:23
Quality:	Very low
Encoding:	64 kbpsMPEG 1 Layer III (Mono)
Location:	/flac/music/yes/90125

(etc...)

And when I tried to play a song, I got an error message like, "Cannot
find file type" (that's not quite right but close).

I presume that RB is using gstreamer to identify the file type.  And, in
fact, gst-typefind was unable to identify the files either.

The flac modules appear to be registered, as gst-inspect | grep flac
returns:

flac:  flacenc: FLAC encoder
flac:  flacdec: FLAC decoder
flac type:  application/x-flac: .flac


Finally, I went poking through gst-plugins-0.6.3 and in gstflac.c I
found the function flac_type_find, which looks like this:

static GstCaps*
flac_type_find (GstBuffer *buf, gpointer private)
{
  guint32 head = GUINT32_FROM_BE (*((guint32 *)GST_BUFFER_DATA (buf)));
                                                                                  if (head  != 0x664C6143)
    return NULL;
                                                                                   return gst_caps_new ("flac_type_find", "application/x-flac", NULL);
}


If I comment out the return NULL, my files are identified as FLAC files
and they play correctly (although the duration and other details still
seem to be messed up).  I realize that this brutally ugly little hack
could probably cause ANY file to be identified as FLAC.

Phew - wow - this is a ridiculously long first email, sorry about that. 
Anyway, has anyone seen these problems?  Is that constant a magic
number?  Could it be screwed up?  Could all my flac files have gotten
screwed up when I ripped them?  And, should I take these questions to
the gstreamer mailing lists?

Thanks in advance.

Fred



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