Who should read this manual? This book is about &GStreamer; from an application developer's point of view; it describes how to write a &GStreamer; application using the &GStreamer; libraries and tools. For an explanation about writing plugins, we suggest the Plugin Writers Guide. Preliminary reading In order to understand this manual, you will need to have a basic understanding of the C language. Since &GStreamer; adheres to the GObject programming model, this guide also assumes that you understand the basics of GObject programming. You may also want to have a look at Eric Harlow's book Developing Linux Applications with GTK+ and GDK. In addition you might want to read the &GstPWG; after this manual. Also check out the other documentation available on the &GStreamer; web site. Structure of this manual To help you navigate through this guide, it is divided into several large parts. Each part addresses a particular broad topic concerning &GStreamer; appliction development. The parts of this guide are laid out in the following order: gives you an overview of &GStreamer;'s motivation design goals. rapidly covers the basics of &GStreamer; application programming. At the end of that chapter, you should be able to build your own audio player using &GStreamer; In , we will move on to advanced subjects which make &GStreamer; stand out of its competitors. We will discuss application-pipeline interaction using dynamic parameters and interfaces, we will discuss threading and threaded pipelines, scheduling and clocks (and synchronization). Most of those topics are not just there to introduce you to their API, but primarily to give a deeper insight in solving application programming problems with &GStreamer; and understanding their concepts. Next, in , we will go into higher-level programming APIs for &GStreamer;. You don't exactly need to know all the details from the previous parts to understand this, but you will need to understand basic &GStreamer; concepts nevertheless. We will, amongst others, discuss XML, playbin and autopluggers. In , you will find some random information on integrating with GNOME, KDE, OS X or Windows, some debugging help and general tips to improve and simplify &GStreamer; programming.