gnash-dev
[Top][All Lists]
Advanced

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

Re: [Gnash-dev] Re: Burning 100% CPU time: MediaParser/FLVParser never p


From: strk
Subject: Re: [Gnash-dev] Re: Burning 100% CPU time: MediaParser/FLVParser never pauses
Date: Thu, 12 Aug 2010 22:14:18 +0200

I've committed your patch untouched for now.
Will take a look at the rcfile one for media handler.
We can always improve this one later.

--strk;

On Thu, Aug 12, 2010 at 03:47:42PM +0200, strk wrote:
> On a deeper analisys I think a better fix would be
> exposing a protected setParsingComplete() method
> in MediaParser and have that call waitIfNeeded.
> 
> Doing so we'd make sure the "ifNeeded" check is only
> performed when the important conditions actually change:
> - Buffer pushed to
> - Parsing completed
> 
> I'm working on a patch for testing if you don't beat
> me to it. The patch would also make waitIfNeeded()
> and _parsingCompleted private.
> 
> --strk;
> 
> On Sun, Aug 08, 2010 at 02:30:44PM -0700, John Gilmore wrote:
> > > Your patch seems fine, and could eventually also make the call
> > > to waitIfNeeded deep in pushAVFrame needless.
> > > 
> > > Watch out for deadlocks, if you don't get any go ahead and commit
> > > it for broader testing.
> > 
> > Since I only check code into gnash every three or four years, it takes
> > me hours to figure out how to do it.  It's an incredible jumble of ssh
> > keys in a format I never otherwise use, and savannah, and bzr, and
> > NFS, and stuff like that.  (And now it looks like there's a git repo
> > too!)  Could somebody check in this four-line change for me?
> > 
> > > > > === modified file 'libmedia/MediaParser.cpp'
> > > > > --- libmedia/MediaParser.cpp  2010-01-01 17:48:26 +0000
> > > > > +++ libmedia/MediaParser.cpp  2010-08-06 02:34:19 +0000
> > > > > @@ -411,7 +411,10 @@
> > > > >       while (!parserThreadKillRequested())
> > > > >       {
> > > > >               parseNextChunk();
> > > > > -             gnashSleep(100); // no rush....
> > > > > +             {
> > > > > +                     boost::mutex::scoped_lock lock(_qMutex);
> > > > > +                     waitIfNeeded(lock);
> > > > > +             }
> > > > >       }
> > > > >  }
> > 
> >     John
> > 
> > _______________________________________________
> > Gnash-dev mailing list
> > address@hidden
> > http://lists.gnu.org/mailman/listinfo/gnash-dev
> 
> -- 
> 
>   ()   Free GIS & Flash consultant/developer
>   /\   http://strk.keybit.net/services.html
> 
> _______________________________________________
> Gnash-dev mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/gnash-dev

-- 

  ()   Free GIS & Flash consultant/developer
  /\   http://strk.keybit.net/services.html



reply via email to

[Prev in Thread] Current Thread [Next in Thread]