Update with proper markdown tables

Also install images
This commit is contained in:
Olivier Crête 2016-05-19 16:27:16 -04:00
parent 8074004a6d
commit 14b522efef
12 changed files with 65 additions and 107 deletions

View file

@ -451,26 +451,12 @@ start until you bring the pipeline to the PLAYING state. We will
introduce here the rest of states and their meaning. There are 4 states
in GStreamer:
<table>
<tbody>
<tr>
<td><p><code>NULL</p></td>
<td><p>the NULL state or initial state of an element.</p></td>
</tr>
<tr>
<td><p><code>READY</code></p></td>
<td><p>the element is ready to go to PAUSED.</p></td>
</tr>
<tr>
<td><p><code>PAUSED</code></p></td>
<td><p>the element is PAUSED, it is ready to accept and process data. Sink elements however only accept one buffer and then block.</p></td>
</tr>
<tr>
<td><p><code>PLAYING</code></p></td>
<td><p>the element is PLAYING, the clock is running and the data is flowing.</p></td>
</tr>
</tbody>
</table>
| State | Description |
|-----------|--------------------|
| `NULL` | the NULL state or initial state of an element. |
| `READY` | the element is ready to go to PAUSED. |
| `PAUSED` | the element is PAUSED, it is ready to accept and process data. Sink elements however only accept one buffer and then block. |
| `PLAYING` | the element is PLAYING, the clock is running and the data is flowing. |
You can only move between adjacent ones, this is, you can't go from NULL
to PLAYING, you have to go through the intermediate READY and PAUSED

View file

