[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-multimedia
Subject: Re: Problems with aRtsc
From: Stefan Westerfeld <stefan () space ! twc ! de>
Date: 2000-04-28 10:11:09
[Download RAW message or body]
Hi!
On Fri, Apr 28, 2000 at 11:30:12AM +0200, Joseph WENNINGER wrote:
> I hope it's not offtopic on this list, but I don't know where to ask
Its perfect, here ;).
> I try to write a plugin for my favorite music-player under X (xmms), but I
> have problems with the aRts C-API.
>
> 1) Is there a >>>>>reliable<<<<<< way to find out how many space is left in
> the arts internal buffer ?
int bytesLeft = arts_stream_get(stream,ARTS_P_BUFFER_SPACE);
should be reliable. At least that is what I used in the quake port, and I
saw no problems with that.
> 2) When I write data to the stream, the arts-C buffer runs full afer some
> writes, but doesn't start playing, instead it segfaults in the write call. I
> tried to wait for a certain time between the write calls, but it shows' the
> same behaviour, because I first thought I produce too much load to the
> server.
It is supposed to block anyway, if you write too fast, so you can't produce
too much load to the server.
> (Does someone know about such a problem ? I can't figure it out, I even
> looked at the mpg-123 patch, but it didn't help
Probably, that has something to do with the fact that XMMS is threaded. I have
been running into weird problems as well, with the combination of artsdsp and
xmms (random segfaults, too).
The theory is: aRts itself is *not* threadsafe, but if you only access the
arts_xxx functions from one thread, or use a pthread_mutex, to ensure that
only one thread uses any arts_xxx function at a time, it should work.
The reality seems to be different, however. I think there are problems with
not-threadsafe libraries, for instance glibc, which could cause these random
segfaults. I got a report that the same thing that crashes for me (debian2.1
with glibc-2.0.7) runs fine on a mandrake7 system with glibc-2.1.x installed.
I have done experiments with recomiling aRts and libltdl with -D_REENTRANT
(just guessing that this could help), but it did not.
Cu... Stefan
--
-* Stefan Westerfeld, stefan@space.twc.de (PGP!), Hamburg/Germany
KDE Developer, project infos at http://space.twc.de/~stefan/kde *-
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic