[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-multimedia
Subject:    Re: JEL - a job execution layer for aRts
From:       Martin Vogt <mvogt () rhrk ! uni-kl ! de>
Date:       2000-07-19 21:22:39
[Download RAW message or body]

On Wed, Jul 19, 2000 at 10:50:19PM +0200, Stefan Westerfeld wrote:
>    Hi!
> 
> On Wed, Jul 19, 2000 at 06:43:07PM +0200, Martin Vogt wrote:
> > On Wed, Jul 19, 2000 at 12:48:49AM +0200, Stefan Westerfeld wrote:
> > > We can't do ... because it takes more than ... ms. Specially in the
> > > PlayObject discussion: we can't create a new PlayObject each time, because
> > > it takes to long to initialize and thus causes dropouts.
> > 
> > I have looked at it, but currently does not see
> > how it solves the problem.
> 
> 
> But let me briefly go through the latency log and comment on how I think a
> job execution layer might help.
> 
>  ** mpeglibartsplay /home/stefan/file02.mp3
>  
> DBO: constructor
> DBO: loadmedia
> IOManager: latency for operation: 16.594 ms    (1)
> IOManager: latency for operation: 1.806 ms
> DBO: play
> IOManager: latency for operation: 12.991 ms    (2)
>  
> I am not sure if anything can be done about (1) with JEL. However, lets look
> at the others. For simplicity, I'll assume that you only have one local
> variable, decoderPlugin, that has to be dealt with.
> 
> (2) I am not sure why exactly it blocks. However, suppose its in the
>     play() implementation, then you could rewrite it like this:
>

this should do the job for (2):

void DecoderBaseObject_impl::play() {
  Command cmd(_COMMAND_PLAY);
  decoderPlugin->insertAsyncCommand(&cmd);
  setStreamState(_THREADSTATE_PLAYING);
  _state = posPlaying;
}

mpeglib is already threaded.

 
> (3) The destructor should probably look like
> 
> DecoderBaseObject_impl::~DecoderBaseObject_impl()
> {
>   Job *job = new DeleteDecoderJob(decoderPlugin);
>   job->release();
> }
>
Yes, this would be faster.
I will have a closer look at this.
Maybe its possible to work with the JobScheduar. Maybe there
are races which I dont see now.

Martin

_______________________________________________
Kde-multimedia mailing list
Kde-multimedia@master.kde.org
http://master.kde.org/mailman/listinfo/kde-multimedia

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic