# gstreamermm Reference Manual

## Description

gstreamermm provides C++ bindings for the GStreamer streaming multimedia library. With gstreamermm it is possible to develop applications that work with multimedia in C++. For instance, see Gst::Element, Gst::Bin and Gst::Pipeline.

## Features

- gstreamermm is developed over glibmm, libsigc++ and libxml++ and the functionalities they provide.
- Referencing and unreferencing of GObjects is handled automatically via glibmm's automatic pointer class, Glib::RefPtr.
- libsigc++'s slots are used for callbacks and signals.
- Most of the GStreamer core and base plug-ins are wrapped.

## Basic Usage

Some form of the Gst::init() method must be called before using the library's classes, functions, etc. To get a deeper understanding of how to set up pipelines, deal with elements, pads, etc., see the GStreamer Application Development Manual.

The following includes the gstreamermm header:

     #include <gstreamermm.h>

(You may include individual headers, such as `gstreamermm/pipeline.h` instead.)

## Compiling

If your source file is `program.cc`, you can compile it with:

     g++ program.cc -o program `pkg-config --cflags --libs gstreamermm-0.10`

Alternatively, if using autoconf, use the following in `configure.ac:`

     PKG_CHECK_MODULES([GSTREAMERMM], [gstreamermm-0.10])

Then use the generated `GSTREAMERMM_CFLAGS` and `GSTREAMERMM_LIBS` variables in the project `Makefile.am` files. For example:

     program_CPPFLAGS = $(GSTREAMERMM_CFLAGS)
     program_LDADD = $(GSTREAMERMM_LIBS)