<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >Supporting Dynamic Parameters</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="GStreamer Plugin Writer's Guide" HREF="index.html"><LINK REL="UP" TITLE="Advanced Filter Concepts" HREF="part-advanced.html"><LINK REL="PREVIOUS" TITLE="Clocking" HREF="chapter-advanced-clock.html"><LINK REL="NEXT" TITLE="Getting Started" HREF="section-dparam-start.html"></HEAD ><BODY CLASS="chapter" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" ><SPAN CLASS="application" >GStreamer</SPAN > Plugin Writer's Guide</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="chapter-advanced-clock.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="section-dparam-start.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="chapter" ><H1 ><A NAME="chapter-dparams" ></A >Chapter 16. Supporting Dynamic Parameters</H1 ><P > Sometimes object properties are not powerful enough to control the parameters that affect the behaviour of your element. When this is the case you can expose these parameters as Dynamic Parameters which can be manipulated by any Dynamic Parameters aware application. </P ><P > Throughout this section, the term <SPAN CLASS="emphasis" ><I CLASS="emphasis" >dparams</I ></SPAN > will be used as an abbreviation for "Dynamic Parameters". </P ><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="section-dparams-compare" >16.1. Comparing Dynamic Parameters with GObject Properties</A ></H1 ><P > Your first exposure to dparams may be to convert an existing element from using object properties to using dparams. The following table gives an overview of the difference between these approaches. The significance of these differences should become apparent later on. </P ><DIV CLASS="informaltable" ><P ></P ><A NAME="AEN1289" ></A ><TABLE BORDER="1" FRAME="border" CLASS="CALSTABLE" ><COL><COL><COL><THEAD ><TR ><TH > </TH ><TH >Object Properties</TH ><TH >Dynamic Parameters</TH ></TR ></THEAD ><TBODY ><TR ><TD ><SPAN CLASS="emphasis" ><I CLASS="emphasis" >Parameter definition</I ></SPAN ></TD ><TD >Class level at compile time</TD ><TD >Any level at run time</TD ></TR ><TR ><TD ><SPAN CLASS="emphasis" ><I CLASS="emphasis" >Getting and setting</I ></SPAN ></TD ><TD >Implemented by element subclass as functions</TD ><TD >Handled entirely by dparams subsystem</TD ></TR ><TR ><TD ><SPAN CLASS="emphasis" ><I CLASS="emphasis" >Extra objects required</I ></SPAN ></TD ><TD >None - all functionality is derived from base GObject</TD ><TD >Element needs to create and store a <TT CLASS="filename" >GstDParamManager</TT > at object creation</TD ></TR ><TR ><TD ><SPAN CLASS="emphasis" ><I CLASS="emphasis" >Frequency and resolution of updates</I ></SPAN ></TD ><TD >Object properties will only be updated between calls to _get, _chain or _loop</TD ><TD >dparams can be updated at any rate independant of calls to _get, _chain or _loop up to sample-level accuracy</TD ></TR ></TBODY ></TABLE ><P ></P ></DIV ></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" ><A HREF="chapter-advanced-clock.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="section-dparam-start.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Clocking</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="part-advanced.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Getting Started</TD ></TR ></TABLE ></DIV ></BODY ></HTML >