Remove all reference to the SDK in pages names

This commit is contained in:
Thibault Saunier 2016-10-21 10:23:28 -03:00
parent cd3a242aa1
commit 09d6b9fff3
72 changed files with 281 additions and 281 deletions

10
TODO.md
View File

@ -5,13 +5,13 @@ gstreamer.com content to hotdoc
Pages to review: Pages to review:
- [installing] - [installing]
- sdk-installing-on-windows.md - installing-on-windows.md
For-later pages: For-later pages:
- sdk-qt-tutorials.md [tpm: this should all be rewritten from scratch with qmlglsink; QtGStreamer is outdated and unmaintained, we should not promote it] - tutorial-qt-tutorials.md [tpm: this should all be rewritten from scratch with qmlglsink; QtGStreamer is outdated and unmaintained, we should not promote it]
- sdk-basic-media-player.md - basic-media-player.md
- sdk-qt-gstreamer-vs-c-gstreamer.md - qt-gstreamer-vs-c-gstreamer.md
- sdk-using-appsink-appsrc-in-qt.md - using-appsink-appsrc-in-qt.md
Deleted pages: Deleted pages:

View File

@ -238,4 +238,4 @@ To cross compile for iOS from OS X, use the configuration file
[Windows Driver Kit 7.1.0]: http://msdn.microsoft.com/en-us/windows/hardware/hh852365 [Windows Driver Kit 7.1.0]: http://msdn.microsoft.com/en-us/windows/hardware/hh852365
[XCode]: https://developer.apple.com/devcenter/ios/index.action#downloads [XCode]: https://developer.apple.com/devcenter/ios/index.action#downloads
[here]: http://www.freedesktop.org/software/gstreamer-sdk/cerbero.cbc.template [here]: http://www.freedesktop.org/software/gstreamer-sdk/cerbero.cbc.template
[Installing GStreamer]: sdk-installing.md [Installing GStreamer]: installing.md

View File

@ -1,7 +1,7 @@
# Mac OS X deployment # Mac OS X deployment
This page explains how to deploy GStreamer along your application. There This page explains how to deploy GStreamer along your application. There
are different mechanisms, which have been reviewed in [](sdk-deploying-your-application.md). The details for some are different mechanisms, which have been reviewed in [](deploying-your-application.md). The details for some
of the mechanisms are given here, and more options might be added to of the mechanisms are given here, and more options might be added to
this documentation in the future. this documentation in the future.
@ -17,7 +17,7 @@ are somewhat blurred.
With PackageMaker, simply add GStreamer **runtime ** disk image With PackageMaker, simply add GStreamer **runtime ** disk image
([the same one you used to install the runtime in your development ([the same one you used to install the runtime in your development
machine](sdk-installing-on-mac-osx.md)) inside your installer machine](installing-on-mac-osx.md)) inside your installer
package and create a post-install script that mounts the disk image and package and create a post-install script that mounts the disk image and
installs GStreamer package. You can use the following example, where you installs GStreamer package. You can use the following example, where you
should replace `$INSTALL_PATH` with the path where your installer copied should replace `$INSTALL_PATH` with the path where your installer copied

View File

@ -12,11 +12,11 @@ add a recipe explaining how to build you application and make it depend
on the `gstreamer-sdk` project. Then Cerbero can take care of building on the `gstreamer-sdk` project. Then Cerbero can take care of building
your application and its dependencies and package them all together. your application and its dependencies and package them all together.
Read [](sdk-building-from-source-using-cerbero.md) to learn how Read [](building-from-source-using-cerbero.md) to learn how
to install and use Cerbero. to install and use Cerbero.
At this point, after reading the Build from source section in At this point, after reading the Build from source section in
[](sdk-building-from-source-using-cerbero.md), you should be able to [](building-from-source-using-cerbero.md), you should be able to
build GStreamer from source and are ready to create recipe and package build GStreamer from source and are ready to create recipe and package
files for your application. files for your application.
@ -115,7 +115,7 @@ class Recipe(recipe.Recipe):
Cerbero gets the software sources to build from a GIT repository, which Cerbero gets the software sources to build from a GIT repository, which
is specified via the `git_root` configuration variable from the Cerbero is specified via the `git_root` configuration variable from the Cerbero
configuration file (see the "Build from software" section in [Installing configuration file (see the "Build from software" section in [Installing
on Linux](sdk-installing-on-linux.md)) and can be overridden by the on Linux](installing-on-linux.md)) and can be overridden by the
`remotes` attribute inside the recipes (if setting the `origin` remote). `remotes` attribute inside the recipes (if setting the `origin` remote).
In this case where no “commit” attribute is specified, Cerbero will use In this case where no “commit” attribute is specified, Cerbero will use
the commit named “sdk-0.2+git” from the GIT repository when building the commit named “sdk-0.2+git” from the GIT repository when building

View File

@ -2,7 +2,7 @@
This page explains how to deploy GStreamer along your This page explains how to deploy GStreamer along your
application. There are different mechanisms, which have been reviewed application. There are different mechanisms, which have been reviewed
in [](sdk-deploying-your-application.md). The details for some of the in [](deploying-your-application.md). The details for some of the
mechanisms are given here, and more options might be added to this mechanisms are given here, and more options might be added to this
documentation in the future. documentation in the future.
@ -15,7 +15,7 @@ among all applications that use it, though, the extra space requirements
are somewhat blurred. are somewhat blurred.
Simply pack GStreamer **runtime** installer ([the same one you Simply pack GStreamer **runtime** installer ([the same one you
installed in your development machine](sdk-installing-on-windows.md)) installed in your development machine](installing-on-windows.md))
inside your installer (or download it from your installer) and execute inside your installer (or download it from your installer) and execute
it silently using `msiexec`. `msiexec` is the tool that wraps most of it silently using `msiexec`. `msiexec` is the tool that wraps most of
the Windows Installer functionality and offers a number of options to the Windows Installer functionality and offers a number of options to

View File

@ -122,7 +122,7 @@ The following pages give further directions for some of the above
options. options.
- Platform-specific packaging methods: - Platform-specific packaging methods:
- For [Mac OS X](sdk-mac-osx-deployment.md) - For [Mac OS X](deploying-mac-osx.md)
- For [Windows](sdk-windows-deployment.md) - For [Windows](deploying-windows.md)
- [Multiplatform deployment using - [Multiplatform deployment using
Cerbero](sdk-multiplatform-deployment-using-cerbero.md) Cerbero](deploying-multiplatform-using-cerbero.md)

View File

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 89 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View File

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 115 KiB

View File

Before

Width:  |  Height:  |  Size: 159 KiB

After

Width:  |  Height:  |  Size: 159 KiB

View File

Before

Width:  |  Height:  |  Size: 211 KiB

After

Width:  |  Height:  |  Size: 211 KiB

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

View File

