Monday, November 3, 2008

Finally! Out of the bottleneck!

The hardest part in the design and implementation of a Video Editor is the streaming module. Since 3 months ago I've been breaking my head trying to implement it, but I've stumbled upon various obstacles, namely Audio / Video synchronization, audio buffers, handling of the differences between streaming (encoding) and playback, and dealing with latency issues.

I spent nearly two months rewriting the code to use lock-free data structures (that will take care of latency issues), using 4 separate threads instead of one for playback, and finishing the design of the Audio/Video Input/Output devices.

And I'm glad to announce that the most difficult part has been already coded! This month I'll be rewriting the demo to use the new playback engine, and altho the audio part hasn't been implemented yet, most of the design has been already settled (class AVController is 33% done - but trust me, that 33% was pretty hard!).

Now I've told Rigo to hurry with his implementation of the playback controls so we can start testing and debugging the playback.

I'll be updating the project status in the next few days to reflect the changes in the repository. All rejoice!

No comments: