~ubuntu-branches/ubuntu/quantal/linphone/quantal

« back to all changes in this revision

Viewing changes to developer-docs/mediastreamer/html/mediastreamer-filters.html

  • Committer: Bazaar Package Importer
  • Author(s): Samuel Mimram
  • Date: 2004-06-30 13:58:16 UTC
  • Revision ID: james.westby@ubuntu.com-20040630135816-wwx75gdlodkqbabb
Tags: upstream-0.12.2
ImportĀ upstreamĀ versionĀ 0.12.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
2
<HTML
 
3
><HEAD
 
4
><TITLE
 
5
>MSFilters</TITLE
 
6
><META
 
7
NAME="GENERATOR"
 
8
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
 
9
REL="HOME"
 
10
TITLE="Mediastreamer Reference Guide"
 
11
HREF="book1.html"><LINK
 
12
REL="UP"
 
13
TITLE="Core API"
 
14
HREF="coreapi.html"><LINK
 
15
REL="PREVIOUS"
 
16
TITLE="MSSync"
 
17
HREF="mediastreamer-mssync.html"><LINK
 
18
REL="NEXT"
 
19
TITLE="MSFilter implementations"
 
20
HREF="msfilterimplementations.html"><STYLE
 
21
TYPE="text/css"
 
22
>.synopsis, .classsynopsis {
 
23
    background: #eeeeee;
 
24
    border: solid 1px #aaaaaa;
 
25
    padding: 0.5em;
 
26
}
 
27
.programlisting {
 
28
    background: #eeeeff;
 
29
    border: solid 1px #aaaaff;
 
30
    padding: 0.5em;
 
31
}
 
32
.variablelist {
 
33
    padding: 4px;
 
34
    margin-left: 3em;
 
35
}
 
36
.navigation {
 
37
    background: #ffeeee;
 
38
    border: solid 1px #ffaaaa;
 
39
    margin-top: 0.5em;
 
40
    margin-bottom: 0.5em;
 
41
}
 
42
.navigation a {
 
43
    color: #770000;
 
44
}
 
45
.navigation a:visited {
 
46
    color: #550000;
 
47
}
 
48
.navigation .title {
 
49
    font-size: 200%;
 
50
}</STYLE
 
51
></HEAD
 
52
><BODY
 
53
CLASS="REFENTRY"
 
54
BGCOLOR="#FFFFFF"
 
55
TEXT="#000000"
 
56
LINK="#0000FF"
 
57
VLINK="#840084"
 
58
ALINK="#0000FF"
 
59
><TABLE
 
60
WIDTH="100%"
 
61
CLASS="navigation"
 
62
SUMMARY="Navigation header"
 
63
CELLPADDING="2"
 
64
CELLSPACING="2"
 
65
><TR
 
66
VALIGN="middle"
 
67
><TD
 
68
><A
 
69
ACCESSKEY="p"
 
70
HREF="mediastreamer-mssync.html"
 
71
><IMG
 
72
SRC="left.png"
 
73
WIDTH="24"
 
74
HEIGHT="24"
 
75
BORDER="0"
 
76
ALT="Prev"></A
 
77
></TD
 
78
><TD
 
79
><A
 
80
ACCESSKEY="u"
 
81
HREF="coreapi.html"
 
82
><IMG
 
83
SRC="up.png"
 
84
WIDTH="24"
 
85
HEIGHT="24"
 
86
BORDER="0"
 
87
ALT="Up"></A
 
88
></TD
 
89
><TD
 
90
><A
 
91
ACCESSKEY="h"
 
92
HREF="book1.html"
 
93
><IMG
 
94
SRC="home.png"
 
95
WIDTH="24"
 
96
HEIGHT="24"
 
97
BORDER="0"
 
98
ALT="Home"></A
 
99
></TD
 
100
><TH
 
101
WIDTH="100%"
 
102
align="center"
 
103
>Mediastreamer Reference Guide</TH
 
104
><TD
 
105
><A
 
106
ACCESSKEY="n"
 
107
HREF="msfilterimplementations.html"
 
108
><IMG
 
109
SRC="right.png"
 