@ -293,7 +293,7 @@ and used as follows:
| `GSTREAMER_PLUGINS_ENCODING` | encodebin | | `GSTREAMER_PLUGINS_ENCODING` | encodebin |
| `GSTREAMER_PLUGINS_GES` | nle | | `GSTREAMER_PLUGINS_GES` | nle |
Build and run your application as explained in the [Building the tutorial](sdk-installing-for-android-development.md#building-the-tutorials) section. Build and run your application as explained in the [Building the tutorial](installing-for-android-development.md#building-the-tutorials) section.
[information]: images/icons/emoticons/information.png [information]: images/icons/emoticons/information.png
[Android SDK]: http://developer.android.com/sdk/index.html [Android SDK]: http://developer.android.com/sdk/index.html

View File

@ -85,4 +85,4 @@ keep development consistent across all the platforms the SDK supports.
Once a project has been created using a GStreamer SDK Template, it is Once a project has been created using a GStreamer SDK Template, it is
ready to build and run. All necessary infrastructure is already in ready to build and run. All necessary infrastructure is already in
place. To understand what files have been created and how they interact, place. To understand what files have been created and how they interact,
take a look at the [iOS tutorials](sdk-ios-tutorials.md). take a look at the [iOS tutorials](tutorials-ios.md).

View File

@ -51,7 +51,7 @@ There are 3 sets of files in GStreamer binaries:
Modules](http://msdn.microsoft.com/en-us/library/windows/desktop/aa369820%28v=vs.85%29.aspx) Modules](http://msdn.microsoft.com/en-us/library/windows/desktop/aa369820%28v=vs.85%29.aspx)
files are **additional** files you can use to deploy GStreamer binaries files are **additional** files you can use to deploy GStreamer binaries
alongside your application (see [Windows alongside your application (see [Windows
deployment](sdk-windows-deployment.md)). deployment](deploying-windows.md)).
Get **the Runtime and Development files** installers appropriate for Get **the Runtime and Development files** installers appropriate for
your architecture from here: your architecture from here:

View File

@ -6,10 +6,10 @@ short-description: Download and install GStreamer
## Choose your platform by clicking on the corresponding logo ## Choose your platform by clicking on the corresponding logo
[![](attachments/mac.png)](sdk-installing-on-mac-osx.md) [![](attachments/mac.png)](installing-on-mac-osx.md)
[![](attachments/windows.png)](sdk-installing-on-windows.md) [![](attachments/windows.png)](installing-on-windows.md)
[![](attachments/android.png)](sdk-installing-for-android-development.md) [![](attachments/android.png)](installing-for-android-development.md)
[![](attachments/ios.jpeg)](sdk-installing-for-ios-development.md) [![](attachments/ios.jpeg)](installing-for-ios-development.md)
## Linux ## Linux
@ -20,4 +20,4 @@ environments, you will just need to make sure you have the development
packages installed (refer to your distribution documentation for more packages installed (refer to your distribution documentation for more
information). If you really want to run upstream style binaries on information). If you really want to run upstream style binaries on
Linux, you can always follow the instructions to [build from source Linux, you can always follow the instructions to [build from source
using cerbero](sdk-building-from-source-using-cerbero.md). using cerbero](building-from-source-using-cerbero.md).

View File

@ -1,11 +1,11 @@
index.md index.md
sdk-installing.md installing.md
sdk-installing-for-android-development.md installing-for-android-development.md
sdk-installing-for-ios-development.md installing-for-ios-development.md
sdk-installing-on-mac-osx.md installing-on-mac-osx.md
sdk-installing-on-windows.md installing-on-windows.md
sdk-installing-on-linux.md installing-on-linux.md
sdk-building-from-source-using-cerbero.md building-from-source-using-cerbero.md
manual-index.md manual-index.md
manual-introduction.md manual-introduction.md
manual-gstreamer.md manual-gstreamer.md
@ -40,54 +40,54 @@ index.md
manual-integration.md manual-integration.md
manual-licensing.md manual-licensing.md
manual-quotes.md manual-quotes.md
sdk-tutorials.md tutorials.md
sdk-basic-tutorials.md tutorials-basic.md
sdk-basic-tutorial-hello-world.md tutorial-basic-hello-world.md
sdk-basic-tutorial-concepts.md tutorial-basic-concepts.md
sdk-basic-tutorial-dynamic-pipelines.md tutorial-basic-dynamic-pipelines.md
sdk-basic-tutorial-time-management.md tutorial-basic-time-management.md
sdk-basic-tutorial-toolkit-integration.md tutorial-basic-toolkit-integration.md
sdk-basic-tutorial-media-formats-and-pad-capabilities.md tutorial-basic-media-formats-and-pad-capabilities.md
sdk-basic-tutorial-multithreading-and-pad-availability.md tutorial-basic-multithreading-and-pad-availability.md
sdk-basic-tutorial-short-cutting-the-pipeline.md tutorial-basic-short-cutting-the-pipeline.md
sdk-basic-tutorial-media-information-gathering.md tutorial-basic-media-information-gathering.md
sdk-basic-tutorial-gstreamer-tools.md tutorial-basic-gstreamer-tools.md
sdk-basic-tutorial-debugging-tools.md tutorial-basic-debugging-tools.md
sdk-basic-tutorial-streaming.md tutorial-basic-streaming.md
sdk-basic-tutorial-playback-speed.md tutorial-basic-playback-speed.md
sdk-basic-tutorial-handy-elements.md tutorial-basic-handy-elements.md
sdk-basic-tutorial-platform-specific-elements.md tutorial-basic-platform-specific-elements.md
sdk-playback-tutorials.md tutorials-playback.md
sdk-playback-tutorial-playbin-usage.md tutorial-playback-playbin-usage.md
sdk-playback-tutorial-subtitle-management.md tutorial-playback-subtitle-management.md
sdk-playback-tutorial-short-cutting-the-pipeline.md tutorial-playback-short-cutting-the-pipeline.md
sdk-playback-tutorial-progressive-streaming.md tutorial-playback-progressive-streaming.md
sdk-playback-tutorial-color-balance.md tutorial-playback-color-balance.md
sdk-playback-tutorial-audio-visualization.md tutorial-playback-audio-visualization.md
sdk-playback-tutorial-custom-playbin-sinks.md tutorial-playback-custom-playbin-sinks.md
sdk-playback-tutorial-hardware-accelerated-video-decoding.md tutorial-playback-hardware-accelerated-video-decoding.md
sdk-playback-tutorial-digital-audio-pass-through.md tutorial-playback-digital-audio-pass-through.md
sdk-android-tutorials.md tutorials-android.md
sdk-android-tutorial-link-against-gstreamer.md tutorial-android-link-against-gstreamer.md
sdk-android-tutorial-a-running-pipeline.md tutorial-android-a-running-pipeline.md
sdk-android-tutorial-video.md tutorial-android-video.md
sdk-android-tutorial-media-player.md tutorial-android-media-player.md
sdk-android-tutorial-a-complete-media-player.md tutorial-android-a-complete-media-player.md
sdk-ios-tutorials.md tutorials-ios.md
sdk-ios-tutorial-link-against-gstreamer.md tutorial-ios-link-against-gstreamer.md
sdk-ios-tutorial-a-running-pipeline.md tutorial-ios-a-running-pipeline.md
sdk-ios-tutorial-video.md tutorial-ios-video.md
sdk-ios-tutorial-a-basic-media-player.md tutorial-ios-a-basic-media-player.md
sdk-ios-tutorial-a-complete-media-player.md tutorial-ios-a-complete-media-player.md
sdk-table-of-concepts.md table-of-concepts.md
sdk-deploying-your-application.md deploying-your-application.md
sdk-mac-osx-deployment.md deploying-mac-osx.md
sdk-windows-deployment.md deploying-windows.md
sdk-multiplatform-deployment-using-cerbero.md deploying-multiplatform-using-cerbero.md
gstreamer-command-line-tools.md gstreamer-command-line-tools.md
gst-inspect.md tool-gst-inspect.md
gst-launch.md tool-gst-launch.md
ges-launch.md tool-ges-launch.md
pwg-index.md pwg-index.md
pwg-introduction.md pwg-introduction.md
pwg-intro-preface.md pwg-intro-preface.md

View File

@ -28,16 +28,16 @@ concepts is discussed.
- Tools: [Basic tutorial 10: GStreamer tools] - Tools: [Basic tutorial 10: GStreamer tools]
- Threads: [Basic tutorial 7: Multithreading and Pad Availability] - Threads: [Basic tutorial 7: Multithreading and Pad Availability]
[Playback tutorial 1: Playbin usage]: sdk-playback-tutorial-playbin-usage.md [Playback tutorial 1: Playbin usage]: tutorial-playback-playbin-usage.md
[Basic tutorial 8: Short-cutting the pipeline]: sdk-basic-tutorial-short-cutting-the-pipeline.md [Basic tutorial 8: Short-cutting the pipeline]: tutorial-basic-short-cutting-the-pipeline.md
[Basic tutorial 2: GStreamer concepts]: sdk-basic-tutorial-concepts.md [Basic tutorial 2: GStreamer concepts]: tutorial-basic-concepts.md
[Basic tutorial 6: Media formats and Pad Capabilities]: sdk-basic-tutorial-media-formats-and-pad-capabilities.md [Basic tutorial 6: Media formats and Pad Capabilities]: tutorial-basic-media-formats-and-pad-capabilities.md
[Basic tutorial 11: Debugging tools]: sdk-basic-tutorial-debugging-tools.md [Basic tutorial 11: Debugging tools]: tutorial-basic-debugging-tools.md
[Basic tutorial 9: Media information gathering]: sdk-basic-tutorial-media-information-gathering.md [Basic tutorial 9: Media information gathering]: tutorial-basic-media-information-gathering.md
[Basic tutorial 10: GStreamer tools]: sdk-basic-tutorial-gstreamer-tools.md [Basic tutorial 10: GStreamer tools]: tutorial-basic-gstreamer-tools.md
[gst-launch-1.0]: gst-launch.md [gst-launch-1.0]: tool-gst-launch.md
[Basic tutorial 5: GUI toolkit integration]: sdk-basic-tutorial-toolkit-integration.md [Basic tutorial 5: GUI toolkit integration]: tutorial-basic-toolkit-integration.md
[Basic tutorial 3: Dynamic pipelines]: sdk-basic-tutorial-dynamic-pipelines.md [Basic tutorial 3: Dynamic pipelines]: tutorial-basic-dynamic-pipelines.md
[Basic tutorial 7: Multithreading and Pad Availability]: sdk-basic-tutorial-multithreading-and-pad-availability.md [Basic tutorial 7: Multithreading and Pad Availability]: tutorial-basic-multithreading-and-pad-availability.md
[Basic tutorial 4: Time management]: sdk-basic-tutorial-time-management.md [Basic tutorial 4: Time management]: tutorial-basic-time-management.md
[Playback tutorial 2: Subtitle management]: sdk-playback-tutorial-subtitle-management.md [Playback tutorial 2: Subtitle management]: tutorial-playback-subtitle-management.md

View File

@ -9,7 +9,7 @@ be done with GStreamer in the Android platform.
It is intended to be downloaded in final, compiled, form rather than It is intended to be downloaded in final, compiled, form rather than
analyzed for its pedagogical value, since it adds very little GStreamer analyzed for its pedagogical value, since it adds very little GStreamer
knowledge over what has already been shown in [](sdk-android-tutorial-media-player.md). knowledge over what has already been shown in [](tutorial-android-media-player.md).
**FIXME: Do we want to provide a binary of the app?** **FIXME: Do we want to provide a binary of the app?**
@ -56,7 +56,7 @@ retrieved and checked for such URI.
## Implementing a file chooser dialog ## Implementing a file chooser dialog
The UI includes a new button ![media-next) which The UI includes a new button ![media-next) which
was not present in [](sdk-android-tutorial-media-player.md). It was not present in [](tutorial-android-media-player.md). It
invokes a file chooser dialog (based on the [Android File invokes a file chooser dialog (based on the [Android File
Dialog](http://code.google.com/p/android-file-dialog/) project) that Dialog](http://code.google.com/p/android-file-dialog/) project) that
allows you to choose a local media file, no matter what extension or allows you to choose a local media file, no matter what extension or
@ -88,5 +88,5 @@ Android.
It has been a pleasure having you here, and see you soon! It has been a pleasure having you here, and see you soon!
[screenshot]: images/sdk-android-tutorial-a-complete-media-player-screenshot.png [screenshot]: images/tutorial-android-a-complete-media-player-screenshot.png
[media-next]: images/media-next.png [media-next]: images/media-next.png

View File

@ -4,8 +4,8 @@
![screenshot] ![screenshot]
The tutorials seen in the [Basic](sdk-basic-tutorials.md) and The tutorials seen in the [Basic](tutorials-basic.md) and
[Playback](sdk-playback-tutorials.md) sections are intended for Desktop [Playback](tutorials-playback.md) sections are intended for Desktop
platforms and, therefore, their main thread is allowed to block (using platforms and, therefore, their main thread is allowed to block (using
`gst_bus_pop_filtered()`) or relinquish control to a GLib main loop. On `gst_bus_pop_filtered()`) or relinquish control to a GLib main loop. On
Android this would lead to the application being tagged as Android this would lead to the application being tagged as
@ -1047,4 +1047,4 @@ tutorials with minimal modifications, so better get used to them\!
As usual, it has been a pleasure having you here, and see you soon\! As usual, it has been a pleasure having you here, and see you soon\!
[screenshot]: images/sdk-android-tutorial-a-running-pipeline-screenshot.png [screenshot]: images/tutorial-android-a-running-pipeline-screenshot.png

View File

@ -15,7 +15,7 @@ The tutorial code is in the [gst-docs](https://cgit.freedesktop.org/gstreamer/gs
a `jni` folder for the C code and a `res` folder for UI resources. a `jni` folder for the C code and a `res` folder for UI resources.
We recommend that you open this project in Eclipse (as explained We recommend that you open this project in Eclipse (as explained
in [](sdk-installing-for-android-development.md)) so you can in [](installing-for-android-development.md)) so you can
easily see how all the pieces fit together. easily see how all the pieces fit together.
Lets first introduce the Java code, then the C code and finally the Lets first introduce the Java code, then the C code and finally the
@ -278,4 +278,4 @@ taken when developing specifically for the Android platform.
As usual, it has been a pleasure having you here, and see you soon\! As usual, it has been a pleasure having you here, and see you soon\!
[screenshot]: images/sdk-android-tutorial-link-against-gstreamer-screenshot.png [screenshot]: images/tutorial-android-link-against-gstreamer-screenshot.png

View File

@ -14,7 +14,7 @@ Android device. It shows:
Bar](http://developer.android.com/reference/android/widget/SeekBar.html) Bar](http://developer.android.com/reference/android/widget/SeekBar.html)
- How to report the media size to adapt the display surface - How to report the media size to adapt the display surface
It also uses the knowledge gathered in the [](sdk-basic-tutorials.md) regarding: It also uses the knowledge gathered in the [](tutorials-basic.md) regarding:
- How to use `playbin` to play any kind of media - How to use `playbin` to play any kind of media
- How to handle network resilience problems - How to handle network resilience problems
@ -26,7 +26,7 @@ to build a media player. The most complex part is assembling a pipeline
which retrieves, decodes and displays the media, but we already know which retrieves, decodes and displays the media, but we already know
that the `playbin` element can take care of all that for us. We only that the `playbin` element can take care of all that for us. We only
need to replace the manual pipeline we used in need to replace the manual pipeline we used in
[](sdk-android-tutorial-video.md) with a single-element [](tutorial-android-video.md) with a single-element
`playbin` pipeline and we are good to go! `playbin` pipeline and we are good to go!
However, we can do better than. We will add a [Seek However, we can do better than. We will add a [Seek
@ -344,14 +344,14 @@ charge of displaying the media, and ask the Android layout to be
recalculated. Eventually, the `onMeasure()` method in recalculated. Eventually, the `onMeasure()` method in
GStreamerSurfaceView will be called and the new size will be taken GStreamerSurfaceView will be called and the new size will be taken
into account. As we have already seen in into account. As we have already seen in
[](sdk-android-tutorial-a-running-pipeline.md), methods which change [](tutorial-android-a-running-pipeline.md), methods which change
the UI must be called from the main thread, and we are now in a the UI must be called from the main thread, and we are now in a
callback from some GStreamer internal thread. Hence, the usage of callback from some GStreamer internal thread. Hence, the usage of
[runOnUiThread()](http://developer.android.com/reference/android/app/Activity.html#runOnUiThread\(java.lang.Runnable\)). [runOnUiThread()](http://developer.android.com/reference/android/app/Activity.html#runOnUiThread\(java.lang.Runnable\)).
### Refreshing the Seek Bar ### Refreshing the Seek Bar
[](sdk-basic-tutorial-toolkit-integration.md) [](tutorial-basic-toolkit-integration.md)
has already shown how to implement a [Seek has already shown how to implement a [Seek
Bar](http://developer.android.com/reference/android/widget/SeekBar.html) using Bar](http://developer.android.com/reference/android/widget/SeekBar.html) using
the GTK+ toolkit. The implementation on Android is very similar. the GTK+ toolkit. The implementation on Android is very similar.
@ -1193,7 +1193,7 @@ static gboolean refresh_ui (CustomData *data) {
``` ```
If it is unknown, the clip duration is retrieved, as explained in If it is unknown, the clip duration is retrieved, as explained in
[](sdk-basic-tutorial-time-management.md). The current position is [](tutorial-basic-time-management.md). The current position is
retrieved next, and the UI is informed of both through its retrieved next, and the UI is informed of both through its
`setCurrentPosition()` callback. `setCurrentPosition()` callback.
@ -1333,7 +1333,7 @@ The one-shot timer calls `delayed_seek_cb()`, which simply calls
### Network resilience ### Network resilience
[](sdk-basic-tutorial-streaming.md) has already [](tutorial-basic-streaming.md) has already
shown how to adapt to the variable nature of the network bandwidth by shown how to adapt to the variable nature of the network bandwidth by
using buffering. The same procedure is used here, by listening to the using buffering. The same procedure is used here, by listening to the
buffering buffering
@ -1408,5 +1408,5 @@ here into an acceptable Android media player.
As usual, it has been a pleasure having you here, and see you soon! As usual, it has been a pleasure having you here, and see you soon!
[screenshot]: images/sdk-android-tutorial-media-player-screenshot.png [screenshot]: images/tutorial-android-media-player-screenshot.png
[information]: images/icons/emoticons/information.png [information]: images/icons/emoticons/information.png

View File

@ -4,7 +4,7 @@
![screenshot] ![screenshot]
Except for [](sdk-basic-tutorial-toolkit-integration.md), Except for [](tutorial-basic-toolkit-integration.md),
which embedded a video window on a GTK application, all tutorials so far which embedded a video window on a GTK application, all tutorials so far
relied on GStreamer video sinks to create a window to display their relied on GStreamer video sinks to create a window to display their
contents. The video sink on Android is not capable of creating its own contents. The video sink on Android is not capable of creating its own
@ -21,7 +21,7 @@ Since Android does not provide a windowing system, a GStreamer video
sink cannot create pop-up windows as it would do on a Desktop platform. sink cannot create pop-up windows as it would do on a Desktop platform.
Fortunately, the `VideoOverlay` interface allows providing video sinks with Fortunately, the `VideoOverlay` interface allows providing video sinks with
an already created window onto which they can draw, as we have seen in an already created window onto which they can draw, as we have seen in
[](sdk-basic-tutorial-toolkit-integration.md). [](tutorial-basic-toolkit-integration.md).
In this tutorial, a In this tutorial, a
[SurfaceView](http://developer.android.com/reference/android/view/SurfaceView.html) [SurfaceView](http://developer.android.com/reference/android/view/SurfaceView.html)
@ -650,7 +650,7 @@ ask for it immediately.
The `gst_bin_get_by_interface()` method will examine the whole pipeline The `gst_bin_get_by_interface()` method will examine the whole pipeline
and return a pointer to an element which supports the requested and return a pointer to an element which supports the requested
interface. We are asking for the `VideoOverlay` interface, explained in interface. We are asking for the `VideoOverlay` interface, explained in
[](sdk-basic-tutorial-toolkit-integration.md), [](tutorial-basic-toolkit-integration.md),
which controls how to perform rendering into foreign (non-GStreamer) which controls how to perform rendering into foreign (non-GStreamer)
windows. The internal video sink instantiated by `autovideosink` is the windows. The internal video sink instantiated by `autovideosink` is the
only element in this pipeline implementing it, so it will be returned. only element in this pipeline implementing it, so it will be returned.
@ -910,4 +910,4 @@ to this tutorial in order to build a simple media player.
It has been a pleasure having you here, and see you soon\! It has been a pleasure having you here, and see you soon\!
[screenshot]: images/sdk-android-tutorial-video-screenshot.png [screenshot]: images/tutorial-android-video-screenshot.png

View File

@ -104,11 +104,11 @@ int main(int argc, char *argv[]) {
> ![Information](images/icons/emoticons/information.png) > ![Information](images/icons/emoticons/information.png)
> Need help? > Need help?
> >
> If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](sdk-installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Build), or use this specific command on Linux: > If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](installing-on-windows.md#InstallingonWindows-Build), or use this specific command on Linux:
> >
> `` gcc basic-tutorial-2.c -o basic-tutorial-2 `pkg-config --cflags --libs gstreamer-1.0` `` > `` gcc basic-tutorial-2.c -o basic-tutorial-2 `pkg-config --cflags --libs gstreamer-1.0` ``
> >
>If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](sdk-installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Run). >If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](installing-on-windows.md#InstallingonWindows-Run).
> >
>This tutorial opens a window and displays a test pattern, without audio >This tutorial opens a window and displays a test pattern, without audio
> >
@ -139,9 +139,9 @@ sink = gst_element_factory_make ("autovideosink", "sink");
As seen in this code, new elements can be created As seen in this code, new elements can be created
with `gst_element_factory_make()`. The first parameter is the type of with `gst_element_factory_make()`. The first parameter is the type of
element to create ([Basic tutorial 14: Handy element to create ([Basic tutorial 14: Handy
elements](sdk-basic-tutorial-handy-elements.md) shows a elements](tutorial-basic-handy-elements.md) shows a
few common types, and [Basic tutorial 10: GStreamer few common types, and [Basic tutorial 10: GStreamer
tools](sdk-basic-tutorial-gstreamer-tools.md) shows how to tools](tutorial-basic-gstreamer-tools.md) shows how to
obtain the list of all available types). The second parameter is the obtain the list of all available types). The second parameter is the
name we want to give to this particular instance. Naming your elements name we want to give to this particular instance. Naming your elements
is useful to retrieve them later if you didn't keep a pointer (and for is useful to retrieve them later if you didn't keep a pointer (and for
@ -225,7 +225,7 @@ values!
The names and possible values of all the properties an element exposes The names and possible values of all the properties an element exposes
can be found using the gst-inspect-1.0 tool described in [Basic tutorial 10: can be found using the gst-inspect-1.0 tool described in [Basic tutorial 10:
GStreamer tools](sdk-basic-tutorial-gstreamer-tools.md). GStreamer tools](tutorial-basic-gstreamer-tools.md).
### Error checking ### Error checking
@ -246,7 +246,7 @@ if (ret == GST_STATE_CHANGE_FAILURE) {
We call `gst_element_set_state()`, but this time we check its return We call `gst_element_set_state()`, but this time we check its return
value for errors. Changing states is a delicate process and a few more value for errors. Changing states is a delicate process and a few more
details are given in [Basic tutorial 3: Dynamic details are given in [Basic tutorial 3: Dynamic
pipelines](sdk-basic-tutorial-dynamic-pipelines.md). pipelines](tutorial-basic-dynamic-pipelines.md).
``` c ``` c
/* Wait until error or EOS */ /* Wait until error or EOS */
@ -311,7 +311,7 @@ playback-related issues.
The rest of the code is the cleanup sequence, which is the same as The rest of the code is the cleanup sequence, which is the same as
in [Basic tutorial 1: Hello in [Basic tutorial 1: Hello
world!](sdk-basic-tutorial-hello-world.md). world!](tutorial-basic-hello-world.md).
## Exercise ## Exercise
@ -324,11 +324,11 @@ Depending on your platform and available plugins, you might get a
“negotiation” error, because the sink does not understand what the “negotiation” error, because the sink does not understand what the
filter is producing (more about negotiation in [Basic tutorial 6: Media filter is producing (more about negotiation in [Basic tutorial 6: Media
formats and Pad formats and Pad
Capabilities](sdk-basic-tutorial-media-formats-and-pad-capabilities.md)). Capabilities](tutorial-basic-media-formats-and-pad-capabilities.md)).
In this case, try to add an element called `videoconvert` after the In this case, try to add an element called `videoconvert` after the
filter (this is, build a pipeline of 4 elements. More on filter (this is, build a pipeline of 4 elements. More on
`videoconvert` in [Basic tutorial 14: Handy `videoconvert` in [Basic tutorial 14: Handy
elements](sdk-basic-tutorial-handy-elements.md)). elements](tutorial-basic-handy-elements.md)).
## Conclusion ## Conclusion

View File

@ -8,7 +8,7 @@ information becomes available, instead of having a monolithic pipeline
defined at the beginning of your application. defined at the beginning of your application.
After this tutorial, you will have the necessary knowledge to start the After this tutorial, you will have the necessary knowledge to start the
[Playback tutorials](sdk-playback-tutorials.md). The points reviewed [Playback tutorials](tutorials-playback.md). The points reviewed
here will be: here will be:
- How to attain finer control when linking elements. - How to attain finer control when linking elements.
@ -240,10 +240,10 @@ exit:
> ![Information](images/icons/emoticons/information.png) > ![Information](images/icons/emoticons/information.png)
> Need help? > Need help?
> >
> If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](sdk-installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Build), or use this specific command on Linux: > If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](installing-on-windows.md#InstallingonWindows-Build), or use this specific command on Linux:
> ``gcc basic-tutorial-3.c -o basic-tutorial-3 `pkg-config --cflags --libs gstreamer-1.0` `` > ``gcc basic-tutorial-3.c -o basic-tutorial-3 `pkg-config --cflags --libs gstreamer-1.0` ``
> >
>If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](sdk-installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Run). >If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](installing-on-windows.md#InstallingonWindows-Run).
> >
> This tutorial only plays audio. The media is fetched from the Internet, so it might take a few seconds to start, depending on your connection speed. > This tutorial only plays audio. The media is fetched from the Internet, so it might take a few seconds to start, depending on your connection speed.
> >
@ -338,7 +338,7 @@ for this purpose.
The signals that a `GstElement` generates can be found in its The signals that a `GstElement` generates can be found in its
documentation or using the `gst-inspect-1.0` tool as described in [Basic documentation or using the `gst-inspect-1.0` tool as described in [Basic
tutorial 10: GStreamer tutorial 10: GStreamer
tools](sdk-basic-tutorial-gstreamer-tools.md). tools](tutorial-basic-gstreamer-tools.md).
We are now ready to go! Just set the pipeline to the PLAYING state and We are now ready to go! Just set the pipeline to the PLAYING state and
start listening to the bus for interesting messages (like ERROR or EOS), start listening to the bus for interesting messages (like ERROR or EOS),
@ -493,10 +493,10 @@ front) and link it to the demuxer when the right pad appears. Hint: You
are already printing on screen the type of the video pads. are already printing on screen the type of the video pads.
You should now see (and hear) the same movie as in [Basic tutorial 1: You should now see (and hear) the same movie as in [Basic tutorial 1:
Hello world!](sdk-basic-tutorial-hello-world.md). In Hello world!](tutorial-basic-hello-world.md). In
that tutorial you used `playbin`, which is a handy element that that tutorial you used `playbin`, which is a handy element that
automatically takes care of all the demuxing and pad linking for you. automatically takes care of all the demuxing and pad linking for you.
Most of the [Playback tutorials](sdk-playback-tutorials.md) are devoted Most of the [Playback tutorials](tutorials-playback.md) are devoted
to `playbin`. to `playbin`.
## Conclusion ## Conclusion
@ -513,8 +513,8 @@ media was available.
You can now continue with the basic tutorials and learn about performing You can now continue with the basic tutorials and learn about performing
seeks and time-related queries in [Basic tutorial 4: Time seeks and time-related queries in [Basic tutorial 4: Time
management](sdk-basic-tutorial-time-management.md) or move management](tutorial-basic-time-management.md) or move
to the [Playback tutorials](sdk-playback-tutorials.md), and gain more to the [Playback tutorials](tutorials-playback.md), and gain more
insight about the `playbin` element. insight about the `playbin` element.
Remember that attached to this page you should find the complete source Remember that attached to this page you should find the complete source

View File

@ -21,7 +21,7 @@ polluting it too much).
Just open a terminal (or console window) and go to the `bin` directory Just open a terminal (or console window) and go to the `bin` directory
of your GStreamer installation (Read again the [Installing of your GStreamer installation (Read again the [Installing
GStreamer](sdk-installing.md) section to find our where this is), GStreamer](installing.md) section to find our where this is),
and you are ready to start typing the commands given in this tutorial. and you are ready to start typing the commands given in this tutorial.
@ -63,7 +63,7 @@ descriptions resemble black magic. Fear not, for everyone learns the
The command line for gst-launch-1.0 consists of a list of options followed The command line for gst-launch-1.0 consists of a list of options followed
by a PIPELINE-DESCRIPTION. Some simplified instructions are given next, by a PIPELINE-DESCRIPTION. Some simplified instructions are given next,
se the complete documentation at [the reference page](gst-launch.md) se the complete documentation at [the reference page](tool-gst-launch.md)
for `gst-launch-1.0`. for `gst-launch-1.0`.
### Elements ### Elements
@ -122,14 +122,14 @@ If you see only one, try to move it, since it is probably on top of the
second window. second window.
This example instantiates a `videotestsrc`, linked to a This example instantiates a `videotestsrc`, linked to a
`videoconvert`, linked to a `tee` (Remember from [](sdk-basic-tutorial-multithreading-and-pad-availability.md) that `videoconvert`, linked to a `tee` (Remember from [](tutorial-basic-multithreading-and-pad-availability.md) that
a `tee` copies to each of its output pads everything coming through its a `tee` copies to each of its output pads everything coming through its
input pad). The `tee` is named simply t (using the `name` property) input pad). The `tee` is named simply t (using the `name` property)
and then linked to a `queue` and an `autovideosink`. The same `tee` is and then linked to a `queue` and an `autovideosink`. The same `tee` is
referred to using t. (mind the dot) and then linked to a second referred to using t. (mind the dot) and then linked to a second
`queue` and a second `autovideosink`. `queue` and a second `autovideosink`.
To learn why the queues are necessary read [](sdk-basic-tutorial-multithreading-and-pad-availability.md). To learn why the queues are necessary read [](tutorial-basic-multithreading-and-pad-availability.md).
### Pads ### Pads
@ -148,7 +148,7 @@ gst-launch-1.0 souphttpsrc location=https://www.freedesktop.org/software/gstream
``` ```
This fetches a media file from the internet using `souphttpsrc`, which This fetches a media file from the internet using `souphttpsrc`, which
is in webm format (a special kind of Matroska container, see [](sdk-basic-tutorial-concepts.md)). We is in webm format (a special kind of Matroska container, see [](tutorial-basic-concepts.md)). We
then open the container using `matroskademux`. This media contains both then open the container using `matroskademux`. This media contains both
audio and video, so `matroskademux` will create two output Pads, named audio and video, so `matroskademux` will create two output Pads, named
`video_00` and `audio_00`. We link `video_00` to a `matroskamux` element `video_00` and `audio_00`. We link `video_00` to a `matroskamux` element
@ -219,7 +219,7 @@ producing for a particular pipeline, run `gst-launch-1.0` as usual, with the
### Examples ### Examples
Play a media file using `playbin` (as in [](sdk-basic-tutorial-hello-world.md)): Play a media file using `playbin` (as in [](tutorial-basic-hello-world.md)):
``` ```
gst-launch-1.0 playbin uri=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm gst-launch-1.0 playbin uri=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm
@ -254,7 +254,7 @@ gst-launch-1.0 uridecodebin uri=https://www.freedesktop.org/software/gstreamer-s
This short description of `gst-launch-1.0` should be enough to get you This short description of `gst-launch-1.0` should be enough to get you
started. Remember that you have the [complete documentation available started. Remember that you have the [complete documentation available
here](gst-launch.md). here](tool-gst-launch.md).
## `gst-inspect-1.0` ## `gst-inspect-1.0`
@ -369,11 +369,11 @@ The most relevant sections are:
element, along with their type and accepted values. element, along with their type and accepted values.
For more information, you can check the [documentation For more information, you can check the [documentation
page](gst-inspect.md) of `gst-inspect-1.0`. page](tool-gst-inspect.md) of `gst-inspect-1.0`.
## `gst-discoverer-1.0` ## `gst-discoverer-1.0`
This tool is a wrapper around the `GstDiscoverer` object shown in [](sdk-basic-tutorial-media-information-gathering.md). This tool is a wrapper around the `GstDiscoverer` object shown in [](tutorial-basic-media-information-gathering.md).
It accepts a URI from the command line and prints all information It accepts a URI from the command line and prints all information
regarding the media that GStreamer can extract. It is useful to find out regarding the media that GStreamer can extract. It is useful to find out
what container and codecs have been used to produce the media, and what container and codecs have been used to produce the media, and

View File

@ -9,7 +9,7 @@ elements which are extremely useful when debugging.
For simplicity, the following examples are given using the For simplicity, the following examples are given using the
`gst-launch-1.0` tool (Learn about it in `gst-launch-1.0` tool (Learn about it in
[](sdk-basic-tutorial-gstreamer-tools.md)). Use the `-v` command line [](tutorial-basic-gstreamer-tools.md)). Use the `-v` command line
parameter if you want to see the Pad Caps that are being negotiated. parameter if you want to see the Pad Caps that are being negotiated.
## Bins ## Bins
@ -23,7 +23,7 @@ their task.
This element has been extensively used throughout the tutorials. It This element has been extensively used throughout the tutorials. It
manages all aspects of media playback, from source to display, passing manages all aspects of media playback, from source to display, passing
through demuxing and decoding. It is so flexible and has so many options through demuxing and decoding. It is so flexible and has so many options
that a whole set of tutorials are devoted to it. See the [](sdk-playback-tutorials.md) for more details. that a whole set of tutorials are devoted to it. See the [](tutorials-playback.md) for more details.
### `uridecodebin` ### `uridecodebin`
@ -228,7 +228,7 @@ Most of the time, `audiorate` is not what you want.
### `queue` ### `queue`
Queues have been explained in [](sdk-basic-tutorial-multithreading-and-pad-availability.md). Basically, a queue performs two tasks: Queues have been explained in [](tutorial-basic-multithreading-and-pad-availability.md). Basically, a queue performs two tasks:
- Data is queued until a selected limit is reached. Any attempt to - Data is queued until a selected limit is reached. Any attempt to
push more buffers into the queue blocks the pushing thread until push more buffers into the queue blocks the pushing thread until
@ -242,7 +242,7 @@ instructed to drop buffers instead of blocking when it is full.
As a rule of thumb, prefer the simpler `queue` element As a rule of thumb, prefer the simpler `queue` element
over `queue2` whenever network buffering is not a concern to you. over `queue2` whenever network buffering is not a concern to you.
See [](sdk-basic-tutorial-multithreading-and-pad-availability.md) See [](tutorial-basic-multithreading-and-pad-availability.md)
for an example. for an example.
### `queue2` ### `queue2`
@ -256,10 +256,10 @@ queue is the best choice.
additionally, is able to store the received data (or part of it) on a additionally, is able to store the received data (or part of it) on a
disk file, for later retrieval. It also replaces the signals with the disk file, for later retrieval. It also replaces the signals with the
more general and convenient buffering messages described in more general and convenient buffering messages described in
[](sdk-basic-tutorial-streaming.md). [](tutorial-basic-streaming.md).
As a rule of thumb, prefer `queue2` over `queue` whenever network As a rule of thumb, prefer `queue2` over `queue` whenever network
buffering is a concern to you. See [](sdk-basic-tutorial-streaming.md) buffering is a concern to you. See [](tutorial-basic-streaming.md)
for an example (`queue2` is hidden inside `playbin`). for an example (`queue2` is hidden inside `playbin`).
### `multiqueue` ### `multiqueue`
@ -277,7 +277,7 @@ application.
### `tee` ### `tee`
[](sdk-basic-tutorial-multithreading-and-pad-availability.md) already [](tutorial-basic-multithreading-and-pad-availability.md) already
showed how to use a `tee` element, which splits data to multiple pads. showed how to use a `tee` element, which splits data to multiple pads.
Splitting the data flow is useful, for example, when capturing a video Splitting the data flow is useful, for example, when capturing a video
where the video is shown on the screen and also encoded and written to a where the video is shown on the screen and also encoded and written to a
@ -296,7 +296,7 @@ gst-launch-1.0 audiotestsrc ! tee name=t ! queue ! audioconvert ! autoaudiosink
## Capabilities ## Capabilities
### `capsfilter` ### `capsfilter`
[](sdk-basic-tutorial-gstreamer-tools.md) already [](tutorial-basic-gstreamer-tools.md) already
explained how to use Caps filters with `gst-launch-1.0`. When building a explained how to use Caps filters with `gst-launch-1.0`. When building a
pipeline programmatically, Caps filters are implemented with pipeline programmatically, Caps filters are implemented with
the `capsfilter` element. This element does not modify data as such, the `capsfilter` element. This element does not modify data as such,
@ -316,7 +316,7 @@ the `have-type` signal.
It is instantiated internally by `decodebin`, and you can use it too to It is instantiated internally by `decodebin`, and you can use it too to
find the media type, although you can normally use the find the media type, although you can normally use the
`GstDiscoverer` which provides more information (as seen in `GstDiscoverer` which provides more information (as seen in
[](sdk-basic-tutorial-media-information-gathering.md)). [](tutorial-basic-media-information-gathering.md)).
## Debugging ## Debugging

View File

@ -221,17 +221,17 @@ and show you how to build a pipeline manually.
It has been a pleasure having you here, and see you soon! It has been a pleasure having you here, and see you soon!
[Installing on Linux]: sdk-installing-on-linux.md [Installing on Linux]: installing-on-linux.md
[Installing on Mac OS X]: sdk-installing-on-mac-osx.md [Installing on Mac OS X]: installing-on-mac-osx.md
[Installing on Windows]: sdk-installing-on-windows.md [Installing on Windows]: installing-on-windows.md
[Information]: images/icons/emoticons/information.png [Information]: images/icons/emoticons/information.png
[Linux]: sdk-installing-on-linux.md#InstallingonLinux-Build [Linux]: installing-on-linux.md#InstallingonLinux-Build
[Mac OS X]: sdk-installing-on-mac-osx.md#InstallingonMacOSX-Build [Mac OS X]: installing-on-mac-osx.md#InstallingonMacOSX-Build
[Windows]: sdk-installing-on-windows.md#InstallingonWindows-Build [Windows]: installing-on-windows.md#InstallingonWindows-Build
[1]: sdk-installing-on-linux.md#InstallingonLinux-Run [1]: installing-on-linux.md#InstallingonLinux-Run
[2]: sdk-installing-on-mac-osx.md#InstallingonMacOSX-Run [2]: installing-on-mac-osx.md#InstallingonMacOSX-Run
[3]: sdk-installing-on-windows.md#InstallingonWindows-Run [3]: installing-on-windows.md#InstallingonWindows-Run
[Basic tutorial 12: Streaming]: sdk-basic-tutorial-streaming.md [Basic tutorial 12: Streaming]: tutorial-basic-streaming.md
[Basic tutorial 10: GStreamer tools]: sdk-basic-tutorial-gstreamer-tools.md [Basic tutorial 10: GStreamer tools]: tutorial-basic-gstreamer-tools.md
[Basic tutorial 2: GStreamer concepts]: sdk-basic-tutorial-concepts.md [Basic tutorial 2: GStreamer concepts]: tutorial-basic-concepts.md
[Basic tutorial 3: Dynamic pipelines]: sdk-basic-tutorial-dynamic-pipelines.md [Basic tutorial 3: Dynamic pipelines]: tutorial-basic-dynamic-pipelines.md

View File

@ -100,7 +100,7 @@ indicate different packing and subsampling of the image planes.
### Last remarks ### Last remarks
You can use the `gst-inspect-1.0` tool described in [Basic tutorial 10: You can use the `gst-inspect-1.0` tool described in [Basic tutorial 10:
GStreamer tools](sdk-basic-tutorial-gstreamer-tools.md) to GStreamer tools](tutorial-basic-gstreamer-tools.md) to
learn about the Caps of any GStreamer element. learn about the Caps of any GStreamer element.
Bear in mind that some elements query the underlying hardware for Bear in mind that some elements query the underlying hardware for
@ -335,11 +335,11 @@ int main(int argc, char *argv[]) {
> ![Information](images/icons/emoticons/information.png) > ![Information](images/icons/emoticons/information.png)
> Need help? > Need help?
> >
> If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](sdk-installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Build), or use this specific command on Linux: > If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](installing-on-windows.md#InstallingonWindows-Build), or use this specific command on Linux:
> >
> `` gcc basic-tutorial-6.c -o basic-tutorial-6 `pkg-config --cflags --libs gstreamer-1.0` `` > `` gcc basic-tutorial-6.c -o basic-tutorial-6 `pkg-config --cflags --libs gstreamer-1.0` ``
> >
>If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](sdk-installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Run). >If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](installing-on-windows.md#InstallingonWindows-Run).
> >
> This tutorial simply displays information regarding the Pad Capabilities in different time instants. > This tutorial simply displays information regarding the Pad Capabilities in different time instants.
> >
@ -466,7 +466,7 @@ This tutorial has shown:
- That Pad Caps can be found using the `gst-inspect-1.0` tool described - That Pad Caps can be found using the `gst-inspect-1.0` tool described
in [Basic tutorial 10: GStreamer in [Basic tutorial 10: GStreamer
tools](sdk-basic-tutorial-gstreamer-tools.md). tools](tutorial-basic-gstreamer-tools.md).
Next tutorial shows how data can be manually injected into and extracted Next tutorial shows how data can be manually injected into and extracted
from the GStreamer pipeline. from the GStreamer pipeline.

View File

@ -66,7 +66,7 @@ command line, and outputs the retrieved information (If no URI is
provided it uses a default one). provided it uses a default one).
This is a simplified version of what the `gst-discoverer-1.0` tool does This is a simplified version of what the `gst-discoverer-1.0` tool does
([](sdk-basic-tutorial-gstreamer-tools.md)), which is ([](tutorial-basic-gstreamer-tools.md)), which is
an application that only displays data, but does not perform any an application that only displays data, but does not perform any
playback. playback.
@ -300,11 +300,11 @@ int main (int argc, char **argv) {
> ![Information](images/icons/emoticons/information.png) > ![Information](images/icons/emoticons/information.png)
> Need help? > Need help?
> >
> If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](sdk-installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Build), or use this specific command on Linux: > If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](installing-on-windows.md#InstallingonWindows-Build), or use this specific command on Linux:
> >
> ``gcc basic-tutorial-9.c -o basic-tutorial-9 `pkg-config --cflags --libs gstreamer-1.0 gstreamer-pbutils-1.0` `` > ``gcc basic-tutorial-9.c -o basic-tutorial-9 `pkg-config --cflags --libs gstreamer-1.0 gstreamer-pbutils-1.0` ``
> >
>If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](sdk-installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Run). >If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](installing-on-windows.md#InstallingonWindows-Run).
> >
> This tutorial opens the URI passed as the first parameter in the command line (or a default URI if none is provided) and outputs information about it on the screen. If the media is located on the Internet, the application might take a bit to react depending on your connection speed. > This tutorial opens the URI passed as the first parameter in the command line (or a default URI if none is provided) and outputs information about it on the screen. If the media is located on the Internet, the application might take a bit to react depending on your connection speed.
> >

View File

@ -56,7 +56,7 @@ there is only one thread, being blocked by the first sink.
### Request pads ### Request pads
In [Basic tutorial 3: Dynamic In [Basic tutorial 3: Dynamic
pipelines](sdk-basic-tutorial-dynamic-pipelines.md) we saw pipelines](tutorial-basic-dynamic-pipelines.md) we saw
an element (`uridecodebin`) which had no pads to begin with, and they an element (`uridecodebin`) which had no pads to begin with, and they
appeared as data started to flow and the element learned about the appeared as data started to flow and the element learned about the
media. These are called **Sometimes Pads**, and contrast with the media. These are called **Sometimes Pads**, and contrast with the
@ -179,11 +179,11 @@ int main(int argc, char *argv[]) {
> ![Information](images/icons/emoticons/information.png) > ![Information](images/icons/emoticons/information.png)
> Need help? > Need help?
> >
> If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](sdk-installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Build), or use this specific command on Linux: > If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](installing-on-windows.md#InstallingonWindows-Build), or use this specific command on Linux:
> >
> ``gcc basic-tutorial-7.c -o basic-tutorial-7 `pkg-config --cflags --libs gstreamer-1.0` `` > ``gcc basic-tutorial-7.c -o basic-tutorial-7 `pkg-config --cflags --libs gstreamer-1.0` ``
> >
>If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](sdk-installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Run). >If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](installing-on-windows.md#InstallingonWindows-Run).
> >
> This tutorial plays an audible tone 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. > This tutorial plays an audible tone 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.
> >
@ -231,7 +231,7 @@ Small adjustments for better demonstration: The “freq” property of
appear almost stationary in the window), and this style and shader for appear almost stationary in the window), and this style and shader for
`wavescope` make the wave continuous. Use the `gst-inspect-1.0` tool `wavescope` make the wave continuous. Use the `gst-inspect-1.0` tool
described in [Basic tutorial 10: GStreamer described in [Basic tutorial 10: GStreamer
tools](sdk-basic-tutorial-gstreamer-tools.md) to learn all tools](tutorial-basic-gstreamer-tools.md) to learn all
the properties of these the properties of these
elements. elements.

View File

@ -51,7 +51,7 @@ This audio sink outputs to the sound card via
Architecture). This sink is available on almost every Linux platform. It Architecture). This sink is available on almost every Linux platform. It
is often seen as a “low level” interface to the sound card, and can be is often seen as a “low level” interface to the sound card, and can be
complicated to configure (See the comment on complicated to configure (See the comment on
[](sdk-playback-tutorial-digital-audio-pass-through.md)). [](tutorial-playback-digital-audio-pass-through.md)).
### `pulsesink` ### `pulsesink`
@ -117,7 +117,7 @@ that their pipelines cannot be interconnected. However, through this
element, GStreamer can benefit from the decoding elements present in element, GStreamer can benefit from the decoding elements present in
Direct Show. `dshowdecwrapper` wraps multiple Direct Show decoders so Direct Show. `dshowdecwrapper` wraps multiple Direct Show decoders so
they can be embedded in a GStreamer pipeline. Use the `gst-inspect-1.0` tool they can be embedded in a GStreamer pipeline. Use the `gst-inspect-1.0` tool
(see [](sdk-basic-tutorial-gstreamer-tools.md)) to see the (see [](tutorial-basic-gstreamer-tools.md)) to see the
available decoders. available decoders.
## Android ## Android

View File

@ -30,7 +30,7 @@ media besides changing the subsequent playback rate (only to positive
values). Seek Events, additionally, allow jumping to any position in the values). Seek Events, additionally, allow jumping to any position in the
stream and set positive and negative playback rates. stream and set positive and negative playback rates.
In [](sdk-basic-tutorial-time-management.md) seek In [](tutorial-basic-time-management.md) seek
events have already been shown, using a helper function to hide their events have already been shown, using a helper function to hide their
complexity. This tutorial explains a bit more how to use these events. complexity. This tutorial explains a bit more how to use these events.
@ -216,11 +216,11 @@ int main(int argc, char *argv[]) {
> ![Information](images/icons/emoticons/information.png) > ![Information](images/icons/emoticons/information.png)
> Need help? > Need help?
> >
> If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](sdk-installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Build), or use this specific command on Linux: > If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](installing-on-windows.md#InstallingonWindows-Build), or use this specific command on Linux:
> >
> `` gcc basic-tutorial-13.c -o basic-tutorial-13 `pkg-config --cflags --libs gstreamer-1.0` `` > `` gcc basic-tutorial-13.c -o basic-tutorial-13 `pkg-config --cflags --libs gstreamer-1.0` ``
> >
>If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](sdk-installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Run). >If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](installing-on-windows.md#InstallingonWindows-Run).
> >
> This tutorial opens a window and displays a movie, with accompanying audio. The media is fetched from the Internet, so the window might take a few seconds to appear, depending on your connection speed. The console shows the available commands, composed of a single upper-case or lower-case letter, which you should input followed by the Enter key. > This tutorial opens a window and displays a movie, with accompanying audio. The media is fetched from the Internet, so the window might take a few seconds to appear, depending on your connection speed. The console shows the available commands, composed of a single upper-case or lower-case letter, which you should input followed by the Enter key.
> >

View File

@ -12,7 +12,7 @@ any time, in a variety of ways. This tutorial shows:
- How to access and manipulate this data. - How to access and manipulate this data.
[](sdk-playback-tutorial-short-cutting-the-pipeline.md) explains [](tutorial-playback-short-cutting-the-pipeline.md) explains
how to achieve the same goals in a playbin-based pipeline. how to achieve the same goals in a playbin-based pipeline.
## Introduction ## Introduction
@ -68,7 +68,7 @@ this simplified vision should suffice for now.
As an example, a `filesrc` (a GStreamer element that reads files) As an example, a `filesrc` (a GStreamer element that reads files)
produces buffers with the “ANY” caps and no time-stamping information. produces buffers with the “ANY” caps and no time-stamping information.
After demuxing (see [](sdk-basic-tutorial-dynamic-pipelines.md)) After demuxing (see [](tutorial-basic-dynamic-pipelines.md))
buffers can have some specific caps, for example “video/x-h264”. After buffers can have some specific caps, for example “video/x-h264”. After
decoding, each buffer will contain a single video frame with raw caps decoding, each buffer will contain a single video frame with raw caps
(for example, “video/x-raw-yuv”) and very precise time stamps indicating (for example, “video/x-raw-yuv”) and very precise time stamps indicating
@ -76,7 +76,7 @@ when should that frame be displayed.
### This tutorial ### This tutorial
This tutorial expands [](sdk-basic-tutorial-multithreading-and-pad-availability.md) in This tutorial expands [](tutorial-basic-multithreading-and-pad-availability.md) in
two ways: firstly, the `audiotestsrc` is replaced by an `appsrc` that two ways: firstly, the `audiotestsrc` is replaced by an `appsrc` that
will generate the audio data. Secondly, a new branch is added to the will generate the audio data. Secondly, a new branch is added to the
`tee` so data going into the audio sink and the wave display is also `tee` so data going into the audio sink and the wave display is also
@ -332,11 +332,11 @@ int main(int argc, char *argv[]) {
> ![Information](images/icons/emoticons/information.png) > ![Information](images/icons/emoticons/information.png)
> Need help? > Need help?
> >
> If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](sdk-installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Build), or use this specific command on Linux: > If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](installing-on-windows.md#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` `` > `` 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](sdk-installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Run). >If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](installing-on-windows.md#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. > 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.
> >
@ -346,7 +346,7 @@ int main(int argc, char *argv[]) {
The code to create the pipeline (Lines 131 to 205) is an enlarged The code to create the pipeline (Lines 131 to 205) is an enlarged
version of [Basic tutorial 7: Multithreading and Pad version of [Basic tutorial 7: Multithreading and Pad
Availability](sdk-basic-tutorial-multithreading-and-pad-availability.md). Availability](tutorial-basic-multithreading-and-pad-availability.md).
It involves instantiating all the elements, link the elements with It involves instantiating all the elements, link the elements with
Always Pads, and manually link the Request Pads of the `tee` element. Always Pads, and manually link the Request Pads of the `tee` element.
@ -495,7 +495,7 @@ gst_buffer_unref (buffer);
``` ```
Once we have the buffer ready, we pass it to `appsrc` with the Once we have the buffer ready, we pass it to `appsrc` with the
`push-buffer` action signal (see information box at the end of [](sdk-playback-tutorial-playbin-usage.md)), and then `push-buffer` action signal (see information box at the end of [](tutorial-playback-playbin-usage.md)), and then
`gst_buffer_unref()` it since we no longer need it. `gst_buffer_unref()` it since we no longer need it.
``` c ``` c
@ -534,7 +534,7 @@ This tutorial has shown how applications can:
- Manipulate this data by accessing the `GstBuffer`. - Manipulate this data by accessing the `GstBuffer`.
In a playbin-based pipeline, the same goals are achieved in a slightly In a playbin-based pipeline, the same goals are achieved in a slightly
different way. [](sdk-playback-tutorial-short-cutting-the-pipeline.md) shows different way. [](tutorial-playback-short-cutting-the-pipeline.md) shows
how to do it. how to do it.
It has been a pleasure having you here, and see you soon\! It has been a pleasure having you here, and see you soon\!

View File

@ -156,11 +156,11 @@ int main(int argc, char *argv[]) {
> ![Information](images/icons/emoticons/information.png) > ![Information](images/icons/emoticons/information.png)
> Need help? > Need help?
> >
> If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](sdk-installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Build), or use this specific command on Linux: > If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](installing-on-windows.md#InstallingonWindows-Build), or use this specific command on Linux:
> >
> `` gcc basic-tutorial-12.c -o basic-tutorial-12 `pkg-config --cflags --libs gstreamer-1.0` `` > `` gcc basic-tutorial-12.c -o basic-tutorial-12 `pkg-config --cflags --libs gstreamer-1.0` ``
> >
>If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](sdk-installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Run). >If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](installing-on-windows.md#InstallingonWindows-Run).
> >
> This tutorial opens a window and displays a movie, with accompanying audio. The media is fetched from the Internet, so the window might take a few seconds to appear, depending on your connection speed. In the console window, you should see a buffering message, and playback should only start when the buffering reaches 100%. This percentage might not change at all if your connection is fast enough and buffering is not required. > This tutorial opens a window and displays a movie, with accompanying audio. The media is fetched from the Internet, so the window might take a few seconds to appear, depending on your connection speed. In the console window, you should see a buffering message, and playback should only start when the buffering reaches 100%. This percentage might not change at all if your connection is fast enough and buffering is not required.
> >

View File

@ -197,11 +197,11 @@ static void handle_message (CustomData *data, GstMessage *msg) {
> ![Information](images/icons/emoticons/information.png) > ![Information](images/icons/emoticons/information.png)
> Need help? > Need help?
> >
> If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](sdk-installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Build), or use this specific command on Linux: > If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](installing-on-windows.md#InstallingonWindows-Build), or use this specific command on Linux:
> >
> ``gcc basic-tutorial-4.c -o basic-tutorial-4 `pkg-config --cflags --libs gstreamer-1.0` `` > ``gcc basic-tutorial-4.c -o basic-tutorial-4 `pkg-config --cflags --libs gstreamer-1.0` ``
> >
>If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](sdk-installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Run). >If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](installing-on-windows.md#InstallingonWindows-Run).
> >
> This tutorial opens a window and displays a movie, with accompanying audio. The media is fetched from the Internet, so the window might take a few seconds to appear, depending on your connection speed. 10 seconds into the movie it skips to a new position > This tutorial opens a window and displays a movie, with accompanying audio. The media is fetched from the Internet, so the window might take a few seconds to appear, depending on your connection speed. 10 seconds into the movie it skips to a new position
> >
@ -231,7 +231,7 @@ move the message handling code to its own function
We would then build a pipeline composed of a single element, a We would then build a pipeline composed of a single element, a
`playbin`, which we already saw in [Basic tutorial 1: Hello `playbin`, which we already saw in [Basic tutorial 1: Hello
world!](sdk-basic-tutorial-hello-world.md). However, world!](tutorial-basic-hello-world.md). However,
`playbin` is in itself a pipeline, and in this case it is the only `playbin` is in itself a pipeline, and in this case it is the only
element in the pipeline, so we use directly the `playbin` element. We element in the pipeline, so we use directly the `playbin` element. We
will skip the details: the URI of the clip is given to `playbin` via will skip the details: the URI of the clip is given to `playbin` via

View File

@ -456,16 +456,16 @@ int main(int argc, char *argv[]) {
> ![Information](images/icons/emoticons/information.png) > ![Information](images/icons/emoticons/information.png)
> Need help? > Need help?
> >
> If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](sdk-installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Build), or use this specific command on Linux: > If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Build), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Build) or [Windows](installing-on-windows.md#InstallingonWindows-Build), or use this specific command on Linux:
> >
> ``gcc basic-tutorial-5.c -o basic-tutorial-5 `pkg-config --cflags --libs gstreamer-interfaces-1.0 gtk+-3.0 gstreamer-1.0`` > ``gcc basic-tutorial-5.c -o basic-tutorial-5 `pkg-config --cflags --libs gstreamer-interfaces-1.0 gtk+-3.0 gstreamer-1.0``
> >
>If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](sdk-installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](sdk-installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](sdk-installing-on-windows.md#InstallingonWindows-Run). >If you need help to run this code, refer to the **Running the tutorials** section for your platform: [Linux](installing-on-linux.md#InstallingonLinux-Run), [Mac OS X](installing-on-mac-osx.md#InstallingonMacOSX-Run) or [Windows](installing-on-windows.md#InstallingonWindows-Run).
> >
> This tutorial opens a GTK+ window and displays a movie, with accompanying audio. The media is fetched from the Internet, so the window might take a few seconds to appear, depending on your connection speed. The Window has some GTK+ buttons to Pause, Stop and Play the movie, and a slider to show the current position of the stream, which can be dragged to change it. Also, information about the stream is shown on a column at the right edge of the window. > This tutorial opens a GTK+ window and displays a movie, with accompanying audio. The media is fetched from the Internet, so the window might take a few seconds to appear, depending on your connection speed. The Window has some GTK+ buttons to Pause, Stop and Play the movie, and a slider to show the current position of the stream, which can be dragged to change it. Also, information about the stream is shown on a column at the right edge of the window.
> >
> >
> Bear in mind that there is no latency management (buffering), so on slow connections, the movie might stop after a few seconds. See how [](sdk-basic-tutorial-streaming.md) solves this issue. > Bear in mind that there is no latency management (buffering), so on slow connections, the movie might stop after a few seconds. See how [](tutorial-basic-streaming.md) solves this issue.
> >
> Required libraries: `gstreamer-video-1.0 gtk+-3.0 gstreamer-1.0` > Required libraries: `gstreamer-video-1.0 gtk+-3.0 gstreamer-1.0`
@ -562,7 +562,7 @@ g_signal_connect (G_OBJECT (bus), "message::application", (GCallback)application
gst_object_unref (bus); gst_object_unref (bus);
``` ```
In [](sdk-playback-tutorial-playbin-usage.md), `gst_bus_add_watch()` is In [](tutorial-playback-playbin-usage.md), `gst_bus_add_watch()` is
used to register a function that receives every message posted to the used to register a function that receives every message posted to the
GStreamer bus. We can achieve a finer granularity by using signals GStreamer bus. We can achieve a finer granularity by using signals
instead, which allow us to register only to the messages we are instead, which allow us to register only to the messages we are
@ -718,7 +718,7 @@ slider that allows seeking) can be very easily implemented thanks to
GStreamer and GTK+ collaborating. If the slider has been dragged to a GStreamer and GTK+ collaborating. If the slider has been dragged to a
new position, tell GStreamer to seek to that position new position, tell GStreamer to seek to that position
with `gst_element_seek_simple()` (as seen in [Basic tutorial 4: Time with `gst_element_seek_simple()` (as seen in [Basic tutorial 4: Time
management](sdk-basic-tutorial-time-management.md)). The management](tutorial-basic-time-management.md)). The
slider has been setup so its value represents seconds. slider has been setup so its value represents seconds.
It is worth mentioning that some performance (and responsiveness) can be It is worth mentioning that some performance (and responsiveness) can be
@ -835,7 +835,7 @@ static void application_cb (GstBus *bus, GstMessage *msg, CustomData *data) {
``` ```
Once me made sure it is the `tags-changed` message, we call the Once me made sure it is the `tags-changed` message, we call the
`analyze_streams` function, which is also used in [](sdk-playback-tutorial-playbin-usage.md) and is `analyze_streams` function, which is also used in [](tutorial-playback-playbin-usage.md) and is
more detailed there. It basically recovers the tags from the stream and more detailed there. It basically recovers the tags from the stream and
writes them in a text widget in the GUI. writes them in a text widget in the GUI.
@ -856,7 +856,7 @@ If this media player is not good enough for you, try to change the text
widget that displays the information about the streams into a proper widget that displays the information about the streams into a proper
list view (or tree view). Then, when the user selects a different list view (or tree view). Then, when the user selects a different
stream, make GStreamer switch streams! To switch streams, you will need stream, make GStreamer switch streams! To switch streams, you will need
to read [](sdk-playback-tutorial-playbin-usage.md). to read [](tutorial-playback-playbin-usage.md).
## Conclusion ## Conclusion

View File

@ -14,7 +14,7 @@ iOS device. It shows:
Slider](http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UISlider_Class/Reference/Reference.html) Slider](http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UISlider_Class/Reference/Reference.html)
- How to report the media size to adapt the display surface - How to report the media size to adapt the display surface
It also uses the knowledge gathered in the [](sdk-basic-tutorials.md) regarding: It also uses the knowledge gathered in the [](tutorials-basic.md) regarding:
- How to use `playbin` to play any kind of media - How to use `playbin` to play any kind of media
- How to handle network resilience problems - How to handle network resilience problems
@ -26,7 +26,7 @@ pieces to build a media player. The most complex part is assembling a
pipeline which retrieves, decodes and displays the media, but we pipeline which retrieves, decodes and displays the media, but we
already know that the `playbin` element can take care of all that for already know that the `playbin` element can take care of all that for
us. We only need to replace the manual pipeline we used in us. We only need to replace the manual pipeline we used in
[](sdk-ios-tutorial-video.md) with a single-element `playbin` pipeline [](tutorial-ios-video.md) with a single-element `playbin` pipeline
and we are good to go! and we are good to go!
However, we can do better than. We will add a [Time However, we can do better than. We will add a [Time
@ -344,7 +344,7 @@ for some kind of streams), or when it is first detected,
``` ```
Here we simply store the new size and ask the layout to be recalculated. Here we simply store the new size and ask the layout to be recalculated.
As we have already seen in [](sdk-ios-tutorial-a-running-pipeline.md), As we have already seen in [](tutorial-ios-a-running-pipeline.md),
methods which change the UI must be called from the main thread, and we methods which change the UI must be called from the main thread, and we
are now in a callback from some GStreamer internal thread. Hence, the are now in a callback from some GStreamer internal thread. Hence, the
usage usage
@ -352,7 +352,7 @@ of `dispatch_async()`[.](http://developer.android.com/reference/android/app/Acti
### Refreshing the Time Slider ### Refreshing the Time Slider
[](sdk-basic-tutorial-toolkit-integration.md) has [](tutorial-basic-toolkit-integration.md) has
already shown how to implement a Seek Bar (or [Time already shown how to implement a Seek Bar (or [Time
Slider](http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UISlider_Class/Reference/Reference.html) Slider](http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UISlider_Class/Reference/Reference.html)
in this tutorial) using the GTK+ toolkit. The implementation on iOS is in this tutorial) using the GTK+ toolkit. The implementation on iOS is
@ -1005,7 +1005,7 @@ static gboolean refresh_ui (GStreamerBackend *self) {
``` ```
If it is unknown, the clip duration is retrieved, as explained in If it is unknown, the clip duration is retrieved, as explained in
[](sdk-basic-tutorial-time-management.md). The current position is [](tutorial-basic-time-management.md). The current position is
retrieved next, and the UI is informed of both through its retrieved next, and the UI is informed of both through its
`setCurrentUIPosition` callback. `setCurrentUIPosition` callback.
@ -1144,7 +1144,7 @@ calls `execute_seek()` again.
### Network resilience ### Network resilience
[](sdk-basic-tutorial-streaming.md) has already [](tutorial-basic-streaming.md) has already
shown how to adapt to the variable nature of the network bandwidth by shown how to adapt to the variable nature of the network bandwidth by
using buffering. The same procedure is used here, by listening to the using buffering. The same procedure is used here, by listening to the
buffering buffering
@ -1207,4 +1207,4 @@ The next tutorial adds the missing bits to turn the application built
here into an acceptable iOS media player. here into an acceptable iOS media player.
[information]: images/icons/emoticons/information.png [information]: images/icons/emoticons/information.png
[screenshot]: images/sdk-ios-tutorial-a-basic-media-player-screenshot.png [screenshot]: images/tutorial-ios-a-basic-media-player-screenshot.png

View File

@ -10,7 +10,7 @@ be done with GStreamer on the iOS platform.
It is intended to be built and run, rather than analyzed for its It is intended to be built and run, rather than analyzed for its
pedagogical value, since it adds very little GStreamer knowledge over pedagogical value, since it adds very little GStreamer knowledge over
what has already been shown in [](sdk-ios-tutorial-a-basic-media-player.md). what has already been shown in [](tutorial-ios-a-basic-media-player.md).
It demonstrates the main functionality that a conventional media player It demonstrates the main functionality that a conventional media player
has, but it is not a complete application yet, therefore it has not been has, but it is not a complete application yet, therefore it has not been
@ -31,7 +31,7 @@ are given here.
A new `UIView` has been added, derived from `UITableViewController` A new `UIView` has been added, derived from `UITableViewController`
which shows a list of clips. When one is selected, the which shows a list of clips. When one is selected, the
`VideoViewController` from [](sdk-ios-tutorial-a-basic-media-player.md) appears `VideoViewController` from [](tutorial-ios-a-basic-media-player.md) appears
and its URI property is set to the URI of the selected clip. and its URI property is set to the URI of the selected clip.
The list of clips is populated from three sources: Media from the The list of clips is populated from three sources: Media from the
@ -60,5 +60,5 @@ already be used to showcase the integration of GStreamer and iOS.
It has been a pleasure having you here, and see you soon! It has been a pleasure having you here, and see you soon!
[screenshot0]: images/sdk-ios-tutorial-a-complete-media-player-screenshot-0.png [screenshot0]: images/tutorial-ios-a-complete-media-player-screenshot-0.png
[screenshot1]: images/sdk-ios-tutorial-a-complete-media-player-screenshot-1.png [screenshot1]: images/tutorial-ios-a-complete-media-player-screenshot-1.png

View File

@ -4,8 +4,8 @@
![screenshot] ![screenshot]
As seen in the [Basic](sdk-basic-tutorials.md) and As seen in the [Basic](tutorials-basic.md) and
[Playback](sdk-playback-tutorials.md) tutorials, GStreamer integrates [Playback](tutorials-playback.md) tutorials, GStreamer integrates
nicely with GLibs main loops, so pipeline operation and user interface nicely with GLibs main loops, so pipeline operation and user interface
can be monitored simultaneously in a very simple way. However, platforms can be monitored simultaneously in a very simple way. However, platforms
like iOS or Android do not use GLib and therefore extra care must be like iOS or Android do not use GLib and therefore extra care must be
@ -522,7 +522,7 @@ static void state_changed_cb (GstBus *bus, GstMessage *msg, GStreamerBackend *se
The `error_cb()` and `state_changed_cb()` are callbacks registered to The `error_cb()` and `state_changed_cb()` are callbacks registered to
the `error` and `state-changed` events in GStreamer, and their goal is the `error` and `state-changed` events in GStreamer, and their goal is
to inform the user about these events. These callbacks have been widely to inform the user about these events. These callbacks have been widely
used in the [Basic tutorials](sdk-basic-tutorials.md) and their used in the [Basic tutorials](tutorials-basic.md) and their
implementation is very similar, except for two points: implementation is very similar, except for two points:
Firstly, the messages are conveyed to the user through the Firstly, the messages are conveyed to the user through the
@ -605,7 +605,7 @@ elements.
These lines create a bus signal watch and connect to some interesting These lines create a bus signal watch and connect to some interesting
signals, just like we have been doing in the [Basic signals, just like we have been doing in the [Basic
tutorials](sdk-basic-tutorials.md). The creation of the watch is done tutorials](tutorials-basic.md). The creation of the watch is done
step by step instead of using `gst_bus_add_signal_watch()` to exemplify step by step instead of using `gst_bus_add_signal_watch()` to exemplify
how to use a custom GLib context. The interesting bit here is the usage how to use a custom GLib context. The interesting bit here is the usage
of a of a
@ -656,4 +656,4 @@ to them!
It has been a pleasure having you here, and see you soon! It has been a pleasure having you here, and see you soon!
[screenshot]: images/sdk-ios-tutorial-a-running-pipeline-screenshot.png [screenshot]: images/tutorial-ios-a-running-pipeline-screenshot.png

View File

@ -49,7 +49,7 @@ few C-to-Objective-C conversions that might be necessary (like `char
*` to `NSString *`, for example). This eases the usage of this class by *` to `NSString *`, for example). This eases the usage of this class by
the UI code, which is typically made in pure Objective-C. the UI code, which is typically made in pure Objective-C.
`GStreamerBackend` serves exactly the same purpose as the JNI code in `GStreamerBackend` serves exactly the same purpose as the JNI code in
the [](sdk-android-tutorials.md). the [](tutorials-android.md).
**GStreamerBackend.m** **GStreamerBackend.m**
@ -133,4 +133,4 @@ taken when developing specifically for the iOS platform.
It has been a pleasure having you here, and see you soon! It has been a pleasure having you here, and see you soon!
[screenshot]: images/sdk-ios-tutorial-link-against-gstreamer-screenshot.png [screenshot]: images/tutorial-ios-link-against-gstreamer-screenshot.png

View File

@ -4,7 +4,7 @@
![screenshot] ![screenshot]
Except for [](sdk-basic-tutorial-toolkit-integration.md), Except for [](tutorial-basic-toolkit-integration.md),
which embedded a video window on a GTK application, all tutorials so far which embedded a video window on a GTK application, all tutorials so far
relied on GStreamer video sinks to create a window to display their relied on GStreamer video sinks to create a window to display their
contents. The video sink on iOS is not capable of creating its own contents. The video sink on iOS is not capable of creating its own
@ -20,7 +20,7 @@ Since iOS does not provide a windowing system, a GStreamer video sink
cannot create pop-up windows as it would do on a Desktop platform. cannot create pop-up windows as it would do on a Desktop platform.
Fortunately, the `VideoOverlay` interface allows providing video sinks with Fortunately, the `VideoOverlay` interface allows providing video sinks with
an already created window onto which they can draw, as we have seen an already created window onto which they can draw, as we have seen
in [](sdk-basic-tutorial-toolkit-integration.md). in [](tutorial-basic-toolkit-integration.md).
In this tutorial, a `UIView` widget (actually, a subclass of it) is In this tutorial, a `UIView` widget (actually, a subclass of it) is
placed on the main storyboard. In the `viewDidLoad` method of the placed on the main storyboard. In the `viewDidLoad` method of the
@ -516,7 +516,7 @@ ask for it immediately.
The `gst_bin_get_by_interface()` method will examine the whole pipeline The `gst_bin_get_by_interface()` method will examine the whole pipeline
and return a pointer to an element which supports the requested and return a pointer to an element which supports the requested
interface. We are asking for the `VideoOverlay` interface, explained in interface. We are asking for the `VideoOverlay` interface, explained in
[](sdk-basic-tutorial-toolkit-integration.md), [](tutorial-basic-toolkit-integration.md),
which controls how to perform rendering into foreign (non-GStreamer) which controls how to perform rendering into foreign (non-GStreamer)
windows. The internal video sink instantiated by `autovideosink` is the windows. The internal video sink instantiated by `autovideosink` is the
only element in this pipeline implementing it, so it will be returned. only element in this pipeline implementing it, so it will be returned.
@ -575,4 +575,4 @@ to this tutorial in order to build a simple media player.
It has been a pleasure having you here, and see you soon! It has been a pleasure having you here, and see you soon!
[screenshot]: images/sdk-ios-tutorial-video-screenshot.png [screenshot]: images/tutorial-ios-video-screenshot.png

View File

@ -245,10 +245,10 @@ This tutorial has shown:
It has been a pleasure having you here, and see you soon\! It has been a pleasure having you here, and see you soon\!
[information]: images/icons/emoticons/information.png [information]: images/icons/emoticons/information.png
[Mac]: sdk-installing-on-mac-osx.md [Mac]: installing-on-mac-osx.md
[Windows]: sdk-installing-on-windows.md [Windows]: installing-on-windows.md
[Mac OS X]: sdk-installing-on-mac-osx.md#building-the-tutorials [Mac OS X]: installing-on-mac-osx.md#building-the-tutorials
[1]: sdk-installing-on-windows.md#running-the-tutorials [1]: installing-on-windows.md#running-the-tutorials
[iOS]: sdk-installing-for-ios-development.md#building-the-tutorials [iOS]: installing-for-ios-development.md#building-the-tutorials
[android]: sdk-installing-for-android-development.md#building-the-tutorials [android]: installing-for-android-development.md#building-the-tutorials
[warning]: images/icons/emoticons/warning.png [warning]: images/icons/emoticons/warning.png

View File

@ -10,7 +10,7 @@ This tutorial shows:
- How to change them - How to change them
## Introduction ## Introduction
[](sdk-basic-tutorial-toolkit-integration.md) has [](tutorial-basic-toolkit-integration.md) has
already explained the concept of GObject interfaces: applications use already explained the concept of GObject interfaces: applications use
them to find out if certain functionality is available, regardless of them to find out if certain functionality is available, regardless of
the actual element which implements it. the actual element which implements it.
@ -298,10 +298,10 @@ It has been a pleasure having you here, and see you soon\!
[information]: images/icons/emoticons/information.png [information]: images/icons/emoticons/information.png
[Mac]: sdk-installing-on-mac-osx.md [Mac]: installing-on-mac-osx.md
[Windows]: sdk-installing-on-windows.md [Windows]: installing-on-windows.md
[Mac OS X]: sdk-installing-on-mac-osx.md#building-the-tutorials [Mac OS X]: installing-on-mac-osx.md#building-the-tutorials
[1]: sdk-installing-on-windows.md#running-the-tutorials [1]: installing-on-windows.md#running-the-tutorials
[iOS]: sdk-installing-for-ios-development.md#building-the-tutorials [iOS]: installing-for-ios-development.md#building-the-tutorials
[android]: sdk-installing-for-android-development.md#building-the-tutorials [android]: installing-for-android-development.md#building-the-tutorials
[warning]: images/icons/emoticons/warning.png [warning]: images/icons/emoticons/warning.png

View File

@ -156,7 +156,7 @@ Now we need to create a Ghost Pad so this partial pipeline inside the
Bin can be connected to the outside. This Ghost Pad will be connected to Bin can be connected to the outside. This Ghost Pad will be connected to
a Pad in one of the internal Elements (the sink pad of the equalizer), a Pad in one of the internal Elements (the sink pad of the equalizer),
so we retrieve this Pad with `gst_element_get_static_pad()`. Remember so we retrieve this Pad with `gst_element_get_static_pad()`. Remember
from [](sdk-basic-tutorial-multithreading-and-pad-availability.md) that from [](tutorial-basic-multithreading-and-pad-availability.md) that
if this was a Request Pad instead of an Always Pad, we would need to use if this was a Request Pad instead of an Always Pad, we would need to use
`gst_element_request_pad()`. `gst_element_request_pad()`.
@ -212,10 +212,10 @@ This tutorial has shown:
It has been a pleasure having you here, and see you soon\! It has been a pleasure having you here, and see you soon\!
[information]: images/icons/emoticons/information.png [information]: images/icons/emoticons/information.png
[Mac]: sdk-installing-on-mac-osx.md [Mac]: installing-on-mac-osx.md
[Windows]: sdk-installing-on-windows.md [Windows]: installing-on-windows.md
[Mac OS X]: sdk-installing-on-mac-osx.md#building-the-tutorials [Mac OS X]: installing-on-mac-osx.md#building-the-tutorials
[1]: sdk-installing-on-windows.md#running-the-tutorials [1]: installing-on-windows.md#running-the-tutorials
[iOS]: sdk-installing-for-ios-development.md#building-the-tutorials [iOS]: installing-for-ios-development.md#building-the-tutorials
[android]: sdk-installing-for-android-development.md#building-the-tutorials [android]: installing-for-android-development.md#building-the-tutorials
[warning]: images/icons/emoticons/warning.png [warning]: images/icons/emoticons/warning.png

View File

@ -77,8 +77,8 @@ enabled, but, unfortunately, this option is not available in all audio
drivers. drivers.
Another solution involves, using a custom sinkbin (see Another solution involves, using a custom sinkbin (see
[](sdk-playback-tutorial-custom-playbin-sinks.md)) which includes a [](tutorial-playback-custom-playbin-sinks.md)) which includes a
`capsfilter` element (see [](sdk-basic-tutorial-handy-elements.md)) `capsfilter` element (see [](tutorial-basic-handy-elements.md))
and an audio sink. The caps that the external decoder supports are and an audio sink. The caps that the external decoder supports are
then set in the capsfiler so the wrong format is not output. This then set in the capsfiler so the wrong format is not output. This
allows the application to enforce the appropriate format instead of allows the application to enforce the appropriate format instead of

View File

@ -579,11 +579,11 @@ code of the tutorial and any accessory files needed to build it.
It has been a pleasure having you here, and see you soon! It has been a pleasure having you here, and see you soon!
[Playback tutorial 2: Subtitle management]: sdk-playback-tutorial-subtitle-management.md [Playback tutorial 2: Subtitle management]: tutorial-playback-subtitle-management.md
[information]: images/icons/emoticons/information.png [information]: images/icons/emoticons/information.png
[Mac]: sdk-installing-on-mac-osx.md [Mac]: installing-on-mac-osx.md
[Windows]: sdk-installing-on-windows.md [Windows]: installing-on-windows.md
[Mac OS X]: sdk-installing-on-mac-osx.md#building-the-tutorials [Mac OS X]: installing-on-mac-osx.md#building-the-tutorials
[1]: sdk-installing-on-windows.md#running-the-tutorials [1]: installing-on-windows.md#running-the-tutorials
[iOS]: sdk-installing-for-ios-development.md#building-the-tutorials [iOS]: installing-for-ios-development.md#building-the-tutorials
[android]: sdk-installing-for-android-development.md#building-the-tutorials [android]: installing-for-android-development.md#building-the-tutorials

View File

@ -2,10 +2,10 @@
## Goal ## Goal
[](sdk-basic-tutorial-streaming.md) showed how to [](tutorial-basic-streaming.md) showed how to
enhance the user experience in poor network conditions, by taking enhance the user experience in poor network conditions, by taking
buffering into account. This tutorial further expands buffering into account. This tutorial further expands
[](sdk-basic-tutorial-streaming.md) by enabling [](tutorial-basic-streaming.md) by enabling
the local storage of the streamed media, and describes the advantages of the local storage of the streamed media, and describes the advantages of
this technique. In particular, it shows: this technique. In particular, it shows:
@ -18,7 +18,7 @@ this technique. In particular, it shows:
When streaming, data is fetched from the network and a small buffer of When streaming, data is fetched from the network and a small buffer of
future-data is kept to ensure smooth playback (see future-data is kept to ensure smooth playback (see
[](sdk-basic-tutorial-streaming.md)). However, data [](tutorial-basic-streaming.md)). However, data
is discarded as soon as it is displayed or rendered (there is no is discarded as soon as it is displayed or rendered (there is no
past-data buffer). This means, that if a user wants to jump back and past-data buffer). This means, that if a user wants to jump back and
continue playback from a point in the past, data needs to be continue playback from a point in the past, data needs to be
@ -240,7 +240,7 @@ int main(int argc, char *argv[]) {
## Walkthrough ## Walkthrough
This code is based on that of [](sdk-basic-tutorial-streaming.md). Lets review This code is based on that of [](tutorial-basic-streaming.md). Lets review
only the differences. only the differences.
### Setup ### Setup
@ -322,7 +322,7 @@ static gboolean refresh_ui (CustomData *data) {
The first thing we do in `refresh_ui` is construct a new Buffering The first thing we do in `refresh_ui` is construct a new Buffering
`GstQuery` with `gst_query_new_buffering()` and pass it to the pipeline `GstQuery` with `gst_query_new_buffering()` and pass it to the pipeline
(`playbin`) with `gst_element_query()`. In [](sdk-basic-tutorial-time-management.md) we have (`playbin`) with `gst_element_query()`. In [](tutorial-basic-time-management.md) we have
already seen how to perform simple queries like Position and Duration already seen how to perform simple queries like Position and Duration
using specific methods. More complex queries, like Buffering, need to using specific methods. More complex queries, like Buffering, need to
use the more general `gst_element_query()`. use the more general `gst_element_query()`.
@ -419,10 +419,10 @@ This tutorial has shown:
It has been a pleasure having you here, and see you soon! It has been a pleasure having you here, and see you soon!
[information]: images/icons/emoticons/information.png [information]: images/icons/emoticons/information.png
[Mac]: sdk-installing-on-mac-osx.md [Mac]: installing-on-mac-osx.md
[Windows]: sdk-installing-on-windows.md [Windows]: installing-on-windows.md
[Mac OS X]: sdk-installing-on-mac-osx.md#building-the-tutorials [Mac OS X]: installing-on-mac-osx.md#building-the-tutorials
[1]: sdk-installing-on-windows.md#running-the-tutorials [1]: installing-on-windows.md#running-the-tutorials
[iOS]: sdk-installing-for-ios-development.md#building-the-tutorials [iOS]: installing-for-ios-development.md#building-the-tutorials
[android]: sdk-installing-for-android-development.md#building-the-tutorials [android]: installing-for-android-development.md#building-the-tutorials
[warning]: images/icons/emoticons/warning.png [warning]: images/icons/emoticons/warning.png

View File

@ -2,11 +2,11 @@
## Goal ## Goal
[](sdk-basic-tutorial-short-cutting-the-pipeline.md) showed [](tutorial-basic-short-cutting-the-pipeline.md) showed
how an application can manually extract or inject data into a pipeline how an application can manually extract or inject data into a pipeline
by using two special elements called `appsrc` and `appsink`. by using two special elements called `appsrc` and `appsink`.
`playbin` allows using these elements too, but the method to connect `playbin` allows using these elements too, but the method to connect
them is different. To connect an `appsink` to `playbin` see [](sdk-playback-tutorial-custom-playbin-sinks.md). them is different. To connect an `appsink` to `playbin` see [](tutorial-playback-custom-playbin-sinks.md).
This tutorial shows: This tutorial shows:
- How to connect `appsrc` with `playbin` - How to connect `appsrc` with `playbin`
@ -219,10 +219,10 @@ static void source_setup (GstElement *pipeline, GstElement *source, CustomData *
``` ```
The configuration of the `appsrc` is exactly the same as in The configuration of the `appsrc` is exactly the same as in
[](sdk-basic-tutorial-short-cutting-the-pipeline.md): [](tutorial-basic-short-cutting-the-pipeline.md):
the caps are set to `audio/x-raw`, and two callbacks are registered, the caps are set to `audio/x-raw`, and two callbacks are registered,
so the element can tell the application when it needs to start and stop so the element can tell the application when it needs to start and stop
pushing data. See [](sdk-basic-tutorial-short-cutting-the-pipeline.md) pushing data. See [](tutorial-basic-short-cutting-the-pipeline.md)
for more details. for more details.
From this point onwards, `playbin` takes care of the rest of the From this point onwards, `playbin` takes care of the rest of the
@ -230,12 +230,12 @@ pipeline, and the application only needs to worry about generating more
data when told so. data when told so.
To learn how data can be extracted from `playbin` using the To learn how data can be extracted from `playbin` using the
`appsink` element, see [](sdk-playback-tutorial-custom-playbin-sinks.md). `appsink` element, see [](tutorial-playback-custom-playbin-sinks.md).
## Conclusion ## Conclusion
This tutorial applies the concepts shown in This tutorial applies the concepts shown in
[](sdk-basic-tutorial-short-cutting-the-pipeline.md) to [](tutorial-basic-short-cutting-the-pipeline.md) to
`playbin`. In particular, it has shown: `playbin`. In particular, it has shown:
- How to connect `appsrc` with `playbin` using the special - How to connect `appsrc` with `playbin` using the special

View File

@ -286,14 +286,14 @@ static gboolean handle_keyboard (GIOChannel *source, GIOCondition cond, CustomDa
> page._ Bear in mind that > page._ Bear in mind that
> there is no latency management (buffering), so on slow connections, > there is no latency management (buffering), so on slow connections,
> the movie might stop after a few seconds. See how > the movie might stop after a few seconds. See how
> [](sdk-basic-tutorial-streaming.md) solves this issue. > [](tutorial-basic-streaming.md) solves this issue.
> >
> Required libraries: `gstreamer-1.0` > Required libraries: `gstreamer-1.0`
## Walkthrough ## Walkthrough
This tutorial is copied from This tutorial is copied from
[](sdk-playback-tutorial-playbin-usage.md) with some changes, so let's [](tutorial-playback-playbin-usage.md) with some changes, so let's
review only the changes. review only the changes.
``` c ``` c
@ -359,7 +359,7 @@ g_object_set (data.playbin, "flags", flags, NULL);
We set the `flags` property to allow Audio, Video and Text (Subtitles). We set the `flags` property to allow Audio, Video and Text (Subtitles).
The rest of the tutorial is the same as [](sdk-playback-tutorial-playbin-usage.md), except The rest of the tutorial is the same as [](tutorial-playback-playbin-usage.md), except
that the keyboard input changes the `current-text` property instead of that the keyboard input changes the `current-text` property instead of
the `current-audio`. As before, keep in mind that stream changes are not the `current-audio`. As before, keep in mind that stream changes are not
immediate, since there is a lot of information flowing through the immediate, since there is a lot of information flowing through the

View File

@ -4,11 +4,11 @@
These tutorials describe Qt-specific topics. General GStreamer concepts These tutorials describe Qt-specific topics. General GStreamer concepts
will not be explained in these tutorials, so the [Basic will not be explained in these tutorials, so the [Basic
tutorials](sdk-basic-tutorials.md) should tutorials](tutorials-basic.md) should
be reviewed first. The reader should also be familiar with basic Qt be reviewed first. The reader should also be familiar with basic Qt
programming techniques. programming techniques.
The Qt tutorials have the same structure as the [Android The Qt tutorials have the same structure as the [Android
tutorials](sdk-android-tutorials.md): Each one builds on top of the tutorials](tutorials-android.md): Each one builds on top of the
previous one and adds progressively more functionality, until a working previous one and adds progressively more functionality, until a working
media player application is obtained in \#FIXME\# media player application is obtained in \#FIXME\#

View File

@ -4,18 +4,18 @@
These tutorials describe Android-specific topics. General GStreamer These tutorials describe Android-specific topics. General GStreamer
concepts will not be explained in these tutorials, so the concepts will not be explained in these tutorials, so the
[](sdk-basic-tutorials.md) should be reviewed first. The reader should [](tutorials-basic.md) should be reviewed first. The reader should
also be familiar with basic Android programming techniques. also be familiar with basic Android programming techniques.
Each Android tutorial builds on top of the previous one and adds Each Android tutorial builds on top of the previous one and adds
progressively more functionality, until a working media player progressively more functionality, until a working media player
application is obtained in [](sdk-android-tutorial-a-complete-media-player.md). application is obtained in [](tutorial-android-a-complete-media-player.md).
This is the same media player application used to advertise This is the same media player application used to advertise
GStreamer on Android, and the download link can be found in GStreamer on Android, and the download link can be found in
the [](sdk-android-tutorial-a-complete-media-player.md) page. the [](tutorial-android-a-complete-media-player.md) page.
Make sure to have read the instructions in Make sure to have read the instructions in
[](sdk-installing-for-android-development.md) before jumping into the [](installing-for-android-development.md) before jumping into the
Android tutorials. Android tutorials.
### A note on the documentation ### A note on the documentation

View File

@ -4,17 +4,17 @@
These tutorials describe iOS-specific topics. General GStreamer These tutorials describe iOS-specific topics. General GStreamer
concepts will not be explained in these tutorials, so the concepts will not be explained in these tutorials, so the
[](sdk-basic-tutorials.md) should be reviewed first. The reader should [](tutorials-basic.md) should be reviewed first. The reader should
also be familiar with basic iOS programming techniques. also be familiar with basic iOS programming techniques.
The iOS tutorials have the same structure as the The iOS tutorials have the same structure as the
[](sdk-android-tutorials.md): Each one builds on top of the previous [](tutorials-android.md): Each one builds on top of the previous
one and adds progressively more functionality, until a working media one and adds progressively more functionality, until a working media
player application is obtained in player application is obtained in
[](sdk-ios-tutorial-a-complete-media-player.md). [](tutorial-ios-a-complete-media-player.md).
Make sure to have read the instructions in Make sure to have read the instructions in
[](sdk-installing-for-ios-development.md) before jumping into the iOS [](installing-for-ios-development.md) before jumping into the iOS
tutorials. tutorials.
All iOS tutorials are split into the following classes: All iOS tutorials are split into the following classes:

View File

@ -77,11 +77,11 @@ purposes.
- [Sintel, the Durian Open Movie Project] - [Sintel, the Durian Open Movie Project]
[installing GStreamer]: sdk-installing.md [installing GStreamer]: installing.md
[GStreamer documentation]: http://gstreamer.freedesktop.org/documentation/ [GStreamer documentation]: http://gstreamer.freedesktop.org/documentation/
[Basic tutorials]: sdk-basic-tutorials.md [Basic tutorials]: tutorials-basic.md
[Playback tutorials]: sdk-playback-tutorials.md [Playback tutorials]: tutorials-playback.md
[Android tutorials]: sdk-android-tutorials.md [Android tutorials]: tutorials-android.md
[iOS tutorials]: sdk-ios-tutorials.md [iOS tutorials]: tutorials-ios.md
[Table of Concepts]: sdk-table-of-concepts.md [Table of Concepts]: table-of-concepts.md
[Sintel, the Durian Open Movie Project]: http://www.sintel.org/ [Sintel, the Durian Open Movie Project]: http://www.sintel.org/