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 > Gnash-dev@gnu.org > http://lists.gnu.org/mailman/listinfo/gnash-dev -- () Free GIS & Flash consultant/developer /\ http://strk.keybit.net/services.html _______________________________________________ Gnash-dev mailing list Gnash-dev@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-dev