<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >GStreamer Application Development Manual</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="NEXT" TITLE="Overview" HREF="part-overview.html"></HEAD ><BODY CLASS="book" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="BOOK" ><A NAME="index" ></A ><DIV CLASS="TITLEPAGE" ><H1 CLASS="title" ><A NAME="AEN2" ><SPAN CLASS="application" >GStreamer</SPAN > Application Development Manual</A ></H1 ><H3 CLASS="author" ><A NAME="AEN4" ></A >Wim Taymans</H3 ><H3 CLASS="author" ><A NAME="AEN10" ></A >Steve Baker</H3 ><H3 CLASS="author" ><A NAME="AEN16" ></A >Andy Wingo</H3 ><DIV CLASS="legalnotice" ><P ></P ><A NAME="misc-legalnotice" ></A ><P > This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at <A HREF=" http://www.opencontent.org/openpub/" TARGET="_top" >http://www.opencontent.org/openpub/</A > ) </P ><P ></P ></DIV ><HR></DIV ><DIV CLASS="TOC" ><DL ><DT ><B >Table of Contents</B ></DT ><DT >I. <A HREF="part-overview.html" >Overview</A ></DT ><DD ><DL ><DT >1. <A HREF="chapter-intro.html" >Introduction</A ></DT ><DD ><DL ><DT >1.1. <A HREF="chapter-intro.html#section-intro-what" >What is GStreamer?</A ></DT ></DL ></DD ><DT >2. <A HREF="chapter-motivation.html" >Motivation</A ></DT ><DD ><DL ><DT >2.1. <A HREF="chapter-motivation.html#section-motivation-problems" >Current problems</A ></DT ></DL ></DD ><DT >3. <A HREF="chapter-goals.html" >Goals</A ></DT ><DD ><DL ><DT >3.1. <A HREF="chapter-goals.html#section-goals-design" >The design goals</A ></DT ></DL ></DD ></DL ></DD ><DT >II. <A HREF="part-basic-concepts.html" >Basic Concepts</A ></DT ><DD ><DL ><DT >4. <A HREF="chapter-elements.html" >Elements</A ></DT ><DD ><DL ><DT >4.1. <A HREF="chapter-elements.html#section-elements-design" >What is an element ?</A ></DT ><DT >4.2. <A HREF="section-elements-types.html" >Types of elements</A ></DT ></DL ></DD ><DT >5. <A HREF="chapter-pads.html" >Pads</A ></DT ><DD ><DL ><DT >5.1. <A HREF="chapter-pads.html#section-pads-type" >Types of pads</A ></DT ><DT >5.2. <A HREF="section-caps.html" >Capabilities of a pad</A ></DT ></DL ></DD ><DT >6. <A HREF="chapter-plugins.html" >Plugins</A ></DT ><DT >7. <A HREF="chapter-links.html" >Linking elements</A ></DT ><DT >8. <A HREF="chapter-bins.html" >Bins</A ></DT ><DT >9. <A HREF="chapter-buffers.html" >Buffers</A ></DT ><DT >10. <A HREF="chapter-states.html" >Element states</A ></DT ><DD ><DL ><DT >10.1. <A HREF="chapter-states.html#section-states" >The different element states</A ></DT ><DT >10.2. <A HREF="section-states-null.html" >The NULL state</A ></DT ><DT >10.3. <A HREF="section-states-ready.html" >The READY state</A ></DT ><DT >10.4. <A HREF="section-states-paused.html" >The PAUSED state</A ></DT ><DT >10.5. <A HREF="section-states-playing.html" >The PLAYING state</A ></DT ></DL ></DD ></DL ></DD ><DT >III. <A HREF="part-basic-api.html" >Basic API</A ></DT ><DD ><DL ><DT >11. <A HREF="chapter-initialisation.html" >Initializing <SPAN CLASS="application" >GStreamer</SPAN ></A ></DT ><DD ><DL ><DT >11.1. <A HREF="chapter-initialisation.html#AEN415" >The popt interface</A ></DT ></DL ></DD ><DT >12. <A HREF="chapter-elements-api.html" >Elements</A ></DT ><DD ><DL ><DT >12.1. <A HREF="chapter-elements-api.html#section-elements-create" >Creating a GstElement</A ></DT ><DT >12.2. <A HREF="section-elements-properties.html" >GstElement properties</A ></DT ><DT >12.3. <A HREF="section-elements-signals.html" >GstElement signals</A ></DT ><DT >12.4. <A HREF="section-elements-factories.html" >More about GstElementFactory</A ></DT ></DL ></DD ><DT >13. <A HREF="chapter-pads-api.html" >Pads</A ></DT ><DD ><DL ><DT >13.1. <A HREF="chapter-pads-api.html#section-pads-api-type" >Types of pads</A ></DT ><DT >13.2. <A HREF="section-api-caps.html" >Capabilities of a pad</A ></DT ></DL ></DD ><DT >14. <A HREF="chapter-plugins-api.html" >Plugins</A ></DT ><DT >15. <A HREF="chapter-links-api.html" >Linking elements</A ></DT ><DD ><DL ><DT >15.1. <A HREF="chapter-links-api.html#section-link-basic" >Making simple links</A ></DT ><DT >15.2. <A HREF="section-link-filtered.html" >Making filtered links</A ></DT ></DL ></DD ><DT >16. <A HREF="chapter-bins-api.html" >Bins</A ></DT ><DD ><DL ><DT >16.1. <A HREF="chapter-bins-api.html#section-bin-create" >Creating a bin</A ></DT ><DT >16.2. <A HREF="section-bin-adding.html" >Adding elements to a bin</A ></DT ><DT >16.3. <A HREF="section-bin-custom.html" >Custom bins</A ></DT ><DT >16.4. <A HREF="section-bin-ghostpads.html" >Ghost pads</A ></DT ></DL ></DD ><DT >17. <A HREF="chapter-buffers-api.html" >Buffers</A ></DT ><DT >18. <A HREF="chapter-states-api.html" >Element states</A ></DT ><DD ><DL ><DT >18.1. <A HREF="chapter-states-api.html#section-states-api" >Changing element state</A ></DT ></DL ></DD ></DL ></DD ><DT >IV. <A HREF="part-build-app.html" >Building an application</A ></DT ><DD ><DL ><DT >19. <A HREF="chapter-hello-world.html" >Your first application</A ></DT ><DD ><DL ><DT >19.1. <A HREF="chapter-hello-world.html#section-hello-world" >Hello world</A ></DT ><DT >19.2. <A HREF="section-hello-world-compile.html" >Compiling helloworld.c</A ></DT ><DT >19.3. <A HREF="section-hello-world-conclusion.html" >Conclusion</A ></DT ></DL ></DD ><DT >20. <A HREF="chapter-factories.html" >More on factories</A ></DT ><DD ><DL ><DT >20.1. <A HREF="chapter-factories.html#section-factories-helloworld-problems" >The problems with the helloworld example</A ></DT ><DT >20.2. <A HREF="section-factories-mime.html" >More on MIME Types</A ></DT ><DT >20.3. <A HREF="section-factories-gstreamer-types.html" >GStreamer types</A ></DT ><DT >20.4. <A HREF="section-factories-create.html" >Creating elements with the factory</A ></DT ><DT >20.5. <A HREF="section-factories-basic-types.html" >GStreamer basic types</A ></DT ></DL ></DD ></DL ></DD ><DT >V. <A HREF="part-advanced.html" >Advanced <SPAN CLASS="application" >GStreamer</SPAN > concepts</A ></DT ><DD ><DL ><DT >21. <A HREF="chapter-threads.html" >Threads</A ></DT ><DD ><DL ><DT >21.1. <A HREF="chapter-threads.html#section-threads-constraints" >Constraints placed on the pipeline by the GstThread</A ></DT ><DT >21.2. <A HREF="section-threads-when.html" >When would you want to use a thread?</A ></DT ></DL ></DD ><DT >22. <A HREF="chapter-queues.html" >Queues</A ></DT ><DT >23. <A HREF="chapter-cothreads.html" >Cothreads</A ></DT ><DD ><DL ><DT >23.1. <A HREF="chapter-cothreads.html#section-chain-based" >Chain-based elements</A ></DT ><DT >23.2. <A HREF="section-loop-based.html" >Loop-based elements</A ></DT ></DL ></DD ><DT >24. <A HREF="chapter-scheduler.html" >Understanding schedulers</A ></DT ><DT >25. <A HREF="chapter-clocks.html" >Clocks in GStreamer</A ></DT ><DT >26. <A HREF="chapter-dynamic.html" >Dynamic pipelines</A ></DT ><DT >27. <A HREF="chapter-typedetection.html" >Type Detection</A ></DT ><DT >28. <A HREF="chapter-autoplug.html" >Autoplugging</A ></DT ><DD ><DL ><DT >28.1. <A HREF="chapter-autoplug.html#AEN947" >Using autoplugging</A ></DT ><DT >28.2. <A HREF="section-autoplug-cache.html" >Using the <CODE CLASS="classname" >GstAutoplugCache</CODE > element</A ></DT ><DT >28.3. <A HREF="section-autoplugging-spider.html" >Another approach to autoplugging</A ></DT ></DL ></DD ><DT >29. <A HREF="chapter-hello2.html" >Your second application</A ></DT ><DD ><DL ><DT >29.1. <A HREF="chapter-hello2.html#AEN995" >Autoplugging helloworld</A ></DT ></DL ></DD ><DT >30. <A HREF="chapter-dparams.html" >Dynamic Parameters</A ></DT ><DD ><DL ><DT >30.1. <A HREF="chapter-dparams.html#section-dparams-getting-started" >Getting Started</A ></DT ><DT >30.2. <A HREF="section-dparams-creating.html" >Creating and Attaching Dynamic Parameters</A ></DT ><DT >30.3. <A HREF="section-dparams-changing.html" >Changing Dynamic Parameter Values</A ></DT ><DT >30.4. <A HREF="section-dparams-types.html" >Different Types of Dynamic Parameter</A ></DT ></DL ></DD ></DL ></DD ><DT >VI. <A HREF="part-xml-gstreamer.html" >XML in <SPAN CLASS="application" >GStreamer</SPAN ></A ></DT ><DD ><DL ><DT >31. <A HREF="chapter-xml.html" >XML in <SPAN CLASS="application" >GStreamer</SPAN ></A ></DT ><DD ><DL ><DT >31.1. <A HREF="chapter-xml.html#section-xml-write" >Turning GstElements into XML</A ></DT ><DT >31.2. <A HREF="section-xml-load.html" >Loading a GstElement from an XML file</A ></DT ><DT >31.3. <A HREF="section-xml-custom.html" >Adding custom XML tags into the core XML data</A ></DT ></DL ></DD ></DL ></DD ><DT >VII. <A HREF="part-appendices.html" >Appendices</A ></DT ><DD ><DL ><DT >32. <A HREF="chapter-debugging.html" >Debugging</A ></DT ><DD ><DL ><DT >32.1. <A HREF="chapter-debugging.html#section-debugging-command-line" >Command line options</A ></DT ><DT >32.2. <A HREF="section-debugging-adding-handler.html" >Adding a custom debug handler</A ></DT ></DL ></DD ><DT >33. <A HREF="chapter-programs.html" >Programs</A ></DT ><DD ><DL ><DT >33.1. <A HREF="chapter-programs.html#section-programs-gst-register" ><B CLASS="command" >gst-register</B ></A ></DT ><DT >33.2. <A HREF="section-programs-gst-launch.html" ><B CLASS="command" >gst-launch</B ></A ></DT ><DT >33.3. <A HREF="section-programs-gst-inspect.html" ><B CLASS="command" >gst-inspect</B ></A ></DT ></DL ></DD ><DT >34. <A HREF="chapter-components.html" >Components</A ></DT ><DD ><DL ><DT >34.1. <A HREF="chapter-components.html#section-components-gst-play" >GstPlay</A ></DT ><DT >34.2. <A HREF="section-components-gst-media-play.html" >GstMediaPlay</A ></DT ><DT >34.3. <A HREF="section-components-gst-editor.html" >GstEditor</A ></DT ></DL ></DD ><DT >35. <A HREF="chapter-gnome.html" >GNOME integration</A ></DT ><DD ><DL ><DT >35.1. <A HREF="chapter-gnome.html#AEN1260" >Command line options</A ></DT ></DL ></DD ><DT >36. <A HREF="chapter-quotes.html" >Quotes from the Developers</A ></DT ></DL ></DD ></DL ></DIV ><DIV CLASS="LOT" ><DL CLASS="LOT" ><DT ><B >List of Figures</B ></DT ><DT >4-1. <A HREF="section-elements-types.html#section-element-srcimg" >Visualisation of a source element</A ></DT ><DT >4-2. <A HREF="section-elements-types.html#section-element-filterimg" >Visualisation of a filter element</A ></DT ><DT >4-3. <A HREF="section-elements-types.html#section-element-multifilterimg" >Visualisation of a filter element with more than one output pad</A ></DT ><DT >4-4. <A HREF="section-elements-types.html#section-element-sinkimg" >Visualisation of a sink element</A ></DT ><DT >7-1. <A HREF="chapter-links.html#section-link" >Visualisation of three linked elements</A ></DT ><DT >8-1. <A HREF="chapter-bins.html#section-bin-img" >Visualisation of a bin with some elements in it</A ></DT ><DT >16-1. <A HREF="section-bin-ghostpads.html#section-bin-noghost-img" >Visualisation of a <CODE CLASS="classname" >GstBin</CODE > element without ghost pads</A ></DT ><DT >16-2. <A HREF="section-bin-ghostpads.html#section-bin-ghost-img" >Visualisation of a <CODE CLASS="classname" >GstBin</CODE > element with a ghost pad</A ></DT ><DT >19-1. <A HREF="chapter-hello-world.html#section-hello-img" >The "hello world" pipeline</A ></DT ><DT >20-1. <A HREF="section-factories-mime.html#section-mime-img" >The Hello world pipeline with MIME types</A ></DT ><DT >21-1. <A HREF="section-threads-when.html#section-threads-img" >A thread</A ></DT ><DT >22-1. <A HREF="chapter-queues.html#section-queues-img" >a two-threaded decoder with a queue</A ></DT ></DL ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" > </TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" > </TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="part-overview.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" > </TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" > </TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Overview</TD ></TR ></TABLE ></DIV ></BODY ></HTML >