summaryrefslogtreecommitdiff
path: root/examples/examples.dox
blob: e7fb4a3653665d6a9814bafa7214264f1b77989c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/*
    Copyright (C) 2011 Collabora Ltd.
      @author George Kiagiadakis <george.kiagiadakis@collabora.co.uk>

    This library is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published
    by the Free Software Foundation; either version 2.1 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

/*! \example player/main.cpp
 * This is an example audio player using QtGStreamer
 */

/*! \example appsink-src/main.cpp
 * This example demonstrates how to use QGst::Utils::ApplicationSource and
 * QGst::Utils::ApplicationSink to create a custom source and sink respectively.
 *
 * In this example, we have two pipelines, one pipeline that gets data from a file,
 * decodes the audio stream and sends the audio buffers to appsink, and a second
 * pipeline that gets data from appsrc and pushes them to an audio sink. Appsink
 * from the first pipeline is linked with appsrc from the second pipeline in our
 * code, by listening to appsink's newBuffer() signal, getting the buffer
 * and pushing it to appsrc with the pushBuffer() method. The result is a choppy
 * audio player.
 */

/*! \example recorder/main.cpp
 * This is a recording application that takes audio from a microphone
 * and video from either a camera or the X11 screen, encodes them with
 * theora and speex and saves the result in a file.
 *
 * The intention of this example is to show how simple it is to perform such
 * complex tasks with GStreamer and how easy it is to change the functionality
 * of the program by changing just one element (with autovideosrc it will
 * do a webcam recording, but with ximagesrc it will do a screencast).
 *
 * Tasks demonstrated in this example include:
 * \li How to create and link elements manually.
 * \li How to create and link elements using a pipeline description.
 * \li How to use the QGst::PropertyProbe interface.
 * \li How to handle bus messages.
 * \li Others...
 */