110
WIDTH="24"
 
111
HEIGHT="24"
 
112
BORDER="0"
 
113
ALT="Next"></A
 
114
></TD
 
115
></TR
 
116
></TABLE
 
117
><H1
 
118
><A
 
119
NAME="MEDIASTREAMER-FILTERS"
 
120
></A
 
121
>MSFilters</H1
 
122
><DIV
 
123
CLASS="REFNAMEDIV"
 
124
><A
 
125
NAME="AEN145"
 
126
></A
 
127
><H2
 
128
>Name</H2
 
129
>MSFilters&nbsp;--&nbsp;The basic mediastreamer element.</DIV
 
130
><DIV
 
131
CLASS="REFSYNOPSISDIV"
 
132
><A
 
133
NAME="AEN148"
 
134
></A
 
135
><H2
 
136
>Synopsis</H2
 
137
><PRE
 
138
CLASS="SYNOPSIS"
 
139
>&#13;#include &lt;msfilter.h&gt;
 
140
 
 
141
 
 
142
struct      <A
 
143
HREF="mediastreamer-filters.html#MSFILTER"
 
144
>MSFilter</A
 
145
>;
 
146
int         <A
 
147
HREF="mediastreamer-filters.html#MS-FILTER-ADD-LINK"
 
148
>ms_filter_add_link</A
 
149
>              (<A
 
150
HREF="mediastreamer-filters.html#MSFILTER"
 
151
>MSFilter</A
 
152
> *m1,
 
153
                                             <A
 
154
HREF="mediastreamer-filters.html#MSFILTER"
 
155
>MSFilter</A
 
156
> *m2);</PRE
 
157
></DIV
 
158
><DIV
 
159
CLASS="REFSECT1"
 
160
><A
 
161
NAME="AEN155"
 
162
></A
 
163
><H2
 
164
>Description</H2
 
165
><P
 
166
>MSFilter is the base class for all mediastreamer processing filters: codec compression, soundcard read, souncard write, etc...
 
167
MSFilter objects have to be linked between them to form a processing chain, that is then attached to a MSSync object (synchronisation source)
 
168
in order to be scheduled for processing.</P
 
169
></DIV
 
170
><DIV
 
171
CLASS="REFSECT1"
 
172
><A
 
173
NAME="AEN158"
 
174
></A
 
175
><H2
 
176
>Details</H2
 
177
><DIV
 
178
CLASS="REFSECT2"
 
179
><A
 
180
NAME="AEN160"
 
181
></A
 
182
><H3
 
183
><A
 
184
NAME="MSFILTER"
 
185
></A
 
186
>struct MSFilter</H3
 
187
><PRE
 
188
CLASS="PROGRAMLISTING"
 
189
>struct MSFilter {
 
190
 
 
191
        struct _MSFilterClass *klass;
 
192
        GMutex *lock;
 
193
        guchar finputs;   /* number of connected fifo inputs*/
 
194
        guchar foutputs;  /* number of connected fifo outputs*/
 
195
        guchar qinputs;   /* number of connected queue inputs*/
 
196
        guchar qoutputs;  /* number of connected queue outputs*/
 
197
        gint min_fifo_size; /* set when linking*/
 
198
        gint r_mingran;                         /* read minimum granularity (for fifos).
 
199
                                        It can be zero so that the filter can accept any size of reading data*/
 
200
        MSFifo **infifos; /*pointer to a table of pointer to input fifos*/
 
201
        MSFifo **outfifos;  /*pointer to a table of pointer to output fifos*/
 
202
        MSQueue **inqueues;  /*pointer to a table of pointer to input queues*/
 
203
        MSQueue **outqueues;  /*pointer to a table of pointer to output queues*/
 
204
        MSFilterNotifyFunc notify_event;
 
205
        gpointer userdata;
 
206
};</PRE
 
207
><P
 
208
>Only programmers implementing derivated objects of MSFilter are interested by the content of the structure.</P
 
209
><P
 
210
></P
 
211
><TABLE
 
212
CLASS="variablelist"
 
213
BORDER="0"
 
214
CELLSPACING="0"
 
215
CELLPADDING="4"
 
