components. The player will read a file specified on the command-line.
Let's get started\!
-We've learned, in [Initializing GStreamer](manual-init.md), that the
+We've learned, in [Initializing GStreamer](manual/building/init.md), that the
first thing to do in your application is to initialize GStreamer by
calling `gst_init ()`. Also, make sure that the application includes
`gst/gst.h` so all function names and objects are properly defined. Use
it's conveniently called “vorbisdec”. Since “oggdemux” creates dynamic
pads for each elementary stream, you'll need to set a “pad-added” event
handler on the “oggdemux” element, like you've learned in [Dynamic (or
-sometimes) pads](manual-pads.md#dynamic-or-sometimes-pads), to link the
+sometimes) pads](manual/building/pads.md#dynamic-or-sometimes-pads), to link the
Ogg demuxer and the Vorbis decoder elements together. At last, we'll
also need an audio output element, we will use “autoaudiosink”, which
automatically detects your audio device.
The last thing left to do is to add all elements into a container
element, a `GstPipeline`, and wait until we've played the whole song.
We've previously learned how to add elements to a container bin in
-[Bins](manual-bins.md), and we've learned about element states in
-[Element States](manual-elements.md#element-states). We will also
+[Bins](manual/building/bins.md), and we've learned about element states in
+[Element States](manual/building/elements.md#element-states). We will also
attach a message handler to the pipeline bus so we can retrieve errors
and detect the end-of-stream.
return 0;
}
-
+
```
We now have created a complete pipeline. We can visualise the pipeline
very low-level but powerful. You will see later in this manual how you
can create a more powerful media player with even less effort using
higher-level interfaces. We will discuss all that in [Higher-level
-interfaces for GStreamer applications](manual-highlevel.md). We will
+interfaces for GStreamer applications](manual/advanced/index.md). We will
first, however, go more in-depth into more advanced GStreamer internals.
It should be clear from the example that we can very easily replace the
playing them back. By using an audio card source, you can even do audio
capture instead of playback. All this shows the reusability of GStreamer
elements, which is its greatest advantage.
-