Hi Everyone,

I've just committed a more-or-less working version of the new MediaKit  
to the MediaKitDev branch.  This is a complete rewrite of MediaKit,  
with a filter-based architecture.  The public APIs are currently not  
particularly friendly (you need to create the filter graph yourself,  
there's no support yet for saying 'connect this file to this output,'  
although that's planned).

The new version makes heavy use of EtoileThread.  Each filter runs in  
its own thread and connects to others via hybrid ring buffers, so they  
only use locks when the ring buffer is full (then the producer thread  
will sleep until the consumer thread has handled all of the messages  
waiting for it).  This means that you'll see a spike in CPU load when  
it starts playing, as it will decode as many frames as will fit in the  
ring buffer and then sleep until the next one is requested.  Each  
packet has a timestamp associated with it, so once I've finished the  
video support (combined with Eric's MKVideoView) it will be easy to  
add synchronization.

It currently builds a MediaKitTest program by default, as well as the  
framework.  This is a simple command-line program that plays the sound  
file provided on the command line.

If anyone wants to play with it, feedback is welcome at this stage,  
before it gets moved into trunk.

David

-- Sent from my Difference Engine




_______________________________________________
Etoile-dev mailing list
Etoile-dev@gna.org
https://mail.gna.org/listinfo/etoile-dev

Reply via email to