216
><TBODY
 
217
><TR
 
218
><TD
 
219
ALIGN="LEFT"
 
220
VALIGN="TOP"
 
221
><A
 
222
NAME="AEN166"><SPAN
 
223
STYLE="white-space: nowrap"
 
224
>struct _MSFilterClass *<CODE
 
225
CLASS="STRUCTFIELD"
 
226
>klass</CODE
 
227
></SPAN
 
228
></TD
 
229
><TD
 
230
ALIGN="LEFT"
 
231
VALIGN="TOP"
 
232
><P
 
233
>Pointer to the class structure.</P
 
234
></TD
 
235
></TR
 
236
><TR
 
237
><TD
 
238
ALIGN="LEFT"
 
239
VALIGN="TOP"
 
240
><A
 
241
NAME="AEN172"><SPAN
 
242
STYLE="white-space: nowrap"
 
243
>GMutex *<CODE
 
244
CLASS="STRUCTFIELD"
 
245
>lock</CODE
 
246
></SPAN
 
247
></TD
 
248
><TD
 
249
ALIGN="LEFT"
 
250
VALIGN="TOP"
 
251
><P
 
252
></P
 
253
></TD
 
254
></TR
 
255
><TR
 
256
><TD
 
257
ALIGN="LEFT"
 
258
VALIGN="TOP"
 
259
><A
 
260
NAME="AEN178"><SPAN
 
261
STYLE="white-space: nowrap"
 
262
>guchar <CODE
 
263
CLASS="STRUCTFIELD"
 
264
>finputs</CODE
 
265
></SPAN
 
266
></TD
 
267
><TD
 
268
ALIGN="LEFT"
 
269
VALIGN="TOP"
 
270
><P
 
271
> Number of fifo inputs currently in use.</P
 
272
></TD
 
273
></TR
 
274
><TR
 
275
><TD
 
276
ALIGN="LEFT"
 
277
VALIGN="TOP"
 
278
><A
 
279
NAME="AEN184"><SPAN
 
280
STYLE="white-space: nowrap"
 
281
>guchar <CODE
 
282
CLASS="STRUCTFIELD"
 
283
>foutputs</CODE
 
284
></SPAN
 
285
></TD
 
286
><TD
 
287
ALIGN="LEFT"
 
288
VALIGN="TOP"
 
289
><P
 
290
> Number of fifo outputs currently in use.</P
 
291
></TD
 
292
></TR
 
293
><TR
 
294
><TD
 
295
ALIGN="LEFT"
 
296
VALIGN="TOP"
 
297
><A
 
298
NAME="AEN190"><SPAN
 
299
STYLE="white-space: nowrap"
 
300
>guchar <CODE
 
301
CLASS="STRUCTFIELD"
 
302
>qinputs</CODE
 
303
></SPAN
 
304
></TD
 
305
><TD
 
306
ALIGN="LEFT"
 
307
VALIGN="TOP"
 
308
><P
 
309
>  Number of queue inputs currently in use.</P
 
310
></TD
 
311
></TR
 
312
><TR
 
313
><TD
 
314
ALIGN="LEFT"
 
315
VALIGN="TOP"
 
316
><A
 
317
NAME="AEN196"><SPAN
 
318
STYLE="white-space: nowrap"
 
319
>guchar <CODE
 
320
CLASS="STRUCTFIELD"
 
321
>qoutputs</CODE
 
322
></SPAN
 
323
></TD
 
324
><TD
 
325
ALIGN="LEFT"
 
326
VALIGN="TOP"
 
327
><P
 
328
> Number of queue outputs currently in use.</P
 
329
></TD
 
330
></TR
 
331
><TR
 
332
><TD
 
333
ALIGN="LEFT"
 
334
VALIGN="TOP"
 
335
><A
 
336
NAME="AEN202"><SPAN
 
337
STYLE="white-space: nowrap"
 
338
>gint <CODE
 
339
CLASS="STRUCTFIELD"
 
340
>min_fifo_size</CODE
 
341
></SPAN
 
342
></TD
 
343
><TD
 
344
ALIGN="LEFT"
 
345
VALIGN="TOP"
 
