gnash
[Top][All Lists]
Advanced

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

Re: [Gnash] Playing multiple movies at the same time


From: Sergio Garcia
Subject: Re: [Gnash] Playing multiple movies at the same time
Date: Mon, 20 Aug 2007 12:07:22 +0200

>On Sun, 19 Aug 2007 22:36:03 +0200 strk wrote:
>> Hi,
>> 
>> I'm currently working in using flash movies for Video IVR systems in 
>> Asterisk.
>> I've got something working (currently working on audio) and probably I'l make
>> it public next week.
>> 
>> But I have seen that currently there is no way of playing multiple movies at
>> the same time so I'll have to use forking as there is done in the plugins. 

>Correct. The fix would be implementing a VM::reset() with same signature of 
>VM::init()
>and taking care of stopping all threads, dropping all references to GC 
>resources from
>the roots, collect garbage and restart. Would need a fair amount of testing as 
>any as_object
>would have a reference to the *old* (now destroyed) VM.

I was thinking in having multiple instances of the vm at the same time, each 
with
it's own movie, renderers, gc and so on.
I think that the first step should moving all the static functions and objets 
to the VM class or create a new one for that pourposse and point the static 
function 
to it. For example:

void VM::set_base_url(const URL& url)
{
        // can call this only once during a single run
        assert(!globals::baseurl.get());
        globals::baseurl.reset(new URL(url));
        log_msg(_("Base url set to: %s"), globals::baseurl->str().c_str());
}
void
set_base_url(const URL& url)
{
        VN::get().set_base_url(url);
}

Later we should remove the static function call and add the reference to the 
appropiate
objects.

>> Also I've found that due to the garbage collector it's not possible to use 
>> different
>> threads to load and play the movie.
>We are actually using a thread to load the movie in the core lib already, with
>assertion checking that the loader/parser thread doesn't mess with the garbage 
>collector
>at all.

Then what does it mean the
assert(self == mainThread);
in GC.h??

>> Would any work done in that area considered interesting to be commited?
>Sure, cleaning up modules interface will be appreciated.

Don't know if I'll be able to get much time for this, but I'll try.

BTW I copy the dev list because it's probably the correct list for this 
discussion.. :)

BR
Sergio

 




reply via email to

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