GES (GStreamer Editing Services) is a cross-platform library that sits on top of GStreamer and GNonLin. GES simplifies the creation of multimedia editing applications. Basically, GES is a complete SDK for making a video editor (but not only that).
Traditionally, PiTiVi was a user interface and a homemade video editing "core" (or "backend") that interacted directly with GNonLin. Starting in version 0.16, PiTiVi's core is being replaced by GES. Basically, you can imagine GES as being "Pitivi's core, Mark III". This now means that PiTiVi is mostly only a user interface on top of GES.
The port to GES has many advantages:
- It solves many architectural issues of the past.
- It vastly simplifies PiTiVi development:
- More than 20 000 lines of code have been removed from PiTiVi as a result
- A big cleanup of the PiTiVi codebase was done in early 2011, significantly reducing the amount of modules/files to deal with.
- No more confusion between the UI and backend parts
- Much less GStreamer knowledge is required to contribute to PiTiVi itself.
- It encourages code reuse among video editing software (or any type of multimedia editing software, really).
- It has much better performance.
- Working on the backend (GES) requires knowledge of C.
- You may need to compile GES in addition to PiTiVi. See Building with GES.
Further reading for contributors:
- See the Architecture page for a visual overview of the relationship between PiTiVi, GES, GNonLin and other components.
- See the GES API reference documentation if you need to interact with GES. This documentation can also be found locally in the "docs/libs/html/" subdirectory of your GES git checkout.
- The initial GES announcement, which explains why GES was created, what its various components are and how it fits with GStreamer.