Update theme submodule
[platform/upstream/gstreamer.git] / markdown / tutorials / index.md
1 ---
2 short-description: Learn how to use GStreamer
3 ...
4
5 # Tutorials
6
7 ## Welcome to the GStreamer Tutorials!
8
9 The following sections introduce a series of tutorials designed to help
10 you learn how to use GStreamer, the multi-platform, modular,
11 open-source, media streaming framework.
12
13 ### Prerequisites
14
15 Before following these tutorials, you need to set up your development
16 environment according to your platform. If you have not done so yet, go
17 to the [installing GStreamer] page and come back here afterwards.
18
19 The tutorials are currently written only in the C programming language,
20 so you need to be comfortable with it. Even though C is not an
21 Object-Oriented (OO) language per se, the GStreamer framework uses
22 `GObject`s, so some knowledge of OO concepts will come in handy.
23 Knowledge of the `GObject` and `GLib` libraries is not mandatory, but
24 will make the trip easier.
25
26 ### Source code
27
28 Every tutorial represents a self-contained project, with full source
29 code in C (and eventually in other languages too). Source code
30 snippets are introduced alongside the text, and the full code (with
31 any other required files like makefiles or project files) is
32 distributed with GStreamer, as explained in the installation
33 instructions.
34
35 ### A short note on GObject and GLib
36
37 GStreamer is built on top of the `GObject` (for object orientation) and
38 `GLib` (for common algorithms) libraries, which means that every now and
39 then you will have to call functions of these libraries. Even though the
40 tutorials will make sure that deep knowledge of these libraries is not
41 required, familiarity with them will certainly ease the process of
42 learning GStreamer.
43
44 You can always tell which library you are calling because all GStreamer
45 functions, structures and types have the `gst_` prefix, whereas GLib and
46 GObject use `g_`.
47
48 ### Sources of documentation
49
50 You have the `GObject` and `GLib` reference guides, and, of course the
51 upstream [GStreamer documentation].
52
53 ### Structure
54
55 The tutorials are organized in sections, revolving about a common theme:
56
57 -   [Basic tutorials]: Describe general topics required to understand
58     the rest of tutorials in GStreamer.
59 -   [Playback tutorials]: Explain everything you need to know to produce
60     a media playback application using GStreamer.
61 -   [Android tutorials]: Tutorials dealing with the few Android-specific
62     topics you need to know.
63 -   [iOS tutorials]: Tutorials dealing with the few iOS-specific topics
64     you need to know.
65
66 If you cannot remember in which tutorial a certain GStreamer concept is
67 explained, use the following:
68
69 -   [Table of Concepts]
70
71 ### Sample media
72
73 The audio and video clips used throughout these tutorials are all
74 publicly available and the copyright remains with their respective
75 authors. In some cases they have been re-encoded for demonstration
76 purposes.
77
78 -   [Sintel, the Durian Open Movie Project]
79
80   [installing GStreamer]: installing/index.md
81   [GStreamer documentation]: http://gstreamer.freedesktop.org/documentation/
82   [Basic tutorials]: tutorials/basic/index.md
83   [Playback tutorials]: tutorials/playback/index.md
84   [Android tutorials]: tutorials/android/index.md
85   [iOS tutorials]: tutorials/ios/index.md
86   [Table of Concepts]: tutorials/table-of-concepts.md
87   [Sintel, the Durian Open Movie Project]: http://www.sintel.org/