346
><P
 
347
></P
 
348
></TD
 
349
></TR
 
350
><TR
 
351
><TD
 
352
ALIGN="LEFT"
 
353
VALIGN="TOP"
 
354
><A
 
355
NAME="AEN208"><SPAN
 
356
STYLE="white-space: nowrap"
 
357
>gint <CODE
 
358
CLASS="STRUCTFIELD"
 
359
>r_mingran</CODE
 
360
></SPAN
 
361
></TD
 
362
><TD
 
363
ALIGN="LEFT"
 
364
VALIGN="TOP"
 
365
><P
 
366
></P
 
367
></TD
 
368
></TR
 
369
><TR
 
370
><TD
 
371
ALIGN="LEFT"
 
372
VALIGN="TOP"
 
373
><A
 
374
NAME="AEN214"><SPAN
 
375
STYLE="white-space: nowrap"
 
376
>MSFifo **<CODE
 
377
CLASS="STRUCTFIELD"
 
378
>infifos</CODE
 
379
></SPAN
 
380
></TD
 
381
><TD
 
382
ALIGN="LEFT"
 
383
VALIGN="TOP"
 
384
><P
 
385
>  Pointer to a table of fifo inputs</P
 
386
></TD
 
387
></TR
 
388
><TR
 
389
><TD
 
390
ALIGN="LEFT"
 
391
VALIGN="TOP"
 
392
><A
 
393
NAME="AEN220"><SPAN
 
394
STYLE="white-space: nowrap"
 
395
>MSFifo **<CODE
 
396
CLASS="STRUCTFIELD"
 
397
>outfifos</CODE
 
398
></SPAN
 
399
></TD
 
400
><TD
 
401
ALIGN="LEFT"
 
402
VALIGN="TOP"
 
403
><P
 
404
> Pointer to a table of ffo ouputs</P
 
405
></TD
 
406
></TR
 
407
><TR
 
408
><TD
 
409
ALIGN="LEFT"
 
410
VALIGN="TOP"
 
411
><A
 
412
NAME="AEN226"><SPAN
 
413
STYLE="white-space: nowrap"
 
414
>MSQueue **<CODE
 
415
CLASS="STRUCTFIELD"
 
416
>inqueues</CODE
 
417
></SPAN
 
418
></TD
 
419
><TD
 
420
ALIGN="LEFT"
 
421
VALIGN="TOP"
 
422
><P
 
423
> Pointer to a table of queue inputs</P
 
424
></TD
 
425
></TR
 
426
><TR
 
427
><TD
 
428
ALIGN="LEFT"
 
429
VALIGN="TOP"
 
430
><A
 
431
NAME="AEN232"><SPAN
 
432
STYLE="white-space: nowrap"
 
433
>MSQueue **<CODE
 
434
CLASS="STRUCTFIELD"
 
435
>outqueues</CODE
 
436
></SPAN
 
437
></TD
 
438
><TD
 
439
ALIGN="LEFT"
 
440
VALIGN="TOP"
 
441
><P
 
442
>Pointer to a table of queue qoutputs</P
 
443
></TD
 
444
></TR
 
445
><TR
 
446
><TD
 
447
ALIGN="LEFT"
 
448
VALIGN="TOP"
 
449
><A
 
450
NAME="AEN238"><SPAN
 
451
STYLE="white-space: nowrap"
 
452
>MSFilterNotifyFunc <CODE
 
453
CLASS="STRUCTFIELD"
 
454
>notify_event</CODE
 
455
></SPAN
 
456
></TD
 
457
><TD
 
458
ALIGN="LEFT"
 
459
VALIGN="TOP"
 
460
><P
 
461
></P
 
462
></TD
 
463
></TR
 
464
><TR
 
465
><TD
 
466
ALIGN="LEFT"
 
467
VALIGN="TOP"
 
468
><A
 
469
NAME="AEN244"><SPAN
 
470
STYLE="white-space: nowrap"
 
471
>gpointer <CODE
 
472
CLASS="STRUCTFIELD"
 
473
>userdata</CODE
 
474
></SPAN
 
475
></TD
 
