Chapter 23. Things to check when writing an application

Table of Contents

Good programming habits
Conversion plugins
Utility applications provided with GStreamer

This chapter contains a fairly random selection of things that can be useful to keep in mind when writing GStreamer-based applications. It's up to you how much you're going to use the information provided here. We will shortly discuss how to debug pipeline problems using GStreamer applications. Also, we will touch upon how to acquire knowledge about plugins and elements and how to test simple pipelines before building applications around them.

Good programming habits

  • Always add a GstBus handler to your pipeline. Always report errors in your application, and try to do something with warnings and information messages, too.

  • Always check return values of GStreamer functions. Especially, check return values of gst_element_link () and gst_element_set_state ().

  • Dereference return values of all functions returning a non-base type, such as gst_element_get_pad (). Also, always free non-const string returns, such as gst_object_get_name ().

  • Always use your pipeline object to keep track of the current state of your pipeline. Don't keep private variables in your application. Also, don't update your user interface if a user presses the play button. Instead, listen for the state-changed message on the GstBus and only update the user interface whenever this message is received.

  • Report all bugs that you find in GStreamer bugzilla at