Hi, I was wondering where all my CPU went, and a quick look at top pointed at artsd. Apon flicking to console, I saw this lot:
OggS-SEEK: at 64640 want 64632 got 63040 (diff-requested -8) OggS-SEEK: at 64768 want 64760 got 63040 (diff-requested -8) OggS-SEEK: at 65344 want 65336 got 63040 (diff-requested -8) OggS-SEEK: at 66368 want 66360 got 63040 (diff-requested -8) OggS-SEEK: at 67392 want 67384 got 63040 (diff-requested -8) OggS-SEEK: at 68416 want 68408 got 63040 (diff-requested -8) OggS-SEEK: at 69440 want 69432 got 63040 (diff-requested -8) OggS-SEEK: at 70016 want 70008 got 63040 (diff-requested -8) The relevent code from flow/gsl/gsldatahandle-vorbis.c looks like this: static GslLong dh_vorbis_coarse_seek (GslDataHandle *data_handle, GslLong voffset) { VorbisHandle *vhandle = (VorbisHandle*) data_handle; GslLong opos = vhandle->pcm_pos, pos = voffset / vhandle->n_channels; if (voffset < 0) return vhandle->pcm_pos * vhandle->n_channels; if (pos < vhandle->pcm_pos || pos >= vhandle->pcm_pos + vhandle->pcm_length + SEEK_BY_READ_AHEAD (vhandle)) { gint err = ov_pcm_seek_page (&vhandle->ofile, vhandle->soffset + pos); if (err) /* eek */ err = ov_pcm_seek_page (&vhandle->ofile, vhandle->soffset); else vhandle->pcm_pos = ov_pcm_tell (&vhandle->ofile) - vhandle->soffset; if (err || vhandle->pcm_pos < 0) /* urg, we're completely screwed */ vhandle->pcm_pos = 0; vhandle->pcm_length = 0; } g_printerr ("OggS-SEEK: at %lu want %lu got %lu (diff-requested %ld)\n", opos, pos, vhandle->pcm_pos, pos - opos); return vhandle->pcm_pos * vhandle->n_channels; } Is this new? it's only happened since a recent upgrade to the debs from shakti.ath.cx, and I'm sure there's nothing wrong with my ogg files (other players don't do that anyway, and it sounds ok, even if it is using 60% of my CPU.. -- Giles Constant, Systems Programmer Hyperlink Interactive http://www.hyperlink-interactive.co.uk