@ -84,7 +84,7 @@ in the SDK installation).
**basic-tutorial-7.c**
``` theme: Default; brush: cpp; gutter: true
```
#include <gst/gst.h>
int main(int argc, char *argv[]) {

View file

@ -332,29 +332,18 @@ int main(int argc, char *argv[]) {
}
```
<table>
<tbody>
<tr class="odd">
<td><img src="images/icons/emoticons/information.png" width="16" height="16" /></td>
<td><div id="expander-1760171459" class="expand-container">
<div id="expander-control-1760171459" class="expand-control">
<span class="expand-control-icon"><img src="images/icons/grey_arrow_down.gif" class="expand-control-image" /></span><span class="expand-control-text">Need help? (Click to expand)</span>
</div>
<div id="expander-content-1760171459" class="expand-content">
<p>If you need help to compile this code, refer to the <strong>Building the tutorials</strong> section for your platform: <a href="Installing+on+Linux.markdown#InstallingonLinux-Build">Linux</a>, <a href="Installing+on+Mac+OS+X.markdown#InstallingonMacOSX-Build">Mac OS X</a> or <a href="Installing+on+Windows.markdown#InstallingonWindows-Build">Windows</a>, or use this specific command on Linux:</p>
<div class="panel" style="border-width: 1px;">
<div class="panelContent">
<p><code>gcc basic-tutorial-8.c -o basic-tutorial-8 `pkg-config --cflags --libs gstreamer-1.0 gst-audio-1.0`</code></p>
</div>
</div>
<p>If you need help to run this code, refer to the <strong>Running the tutorials</strong> section for your platform: <a href="Installing+on+Linux.markdown#InstallingonLinux-Run">Linux</a>, <a href="Installing+on+Mac+OS+X.markdown#InstallingonMacOSX-Run">Mac OS X</a> or <a href="Installing+on+Windows.markdown#InstallingonWindows-Run">Windows</a></p>
<p><span>This tutorial plays an audible tone for varying frequency through the audio card and opens a window with a waveform representation of the tone. The waveform should be a sinusoid, but due to the refreshing of the window might not appear so.</span></p>
<p>Required libraries: <code>gstreamer-0.10</code></p>
</div>
</div></td>
</tr>
</tbody>
</table>
> ![Information](images/icons/emoticons/information.png)
> Need help?
>
> If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](Installing+on+Linux.markdown#InstallingonLinux-Build), [Mac OS X](Installing+on+Mac+OS+X.markdown#InstallingonMacOSX-Build) or [Windows](Installing+on+Windows.markdown#InstallingonWindows-Build), or use this specific command on Linux:
>
> `` gcc basic-tutorial-8.c -o basic-tutorial-8 `pkg-config --cflags --libs gstreamer-1.0 gst-audio-1.0` ``
>
>If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](Installing+on+Linux.markdown#InstallingonLinux-Run), [Mac OS X](Installing+on+Mac+OS+X.markdown#InstallingonMacOSX-Run) or [Windows](Installing+on+Windows.markdown#InstallingonWindows-Run).
>
> This tutorial plays an audible tone for varying frequency through the audio card and opens a window with a waveform representation of the tone. The waveform should be a sinusoid, but due to the refreshing of the window might not appear so.
>
> Required libraries: `gstreamer-1.0`
## Walkthrough
@ -366,7 +355,7 @@ Always Pads, and manually link the Request Pads of the `tee` element.
Regarding the configuration of the `appsrc` and `appsink` elements:
``` first-line: 159; theme: Default; brush: cpp; gutter: true
```
/* Configure appsrc */
audio_caps_text = g_strdup_printf (AUDIO_CAPS, SAMPLE_RATE);
audio_caps = gst_caps_from_string (audio_caps_text);
@ -387,7 +376,7 @@ fired by `appsrc` when its internal queue of data is running low or
almost full, respectively. We will use these signals to start and stop
(respectively) our signal generation process.
``` first-line: 166; theme: Default; brush: cpp; gutter: true
```
/* Configure appsink */
g_object_set (data.app_sink, "emit-signals", TRUE, "caps", audio_caps, NULL);
g_signal_connect (data.app_sink, "new-sample", G_CALLBACK (new_sample), &data);
@ -404,7 +393,7 @@ Starting the pipeline, waiting for messages and final cleanup is done as
usual. Let's review the callbacks we have just
registered:
``` first-line: 67; theme: Default; brush: cpp; gutter: true
```
/* This signal callback triggers when appsrc needs data. Here, we add an idle handler
* to the mainloop to start pushing data into the appsrc */
static void start_feed (GstElement *source, guint size, CustomData *data) {
@ -433,7 +422,7 @@ We take note of the sourceid that `g_idle_add()` returns, so we can
disable it
later.
``` first-line: 76; theme: Default; brush: cpp; gutter: true
```
/* This callback triggers when appsrc has enough data and we can stop sending.
* We remove the idle handler from the mainloop */
static void stop_feed (GstElement *source, CustomData *data) {
@ -450,7 +439,7 @@ enough so we stop pushing data. Here we simply remove the idle function
by using `g_source_remove()` (The idle function is implemented as a
`GSource`).
``` first-line: 22; theme: Default; brush: cpp; gutter: true
```
/* This method is called by the idle GSource in the mainloop, to feed CHUNK_SIZE bytes into appsrc.
* The ide handler is added to the mainloop when appsrc requests us to start sending data (need-data signal)
* and is removed when appsrc has enough data (enough-data signal).
@ -500,7 +489,7 @@ We will skip over the waveform generation, since it is outside the scope
of this tutorial (it is simply a funny way of generating a pretty
psychedelic wave).
``` first-line: 53; theme: Default; brush: cpp; gutter: true
```
/* Push the buffer into the appsrc */
g_signal_emit_by_name (data->app_source, "push-buffer", buffer, &ret);
@ -514,23 +503,23 @@ tutorial 1: Playbin2
usage](Playback+tutorial+1+Playbin2+usage.markdown)), and then
`gst_buffer_unref()` it since we no longer need it.
``` first-line: 86; theme: Default; brush: cpp; gutter: true
```
/* The appsink has received a buffer */
static void new_buffer (GstElement *sink, CustomData *data) {
GstBuffer *buffer;
static void new_sample (GstElement *sink, CustomData *data) {
GstSample *sample;
/* Retrieve the buffer */
g_signal_emit_by_name (sink, "pull-buffer", &buffer);
if (buffer) {
g_signal_emit_by_name (sink, "pull-sample", &sample);
if (sample) {
/* The only thing we do in this example is print a * to indicate a received buffer */
g_print ("*");
gst_buffer_unref (buffer);
gst_sample_unref (sample);
}
}
```
Finally, this is the function that gets called when the
`appsink` receives a buffer. We use the `pull-buffer` action signal to
`appsink` receives a buffer. We use the `pull-sample` action signal to
retrieve the buffer and then just print some indicator on the screen. We
can retrieve the data pointer using the `GST_BUFFER_DATA` macro and the
data size using the `GST_BUFFER_SIZE` macro in `GstBuffer`. Remember

View file

@ -9,6 +9,16 @@ Feel free to jump straight to the download section, start practicing
with the tutorials, or read the F.A.Q. if you dont know what this is
all about.
AA
![](attachments/2424851.png)
| test ![](attachments/2424851.png) bb | test2 |
|------|-------|
| aaa | bbb |
|------|-------|
<table>
<colgroup>
<col width="25%" />
@ -18,7 +28,7 @@ all about.
</colgroup>
<tbody>
<tr class="odd">
<td><a href="Installing%2Bthe%2BSDK.html"><img src="attachments/327688/2424851.png" class="confluence-embedded-image" /></a>
<td><a href="Installing%2Bthe%2BSDK.html"><img src="attachments/2424851.png" class="confluence-embedded-image" /></a>
<h3 id="Home-Download" style="text-align: center;margin-top: 0.0px;">Download</h3>
Download and install the GStreamer SDK</td>
<td><a href="Tutorials.html"><img src="attachments/327688/2424852.png" class="confluence-embedded-image" /></a>

View file

@ -282,47 +282,15 @@ GSTREAMER_PLUGINS := $(GSTREAMER_PLUGINS_CORE) $(GSTREAMER_PLUGINS_CODECS) play
#### List of categories and included plugins
<table>
<thead>
<tr>
<th>Category</th>
<th>Included plugins</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>GSTREAMER_PLUGINS_CORE</code></td>
<td>coreelements coreindexers adder app audioconvert audiorate audioresample audiotestsrc ffmpegcolorspace gdp gio pango typefindfunctions videorate videoscale videotestsrc volume autodetect videofilter</td>
</tr>
<tr>
<td><code>GSTREAMER_PLUGINS_PLAYBACK</code></td>
<td>decodebin playbin</td>
</tr>
<tr>
<td><code>GSTREAMER_PLUGINS_CODECS</code></td>
<td>subparse ogg theora vorbis alaw annodex apetag audioparsers auparse avi flac flv flxdec icydemux id3demux isomp4 jpeg matroska mulaw multipart png speex taglib wavenc wavpack wavparse y4menc adpcmdec adpcmenc aiff cdxaparse dtmf dvbsuboverlay dvdspu fragmented hdvparse id3tag ivfparse jp2k kate mve mxf nsf nuvdemux opus pcapparse pnm schro siren subenc tta videoparsersbad vmnc vp8 y4mdec</td>
</tr>
<tr>
<td><code>GSTREAMER_PLUGINS_VIS</code></td>
<td>libvisual goom goom2k1 audiovisualizers</td>
</tr>
<tr>
<td><code>GSTREAMER_PLUGINS_EFFECTS</code></td>
<td>alpha alphacolor audiofx cutter debug deinterlace effectv equalizer gdkpixbuf imagefreeze interleave level multifile replaygain shapewipe smpte spectrum videobox videocrop videomixer autoconvert bayer coloreffects faceoverlay fieldanalysis freeverb frei0r gaudieffects geometrictransform interlace jp2kdecimator liveadder rawparse removesilence scaletempoplugin segmentclip smooth speed stereo videofiltersbad videomeasure videosignal</td>
</tr>
<tr class="even">
<td><code>GSTREAMER_PLUGINS_NET</code></td>
<td>rtsp rtp rtpmanager souphttpsrc udp dataurisrc rtpmux rtpvp8 sdpelem</td>
</tr>
<tr class="odd">
<td><code>GSTREAMER_PLUGINS_CODECS_GPL</code></td>
<td>assrender</td>
</tr>
<tr class="even">
<td><code>GSTREAMER_PLUGINS_SYS</code></td>
<td>eglglessink opensles amc</td>
</tr>
</tbody>
</table>
| Category | Included plugins |
|--|--|
| `GSTREAMER_PLUGINS_CORE` | coreelements coreindexers adder app audioconvert audiorate audioresample audiotestsrc ffmpegcolorspace gdp gio pango typefindfunctions videorate videoscale videotestsrc volume autodetect videofilter |
| `GSTREAMER_PLUGINS_PLAYBACK` | decodebin playbin |
| `GSTREAMER_PLUGINS_CODECS` | subparse ogg theora vorbis alaw annodex apetag audioparsers auparse avi flac flv flxdec icydemux id3demux isomp4 jpeg matroska mulaw multipart png speex taglib wavenc wavpack wavparse y4menc adpcmdec adpcmenc aiff cdxaparse dtmf dvbsuboverlay dvdspu fragmented hdvparse id3tag ivfparse jp2k kate mve mxf nsf nuvdemux opus pcapparse pnm schro siren subenc tta videoparsersbad vmnc vp8 y4mdec |
| `GSTREAMER_PLUGINS_VIS` | libvisual goom goom2k1 audiovisualizers |
| `GSTREAMER_PLUGINS_EFFECTS` | alpha alphacolor audiofx cutter debug deinterlace effectv equalizer gdkpixbuf imagefreeze interleave level multifile replaygain shapewipe smpte spectrum videobox videocrop videomixer autoconvert bayer coloreffects faceoverlay fieldanalysis freeverb frei0r gaudieffects geometrictransform interlace jp2kdecimator liveadder rawparse removesilence scaletempoplugin segmentclip smooth speed stereo videofiltersbad videomeasure videosignal |
| `GSTREAMER_PLUGINS_NET` | rtsp rtp rtpmanager souphttpsrc udp dataurisrc rtpmux rtpvp8 sdpelem |
| `GSTREAMER_PLUGINS_CODECS_GPL` | assrender |
| `GSTREAMER_PLUGINS_SYS` | eglglessink opensles amc |
Build and run your application as explained in the **Building the tutorials** section.

View file

@ -2,6 +2,10 @@
### Choose your platform
| | |
|-|-|
| aa | bb |
<table>
<colgroup>
<col width="33%" />
@ -10,7 +14,7 @@
</colgroup>
<tbody>
<tr class="odd">
<td><p><a href="Installing%2Bon%2BLinux.html"><img src="attachments/1540162.png" class="confluence-embedded-image image-center" /></a></p>
<td><p><a href="Installing%2Bon%2BLinux.html"><img src="attachments/linux.png" class="confluence-embedded-image image-center" /></a></p>
<h3 id="InstallingtheSDK-Linux" style="text-align: center;">Linux</h3>
<ul>
<li>Ubuntu 12.04 (Precise Pangolin)</li>
@ -21,7 +25,7 @@
<li>Fedora 17</li>
</ul>
<p><span style="color: rgb(255,255,255);">______________________________________</span></p></td>
<td><p><a href="Installing%2Bon%2BMac%2BOS%2BX.html"><img src="attachments/1540163.png" class="confluence-embedded-image image-center" /></a></p>
<td><p><a href="Installing%2Bon%2BMac%2BOS%2BX.html"><img src="attachments/mac.png" class="confluence-embedded-image image-center" /></a></p>
<h3 id="InstallingtheSDK-MacOSX" style="text-align: center;">Mac OS X</h3>
<ul>
<li>10.6 (Snow Leopard)</li>
@ -29,7 +33,7 @@
<li>10.8 (Mountain Lion)</li>
</ul>
<p><span style="color: rgb(255,255,255);">______________________________________</span></p></td>
<td><p><a href="Installing%2Bon%2BWindows.html"><img src="attachments/1540164.png" class="confluence-embedded-image image-center" /></a></p>
<td><p><a href="Installing%2Bon%2BWindows.html"><img src="attachments/windows.png" class="confluence-embedded-image image-center" /></a></p>
<h3 id="InstallingtheSDK-MicrosoftWindows" style="text-align: center;">Microsoft Windows</h3>
<ul>
<li>Windows XP</li>
@ -53,7 +57,7 @@
</colgroup>
<tbody>
<tr class="odd">
<td><p><a href="Installing%2Bfor%2BAndroid%2Bdevelopment.html"><img src="attachments/2654239.png" class="confluence-embedded-image image-center" /></a></p>
<td><p><a href="Installing%2Bfor%2BAndroid%2Bdevelopment.html"><img src="attachments/android.png" class="confluence-embedded-image image-center" /></a></p>
<h3 id="InstallingtheSDK-Android" style="text-align: center;">Android</h3>
<ul>
<li>2.3.1 Gingerbread and above</li>
@ -63,7 +67,7 @@
<span style="color: rgb(255,255,255);"><br />
</span>
</div></td>
<td><p><a href="Installing%2Bfor%2BiOS%2Bdevelopment.html"><img src="attachments/3539150.jpeg" class="confluence-embedded-image image-center" /></a></p>
<td><p><a href="Installing%2Bfor%2BiOS%2Bdevelopment.html"><img src="attachments/ios.jpeg" class="confluence-embedded-image image-center" /></a></p>
<h3 id="InstallingtheSDK-iOS" style="text-align: center;">iOS</h3>
<ul>
<li>iOS 6 and above</li>

View file

Before

Width:  |  Height:  |  Size: 5 KiB

After

Width:  |  Height:  |  Size: 5 KiB

View file

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

View file

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View file

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

View file

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View file

@ -4,5 +4,6 @@
"index": "Home.markdown",
"output": "built_doc",
"project_name": "gstdotcom",
"sitemap": "sitemap.txt"
}
"sitemap": "sitemap.txt",
"extra_assets": ["attachments", "images"]
}