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