QStreamer is a Qt based implementation of a media pipeline following a similar structure as GStreamer.
While qt has come a long way with the introduction of Phonon which is a wrapper around existing multimedia back ends such as GStreamer, DirectShow and others. Qt lacks its own internal media pipeline implementation. This project aims to resolve this.
The reason we didn't just wrap one of the other architectures as Phonon did is that while these other architectures are quite good at what they do. They are a beast to port to new platforms. Their makefile structures are a nightmare at the best of times. They either choose to reinvent the wheel everytime they need a new type of library, or they make use of dozens or more different external libraries to accomplish tasks without ever wrapping them for consistency.
Qt's greatest strengths are the consistency and documentation grade of the libraries. While writing a full pipeline architecture from scratch is a beast of a job, it makes sense to do it to finally get it over with. Media pipelines aren't really that complex, but they do require a great deal of time to write. They also require a great deal of planning to get right on the first try.
Where possible, this architecture will borrow from other architectures heavily. When needed, it will adopt other technologies. But the goal is to keep the overall architecture as simple as possible while maintaining the highest level of funtionality possible.
A critical component of this architecture is to be as format agnostic as possible from the start. there are more than enough other architectures out there which already support handling plain old audio and video formats. This set of libraries on the other hand will be able to function from the very start meeting the following requirements :