476
><TD
 
477
ALIGN="LEFT"
 
478
VALIGN="TOP"
 
479
><P
 
480
></P
 
481
></TD
 
482
></TR
 
483
></TBODY
 
484
></TABLE
 
485
></DIV
 
486
><HR><DIV
 
487
CLASS="REFSECT2"
 
488
><A
 
489
NAME="AEN250"
 
490
></A
 
491
><H3
 
492
><A
 
493
NAME="MS-FILTER-ADD-LINK"
 
494
></A
 
495
>ms_filter_add_link ()</H3
 
496
><PRE
 
497
CLASS="PROGRAMLISTING"
 
498
>int         ms_filter_add_link              (<A
 
499
HREF="mediastreamer-filters.html#MSFILTER"
 
500
>MSFilter</A
 
501
> *m1,
 
502
                                             <A
 
503
HREF="mediastreamer-filters.html#MSFILTER"
 
504
>MSFilter</A
 
505
> *m2);</PRE
 
506
><P
 
507
></P
 
508
><P
 
509
></P
 
510
><TABLE
 
511
CLASS="variablelist"
 
512
BORDER="0"
 
513
CELLSPACING="0"
 
514
CELLPADDING="4"
 
515
><TBODY
 
516
><TR
 
517
><TD
 
518
ALIGN="LEFT"
 
519
VALIGN="TOP"
 
520
><A
 
521
NAME="AEN258"><SPAN
 
522
STYLE="white-space: nowrap"
 
523
><VAR
 
524
CLASS="PARAMETER"
 
525
>m1</VAR
 
526
>&nbsp;:</SPAN
 
527
></TD
 
528
><TD
 
529
ALIGN="LEFT"
 
530
VALIGN="TOP"
 
531
><P
 
532
></P
 
533
></TD
 
534
></TR
 
535
><TR
 
536
><TD
 
537
ALIGN="LEFT"
 
538
VALIGN="TOP"
 
539
><A
 
540
NAME="AEN263"><SPAN
 
541
STYLE="white-space: nowrap"
 
542
><VAR
 
543
CLASS="PARAMETER"
 
544
>m2</VAR
 
545
>&nbsp;:</SPAN
 
546
></TD
 
547
><TD
 
548
ALIGN="LEFT"
 
549
VALIGN="TOP"
 
550
><P
 
551
></P
 
552
></TD
 
553
></TR
 
554
><TR
 
555
><TD
 
556
ALIGN="LEFT"
 
557
VALIGN="TOP"
 
558
><A
 
559
NAME="AEN268"><SPAN
 
560
STYLE="white-space: nowrap"
 
561
><SPAN
 
562
CLASS="emphasis"
 
563
><I
 
564
CLASS="EMPHASIS"
 
565
>Returns</I
 
566
></SPAN
 
567
> :</SPAN
 
568
></TD
 
569
><TD
 
570
ALIGN="LEFT"
 
571
VALIGN="TOP"
 
572
><P
 
573
></P
 
574
></TD
 
575
></TR
 
576
></TBODY
 
577
></TABLE
 
578
></DIV
 
579
></DIV
 
580
><TABLE
 
581
CLASS="navigation"
 
582
WIDTH="100%"
 
583
SUMMARY="Navigation footer"
 
584
CELLPADDING="2"
 
585
CELLSPACING="2"
 
586
><TR
 
587
VALIGN="middle"
 
588
><TD
 
589
ALIGN="left"
 
590
><A
 
591
ACCESSKEY="p"
 
592
HREF="mediastreamer-mssync.html"
 
593
><B
 
594
>&lt;&lt;&lt;&nbsp;MSSync</B
 
595
></A
 
596
></TD
 
597
><TD
 
598
ALIGN="right"
 
599
><A
 
600
ACCESSKEY="n"
 
601
HREF="msfilterimplementations.html"
 
602
><B
 
603
>MSFilter implementations&nbsp;&gt;&gt;&gt;</B
 
604
></A
 
605
></TD
 
606
></TR
 
607
></TABLE
 
608
></BODY
 
609
></HTML
 
610
>
 
 
b'\\ No newline at end of file'