46ee9d048ba2a58b84f9ef1393ac13400cbd8d07
[framework/multimedia/gst-plugins-base0.10.git] / docs / libs / html / gst-plugins-base-libs-gstmultichannel.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>gstmultichannel</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
7 <link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
8 <link rel="up" href="gstreamer-audio.html" title="Audio Library">
9 <link rel="prev" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">
10 <link rel="next" href="gst-plugins-base-libs-gstringbuffer.html" title="gstringbuffer">
11 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16 <tr valign="middle">
17 <td><a accesskey="p" href="gst-plugins-base-libs-gstbaseaudiosrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
21 <td><a accesskey="n" href="gst-plugins-base-libs-gstringbuffer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22 </tr>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#gst-plugins-base-libs-gstmultichannel.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#gst-plugins-base-libs-gstmultichannel.description" class="shortcut">Description</a>
27 </td></tr>
28 </table>
29 <div class="refentry">
30 <a name="gst-plugins-base-libs-gstmultichannel"></a><div class="titlepage"></div>
31 <div class="refnamediv"><table width="100%"><tr>
32 <td valign="top">
33 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstmultichannel.top_of_page"></a>gstmultichannel</span></h2>
34 <p>gstmultichannel — Support for multichannel audio elements</p>
35 </td>
36 <td valign="top" align="right"></td>
37 </tr></table></div>
38 <div class="refsynopsisdiv">
39 <a name="gst-plugins-base-libs-gstmultichannel.synopsis"></a><h2>Synopsis</h2>
40 <pre class="synopsis">
41 #include &lt;gst/audio/multichannel.h&gt;
42
43 enum                <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition">GstAudioChannelPosition</a>;
44 <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="returnvalue">GstAudioChannelPosition</span></a> * <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-fixate-channel-positions" title="gst_audio_fixate_channel_positions ()">gst_audio_fixate_channel_positions</a>
45                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *str</code></em>);
46 <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="returnvalue">GstAudioChannelPosition</span></a> * <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-get-channel-positions" title="gst_audio_get_channel_positions ()">gst_audio_get_channel_positions</a>
47                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *str</code></em>);
48 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-caps-channel-positions-list" title="gst_audio_set_caps_channel_positions_list ()">gst_audio_set_caps_channel_positions_list</a>
49                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
50                                                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *pos</code></em>,
51                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num_positions</code></em>);
52 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-channel-positions" title="gst_audio_set_channel_positions ()">gst_audio_set_channel_positions</a>     (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *str</code></em>,
53                                                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *pos</code></em>);
54 <span class="returnvalue">void</span>                <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-structure-channel-positions-list" title="gst_audio_set_structure_channel_positions_list ()">gst_audio_set_structure_channel_positions_list</a>
55                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *str</code></em>,
56                                                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *pos</code></em>,
57                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num_positions</code></em>);
58 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-check-channel-positions" title="gst_audio_check_channel_positions ()">gst_audio_check_channel_positions</a>   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *pos</code></em>,
59                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> channels</code></em>);
60 </pre>
61 </div>
62 <div class="refsect1">
63 <a name="gst-plugins-base-libs-gstmultichannel.description"></a><h2>Description</h2>
64 <p>
65 This module contains some helper functions and a enum to work with
66 multichannel audio.
67 </p>
68 </div>
69 <div class="refsect1">
70 <a name="gst-plugins-base-libs-gstmultichannel.details"></a><h2>Details</h2>
71 <div class="refsect2">
72 <a name="GstAudioChannelPosition"></a><h3>enum GstAudioChannelPosition</h3>
73 <pre class="programlisting">typedef enum {
74   GST_AUDIO_CHANNEL_POSITION_INVALID = -1,
75
76   /* Main front speakers. Mono and left/right are mututally exclusive! */
77   GST_AUDIO_CHANNEL_POSITION_FRONT_MONO,
78   GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
79   GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT,
80
81   /* rear. Left/right and center are mututally exclusive! */
82   GST_AUDIO_CHANNEL_POSITION_REAR_CENTER,
83   GST_AUDIO_CHANNEL_POSITION_REAR_LEFT,
84   GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT,
85
86   /* subwoofer/low-frequency */
87   GST_AUDIO_CHANNEL_POSITION_LFE,
88
89   /* Center front speakers. Center and left/right_of_center cannot be
90    * used together! */
91   GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER,
92   GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER,
93   GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER,
94
95   /* sides */
96   GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT,
97   GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT,
98
99   /* for multi-channel input and output with more than 8 channels,
100    * incompatible with all other positions, either all positions
101    * are defined or all positions are undefined, but can't mix'n'match  */
102   GST_AUDIO_CHANNEL_POSITION_NONE,
103
104   /* don't use - counter */
105   GST_AUDIO_CHANNEL_POSITION_NUM
106 } GstAudioChannelPosition;
107 </pre>
108 <div class="variablelist"><table border="0">
109 <col align="left" valign="top">
110 <tbody>
111 <tr>
112 <td><p><a name="GST-AUDIO-CHANNEL-POSITION-INVALID:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_INVALID</code></span></p></td>
113 <td></td>
114 </tr>
115 <tr>
116 <td><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-MONO:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_MONO</code></span></p></td>
117 <td>front mono
118 </td>
119 </tr>
120 <tr>
121 <td><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT</code></span></p></td>
122 <td>front left
123 </td>
124 </tr>
125 <tr>
126 <td><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT</code></span></p></td>
127 <td>front right
128 </td>
129 </tr>
130 <tr>
131 <td><p><a name="GST-AUDIO-CHANNEL-POSITION-REAR-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_REAR_CENTER</code></span></p></td>
132 <td>rear center
133 </td>
134 </tr>
135 <tr>
136 <td><p><a name="GST-AUDIO-CHANNEL-POSITION-REAR-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_REAR_LEFT</code></span></p></td>
137 <td>rear left
138 </td>
139 </tr>
140 <tr>
141 <td><p><a name="GST-AUDIO-CHANNEL-POSITION-REAR-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT</code></span></p></td>
142 <td>rear right
143 </td>
144 </tr>
145 <tr>
146 <td><p><a name="GST-AUDIO-CHANNEL-POSITION-LFE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_LFE</code></span></p></td>
147 <td>subwoofer
148 </td>
149 </tr>
150 <tr>
151 <td><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER</code></span></p></td>
152 <td>front center
153 </td>
154 </tr>
155 <tr>
156 <td><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT-OF-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER</code></span></p></td>
157 <td>front left of center
158 </td>
159 </tr>
160 <tr>
161 <td><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT-OF-CENTER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER</code></span></p></td>
162 <td>front right of center
163 </td>
164 </tr>
165 <tr>
166 <td><p><a name="GST-AUDIO-CHANNEL-POSITION-SIDE-LEFT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT</code></span></p></td>
167 <td>side left
168 </td>
169 </tr>
170 <tr>
171 <td><p><a name="GST-AUDIO-CHANNEL-POSITION-SIDE-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT</code></span></p></td>
172 <td>side right
173 </td>
174 </tr>
175 <tr>
176 <td><p><a name="GST-AUDIO-CHANNEL-POSITION-NONE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_NONE</code></span></p></td>
177 <td>used for position-less channels, e.g.
178     from a sound card that records 1024 channels; mutually exclusive with
179     any other channel position
180 </td>
181 </tr>
182 <tr>
183 <td><p><a name="GST-AUDIO-CHANNEL-POSITION-NUM:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_NUM</code></span></p></td>
184 <td></td>
185 </tr>
186 </tbody>
187 </table></div>
188 </div>
189 <hr>
190 <div class="refsect2">
191 <a name="gst-audio-fixate-channel-positions"></a><h3>gst_audio_fixate_channel_positions ()</h3>
192 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="returnvalue">GstAudioChannelPosition</span></a> * gst_audio_fixate_channel_positions
193                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *str</code></em>);</pre>
194 <p>
195 Custom fixate function. Elements that implement some sort of
196 channel conversion algorithm should use this function for
197 fixating on GstAudioChannelPosition properties. It will take
198 care of equal channel positioning (left/right). Caller <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>s
199 the return value. The input properties may be (and are supposed
200 to be) unfixed.
201 Note that this function is mostly a hack because we currently
202 have no way to add default fixation functions for new GTypes.
203 </p>
204 <div class="variablelist"><table border="0">
205 <col align="left" valign="top">
206 <tbody>
207 <tr>
208 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
209 <td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> containing a (possibly unfixed)
210 "channel-positions" field.</td>
211 </tr>
212 <tr>
213 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
214 <td>fixed values that the caller could use as a fixed
215 set of <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> values.</td>
216 </tr>
217 </tbody>
218 </table></div>
219 </div>
220 <hr>
221 <div class="refsect2">
222 <a name="gst-audio-get-channel-positions"></a><h3>gst_audio_get_channel_positions ()</h3>
223 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="returnvalue">GstAudioChannelPosition</span></a> * gst_audio_get_channel_positions
224                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *str</code></em>);</pre>
225 <p>
226 Retrieves a number of (fixed!) audio channel positions from
227 the provided <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> and returns it as a newly allocated
228 array. The caller should <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> this array. The caller
229 should also check that the members in this <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> are
230 indeed "fixed" before calling this function.
231 </p>
232 <div class="variablelist"><table border="0">
233 <col align="left" valign="top">
234 <tbody>
235 <tr>
236 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
237 <td>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> to retrieve channel positions from.</td>
238 </tr>
239 <tr>
240 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
241 <td>a newly allocated array containing the channel
242 positions as provided in the given <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>. Returns
243 NULL on error.</td>
244 </tr>
245 </tbody>
246 </table></div>
247 </div>
248 <hr>
249 <div class="refsect2">
250 <a name="gst-audio-set-caps-channel-positions-list"></a><h3>gst_audio_set_caps_channel_positions_list ()</h3>
251 <pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_set_caps_channel_positions_list
252                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
253                                                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *pos</code></em>,
254                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num_positions</code></em>);</pre>
255 <p>
256 Sets a (possibly non-fixed) list of possible audio channel
257 positions (given in pos) on the given caps. Each of the
258 structures of the caps, after this function has been called,
259 will contain a "channel-positions" field with an array.
260 Each value in the array will contain each of the values given
261 in the pos array. Note that the size of the caps might be
262 increased by this, since each structure with a "channel-
263 positions" field needs to have a fixed "channels" field.
264 The input caps is not required to have this.
265 </p>
266 <div class="variablelist"><table border="0">
267 <col align="left" valign="top">
268 <tbody>
269 <tr>
270 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
271 <td>
272 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> to set the list of channel positions on.</td>
273 </tr>
274 <tr>
275 <td><p><span class="term"><em class="parameter"><code>pos</code></em> :</span></p></td>
276 <td>the array containing one or more possible audio
277 channel positions that we should add in each value
278 of the array in the given structure.</td>
279 </tr>
280 <tr>
281 <td><p><span class="term"><em class="parameter"><code>num_positions</code></em> :</span></p></td>
282 <td>the number of values in pos.</td>
283 </tr>
284 </tbody>
285 </table></div>
286 </div>
287 <hr>
288 <div class="refsect2">
289 <a name="gst-audio-set-channel-positions"></a><h3>gst_audio_set_channel_positions ()</h3>
290 <pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_set_channel_positions     (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *str</code></em>,
291                                                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *pos</code></em>);</pre>
292 <p>
293 Adds a "channel-positions" field to the given <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>,
294 which will represent the channel positions as given in the
295 provided <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> array.
296 </p>
297 <div class="variablelist"><table border="0">
298 <col align="left" valign="top">
299 <tbody>
300 <tr>
301 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
302 <td>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> to set channel positions on.</td>
303 </tr>
304 <tr>
305 <td><p><span class="term"><em class="parameter"><code>pos</code></em> :</span></p></td>
306 <td>an array of channel positions. The number of members
307 in this array should be equal to the (fixed!) number
308 of the "channels" field in the given <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>.</td>
309 </tr>
310 </tbody>
311 </table></div>
312 </div>
313 <hr>
314 <div class="refsect2">
315 <a name="gst-audio-set-structure-channel-positions-list"></a><h3>gst_audio_set_structure_channel_positions_list ()</h3>
316 <pre class="programlisting"><span class="returnvalue">void</span>                gst_audio_set_structure_channel_positions_list
317                                                         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *str</code></em>,
318                                                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *pos</code></em>,
319                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num_positions</code></em>);</pre>
320 <p>
321 Sets a (possibly non-fixed) list of possible audio channel
322 positions (given in pos) on the given structure. The
323 structure, after this function has been called, will contain
324 a "channel-positions" field with an array of the size of
325 the "channels" field value in the given structure (note
326 that this means that the channels field in the provided
327 structure should be fixed!). Each value in the array will
328 contain each of the values given in the pos array.
329 </p>
330 <div class="variablelist"><table border="0">
331 <col align="left" valign="top">
332 <tbody>
333 <tr>
334 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
335 <td>
336 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> to set the list of channel positions
337 on.</td>
338 </tr>
339 <tr>
340 <td><p><span class="term"><em class="parameter"><code>pos</code></em> :</span></p></td>
341 <td>the array containing one or more possible audio
342 channel positions that we should add in each value
343 of the array in the given structure.</td>
344 </tr>
345 <tr>
346 <td><p><span class="term"><em class="parameter"><code>num_positions</code></em> :</span></p></td>
347 <td>the number of values in pos.</td>
348 </tr>
349 </tbody>
350 </table></div>
351 </div>
352 <hr>
353 <div class="refsect2">
354 <a name="gst-audio-check-channel-positions"></a><h3>gst_audio_check_channel_positions ()</h3>
355 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_check_channel_positions   (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *pos</code></em>,
356                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> channels</code></em>);</pre>
357 <p>
358 This functions checks if the given channel positions are valid. Channel
359 positions are valid if:
360 </p>
361 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
362 <li class="listitem"><p>No channel positions appears twice or all positions are <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-NONE:CAPS"><code class="literal">GST_AUDIO_CHANNEL_POSITION_NONE</code></a>.
363   </p></li>
364 <li class="listitem"><p>Either all or none of the channel positions are <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-NONE:CAPS"><code class="literal">GST_AUDIO_CHANNEL_POSITION_NONE</code></a>.
365   </p></li>
366 <li class="listitem"><p><a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-FRONT-MONO:CAPS"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_MONO</code></a> and <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT:CAPS"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT</code></a> or <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT:CAPS"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT</code></a> don't appear together in the given positions.
367   </p></li>
368 </ul></div>
369 <p>
370 </p>
371 <div class="variablelist"><table border="0">
372 <col align="left" valign="top">
373 <tbody>
374 <tr>
375 <td><p><span class="term"><em class="parameter"><code>pos</code></em> :</span></p></td>
376 <td>An array of <a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a>.</td>
377 </tr>
378 <tr>
379 <td><p><span class="term"><em class="parameter"><code>channels</code></em> :</span></p></td>
380 <td>The number of elements in <em class="parameter"><code>pos</code></em>.</td>
381 </tr>
382 <tr>
383 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
384 <td>
385 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the given channel positions are valid
386 and <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td>
387 </tr>
388 </tbody>
389 </table></div>
390 <p class="since">Since 0.10.20</p>
391 </div>
392 </div>
393 </div>
394 <div class="footer">
395 <hr>
396           Generated by GTK-Doc V1.17</div>
397 </body>
398 </html>