Re: [Rhythmbox-devel] Re: DAAP questions.



On Mon, 2006-02-27 at 06:17 -0800, Alex Lancaster wrote:
> >>>>> "JD" == Joel Duggan  writes:
> 
> JD> Ok, I poked at it some more and found some things.  NOTE: There
> JD> was nobody running iTunes at the moment so I tested against my
> JD> mt-daap server.
> 
> JD> If I move the slider to 1min, the song goes to the 2min mark.  It
> JD> seems that the song goes to twice the time that I ask for.  It
> JD> acts unpredictably if I seek beyond half the length of the song.
> JD> Seeking backwards in the song has an inconsistent behaviour.
> JD> Usually it seeks to twice the time I wanted, sometimes it seek to
> JD> a different spot in the song all together.
> 
> FYI, I've seen more or less the same kinds of behaviour with regular
> non-DAAP seek on some (mostly MP3s that were ripped using Sound Juicer
> with variable bit rate encoding) tracks.  Often these tracks have
> bogus time durations due to gstreamer not being able to estimate track
> lengths.  Sound Juicer was well and truly mangling the ID3 tags which
> possibly accounts for this, but it's interesting that it has the same
> effect as the DAAP seek.
> 
> For, me DAAP seek doesn't work at all (using gst 0.10), it simply
> restarts from wherever you attempted to start seeking in the stream.

I wrote the DAAP seeking, and I don't believe anyone has really improved
on it since the summer (when I wrote it).

Yeah - it sucks hard.  Hell, I'm surprised if it works at all for
someone. 

The problem is I didn't/don't know gstreamer well enough to accomplish
what has to happen.  DAAP files are fetched over HTTP.  Thats all DAAP
is, a fancy structure language (i think of it as "binary xml", but thats
probably an incorrect characterization).  When you've set up the
connection and fetched enough information to select a song to listen to,
you open a separate connection to the host (separate from your DAAP
command connection) and request the song file.  You have to send some
special headers as well.  Then, the song is sent back through regular
HTTP.  Seeking is handled the same way you'd request a seek in an HTTP
stream (and the reason I'm being so vague about it is because I don't
remember the specifics).  But its a regular HTTP seek with some special
headers and on a separate connection.

Simple.  And I just couldn't/can't figure out how to write a gstreamer
plugin to handle all that.

So - if someone wants to improve it, I'm more than happy to assist in
any way I can - it really shouldn't be too hard.

-
charlie



> Alex
> _______________________________________________
> rhythmbox-devel mailing list
> rhythmbox-devel gnome org
> http://mail.gnome.org/mailman/listinfo/rhythmbox-devel



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