Changes in the 0.9 version -------------------------- - Refcounting and API revised for thread safety, see rules in docs/design/part-MT-refcounting.txt - Scheduling is now done by the elements, they start/stop processing threads themselves. This removes the need for a separate scheduler. - State changes now happen from sink to source. This makes sure that downstream elements are ready to process data when upstream starts producing. - EOS/ERROR/... does not change the state of elements anymore. This means that when the application sets the state on an element, it remains in this state. - GMainLoop integration. Information on the state of the pipeline is now received in the mainloop via the GstBus. - Events move separate from the datastream, this allows for both in and out of sync delivery of events. - Generic _pull() replaced by _pull_region() so that random access can be made faster. - data passing happens from PAUSED, called the preroll phase. In this state no data is rendered but it is queued in the sinks. - negotiation simplified. Caps are now attached to buffers and travel along with the datastream. - GstBuffer is now subclassable. - Ghostpads now look and feel like real pads. - New Seeking/flushing policy. - Addition of base classes and helper functions in the core to abstract away the harder parts of plugin development.