Plugins Extensions to &GStreamer; can be made using a plugin mechanism. This is used extensively in &GStreamer; even if only the standard package is being used: a few very basic functions reside in the core library, and all others are in a standard set of plugins. Plugins can extend GStreamer in several Plugins are only loaded when needed: a plugin registry is used to store the details of the plugins so that it is not neccessary to load all plugins to determine which are needed. This registry needs to be updated when a new plugin is added to the system: see the gstreamer-register utility and the documentation in the GStreamer Application Development Manual for more details. User extensions to &GStreamer; can be installed in the main plugin directory, and will immediately be available for use in applications. gstreamer-register should be run to update the repository: but the system should work correctly even if it hasn't been - it will just take longer to load the correct plugin. User specific plugin directories and registries will be available in future versions of &GStreamer;. Elements Elements are at the core of &GStreamer;. Without elements, &GStreamer; is just a bunch of pipe fittings with nothing to connect. A large number of elements (filters, sources and sinks) ship with &GStreamer;, but extra elements can also be written. An element may be constructed in several different ways, but all must conform to the same basic rules. A simple filter may be built with the FilterFactory, where the only code that need be written is the actual filter code. A more complex filter, or a source or sink, will need to be written out fully for complete access to the features and performance possible with &GStreamer;. The implementation of a new element will be contained in a plugin: a single plugin may contain the implementation of several elements, or just a single one. Buffers Scheduling Chain vs Loop Elements Typing and Properties Metadata