Remove all reference to the SDK in pages names
10
TODO.md
|
@ -5,13 +5,13 @@ gstreamer.com content to hotdoc
|
|||
|
||||
Pages to review:
|
||||
- [installing]
|
||||
- sdk-installing-on-windows.md
|
||||
- installing-on-windows.md
|
||||
|
||||
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]
|
||||
- sdk-basic-media-player.md
|
||||
- sdk-qt-gstreamer-vs-c-gstreamer.md
|
||||
- sdk-using-appsink-appsrc-in-qt.md
|
||||
- tutorial-qt-tutorials.md [tpm: this should all be rewritten from scratch with qmlglsink; QtGStreamer is outdated and unmaintained, we should not promote it]
|
||||
- basic-media-player.md
|
||||
- qt-gstreamer-vs-c-gstreamer.md
|
||||
- using-appsink-appsrc-in-qt.md
|
||||
|
||||
|
||||
Deleted pages:
|
||||
|
|
|
@ -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
|
||||
[XCode]: https://developer.apple.com/devcenter/ios/index.action#downloads
|
||||
[here]: http://www.freedesktop.org/software/gstreamer-sdk/cerbero.cbc.template
|
||||
[Installing GStreamer]: sdk-installing.md
|
||||
[Installing GStreamer]: installing.md
|
|
@ -1,7 +1,7 @@
|
|||
# Mac OS X deployment
|
||||
|
||||
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
|
||||
this documentation in the future.
|
||||
|
||||
|
@ -17,7 +17,7 @@ are somewhat blurred.
|
|||
|
||||
With PackageMaker, simply add GStreamer **runtime ** disk image
|
||||
([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
|
||||
installs GStreamer package. You can use the following example, where you
|
||||
should replace `$INSTALL_PATH` with the path where your installer copied
|
|
@ -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
|
||||
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.
|
||||
|
||||
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
|
||||
files for your application.
|
||||
|
||||
|
@ -115,7 +115,7 @@ class Recipe(recipe.Recipe):
|
|||
Cerbero gets the software sources to build from a GIT repository, which
|
||||
is specified via the `git_root` configuration variable from the Cerbero
|
||||
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).
|
||||
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
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
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 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
|
||||
documentation in the future.
|
||||
|
||||
|
@ -15,7 +15,7 @@ among all applications that use it, though, the extra space requirements
|
|||
are somewhat blurred.
|
||||
|
||||
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
|
||||
it silently using `msiexec`. `msiexec` is the tool that wraps most of
|
||||
the Windows Installer functionality and offers a number of options to
|
|
@ -122,7 +122,7 @@ The following pages give further directions for some of the above
|
|||
options.
|
||||
|
||||
- Platform-specific packaging methods:
|
||||
- For [Mac OS X](sdk-mac-osx-deployment.md)
|
||||
- For [Windows](sdk-windows-deployment.md)
|
||||
- For [Mac OS X](deploying-mac-osx.md)
|
||||
- For [Windows](deploying-windows.md)
|
||||
- [Multiplatform deployment using
|
||||
Cerbero](sdk-multiplatform-deployment-using-cerbero.md)
|
||||
Cerbero](deploying-multiplatform-using-cerbero.md)
|
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 89 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 88 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 159 KiB After Width: | Height: | Size: 159 KiB |
Before Width: | Height: | Size: 211 KiB After Width: | Height: | Size: 211 KiB |
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
|
@ -293,7 +293,7 @@ and used as follows:
|
|||
| `GSTREAMER_PLUGINS_ENCODING` | encodebin |
|
||||
| `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
|
||||
[Android SDK]: http://developer.android.com/sdk/index.html
|
|
@ -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
|
||||
ready to build and run. All necessary infrastructure is already in
|
||||
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).
|
|
@ -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)
|
||||
files are **additional** files you can use to deploy GStreamer binaries
|
||||
alongside your application (see [Windows
|
||||
deployment](sdk-windows-deployment.md)).
|
||||
deployment](deploying-windows.md)).
|
||||
|
||||
Get **the Runtime and Development files** installers appropriate for
|
||||
your architecture from here:
|
|
@ -6,10 +6,10 @@ short-description: Download and install GStreamer
|
|||
|
||||
## Choose your platform by clicking on the corresponding logo
|
||||
|
||||
[![](attachments/mac.png)](sdk-installing-on-mac-osx.md)
|
||||
[![](attachments/windows.png)](sdk-installing-on-windows.md)
|
||||
[![](attachments/android.png)](sdk-installing-for-android-development.md)
|
||||
[![](attachments/ios.jpeg)](sdk-installing-for-ios-development.md)
|
||||
[![](attachments/mac.png)](installing-on-mac-osx.md)
|
||||
[![](attachments/windows.png)](installing-on-windows.md)
|
||||
[![](attachments/android.png)](installing-for-android-development.md)
|
||||
[![](attachments/ios.jpeg)](installing-for-ios-development.md)
|
||||
|
||||
## 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
|
||||
information). If you really want to run upstream style binaries on
|
||||
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).
|
108
sitemap.txt
|
@ -1,11 +1,11 @@
|
|||
index.md
|
||||
sdk-installing.md
|
||||
sdk-installing-for-android-development.md
|
||||
sdk-installing-for-ios-development.md
|
||||
sdk-installing-on-mac-osx.md
|
||||
sdk-installing-on-windows.md
|
||||
sdk-installing-on-linux.md
|
||||
sdk-building-from-source-using-cerbero.md
|
||||
installing.md
|
||||
installing-for-android-development.md
|
||||
installing-for-ios-development.md
|
||||
installing-on-mac-osx.md
|
||||
installing-on-windows.md
|
||||
installing-on-linux.md
|
||||
building-from-source-using-cerbero.md
|
||||
manual-index.md
|
||||
manual-introduction.md
|
||||
manual-gstreamer.md
|
||||
|
@ -40,54 +40,54 @@ index.md
|
|||
manual-integration.md
|
||||
manual-licensing.md
|
||||
manual-quotes.md
|
||||
sdk-tutorials.md
|
||||
sdk-basic-tutorials.md
|
||||
sdk-basic-tutorial-hello-world.md
|
||||
sdk-basic-tutorial-concepts.md
|
||||
sdk-basic-tutorial-dynamic-pipelines.md
|
||||
sdk-basic-tutorial-time-management.md
|
||||
sdk-basic-tutorial-toolkit-integration.md
|
||||
sdk-basic-tutorial-media-formats-and-pad-capabilities.md
|
||||
sdk-basic-tutorial-multithreading-and-pad-availability.md
|
||||
sdk-basic-tutorial-short-cutting-the-pipeline.md
|
||||
sdk-basic-tutorial-media-information-gathering.md
|
||||
sdk-basic-tutorial-gstreamer-tools.md
|
||||
sdk-basic-tutorial-debugging-tools.md
|
||||
sdk-basic-tutorial-streaming.md
|
||||
sdk-basic-tutorial-playback-speed.md
|
||||
sdk-basic-tutorial-handy-elements.md
|
||||
sdk-basic-tutorial-platform-specific-elements.md
|
||||
sdk-playback-tutorials.md
|
||||
sdk-playback-tutorial-playbin-usage.md
|
||||
sdk-playback-tutorial-subtitle-management.md
|
||||
sdk-playback-tutorial-short-cutting-the-pipeline.md
|
||||
sdk-playback-tutorial-progressive-streaming.md
|
||||
sdk-playback-tutorial-color-balance.md
|
||||
sdk-playback-tutorial-audio-visualization.md
|
||||
sdk-playback-tutorial-custom-playbin-sinks.md
|
||||
sdk-playback-tutorial-hardware-accelerated-video-decoding.md
|
||||
sdk-playback-tutorial-digital-audio-pass-through.md
|
||||
sdk-android-tutorials.md
|
||||
sdk-android-tutorial-link-against-gstreamer.md
|
||||
sdk-android-tutorial-a-running-pipeline.md
|
||||
sdk-android-tutorial-video.md
|
||||
sdk-android-tutorial-media-player.md
|
||||
sdk-android-tutorial-a-complete-media-player.md
|
||||
sdk-ios-tutorials.md
|
||||
sdk-ios-tutorial-link-against-gstreamer.md
|
||||
sdk-ios-tutorial-a-running-pipeline.md
|
||||
sdk-ios-tutorial-video.md
|
||||
sdk-ios-tutorial-a-basic-media-player.md
|
||||
sdk-ios-tutorial-a-complete-media-player.md
|
||||
sdk-table-of-concepts.md
|
||||
sdk-deploying-your-application.md
|
||||
sdk-mac-osx-deployment.md
|
||||
sdk-windows-deployment.md
|
||||
sdk-multiplatform-deployment-using-cerbero.md
|
||||
tutorials.md
|
||||
tutorials-basic.md
|
||||
tutorial-basic-hello-world.md
|
||||
tutorial-basic-concepts.md
|
||||
tutorial-basic-dynamic-pipelines.md
|
||||
tutorial-basic-time-management.md
|
||||
tutorial-basic-toolkit-integration.md
|
||||
tutorial-basic-media-formats-and-pad-capabilities.md
|
||||
tutorial-basic-multithreading-and-pad-availability.md
|
||||
tutorial-basic-short-cutting-the-pipeline.md
|
||||
tutorial-basic-media-information-gathering.md
|
||||
tutorial-basic-gstreamer-tools.md
|
||||
tutorial-basic-debugging-tools.md
|
||||
tutorial-basic-streaming.md
|
||||
tutorial-basic-playback-speed.md
|
||||
tutorial-basic-handy-elements.md
|
||||
tutorial-basic-platform-specific-elements.md
|
||||
tutorials-playback.md
|
||||
tutorial-playback-playbin-usage.md
|
||||
tutorial-playback-subtitle-management.md
|
||||
tutorial-playback-short-cutting-the-pipeline.md
|
||||
tutorial-playback-progressive-streaming.md
|
||||
tutorial-playback-color-balance.md
|
||||
tutorial-playback-audio-visualization.md
|
||||
tutorial-playback-custom-playbin-sinks.md
|
||||
tutorial-playback-hardware-accelerated-video-decoding.md
|
||||
tutorial-playback-digital-audio-pass-through.md
|
||||
tutorials-android.md
|
||||
tutorial-android-link-against-gstreamer.md
|
||||
tutorial-android-a-running-pipeline.md
|
||||
tutorial-android-video.md
|
||||
tutorial-android-media-player.md
|
||||
tutorial-android-a-complete-media-player.md
|
||||
tutorials-ios.md
|
||||
tutorial-ios-link-against-gstreamer.md
|
||||
tutorial-ios-a-running-pipeline.md
|
||||
tutorial-ios-video.md
|
||||
tutorial-ios-a-basic-media-player.md
|
||||
tutorial-ios-a-complete-media-player.md
|
||||
table-of-concepts.md
|
||||
deploying-your-application.md
|
||||
deploying-mac-osx.md
|
||||
deploying-windows.md
|
||||
deploying-multiplatform-using-cerbero.md
|
||||
gstreamer-command-line-tools.md
|
||||
gst-inspect.md
|
||||
gst-launch.md
|
||||
ges-launch.md
|
||||
tool-gst-inspect.md
|
||||
tool-gst-launch.md
|
||||
tool-ges-launch.md
|
||||
pwg-index.md
|
||||
pwg-introduction.md
|
||||
pwg-intro-preface.md
|
||||
|
|
|
@ -28,16 +28,16 @@ concepts is discussed.
|
|||
- Tools: [Basic tutorial 10: GStreamer tools]
|
||||
- Threads: [Basic tutorial 7: Multithreading and Pad Availability]
|
||||
|
||||
[Playback tutorial 1: Playbin usage]: sdk-playback-tutorial-playbin-usage.md
|
||||
[Basic tutorial 8: Short-cutting the pipeline]: sdk-basic-tutorial-short-cutting-the-pipeline.md
|
||||
[Basic tutorial 2: GStreamer concepts]: sdk-basic-tutorial-concepts.md
|
||||
[Basic tutorial 6: Media formats and Pad Capabilities]: sdk-basic-tutorial-media-formats-and-pad-capabilities.md
|
||||
[Basic tutorial 11: Debugging tools]: sdk-basic-tutorial-debugging-tools.md
|
||||
[Basic tutorial 9: Media information gathering]: sdk-basic-tutorial-media-information-gathering.md
|
||||
[Basic tutorial 10: GStreamer tools]: sdk-basic-tutorial-gstreamer-tools.md
|
||||
[gst-launch-1.0]: gst-launch.md
|
||||
[Basic tutorial 5: GUI toolkit integration]: sdk-basic-tutorial-toolkit-integration.md
|
||||
[Basic tutorial 3: Dynamic pipelines]: sdk-basic-tutorial-dynamic-pipelines.md
|
||||
[Basic tutorial 7: Multithreading and Pad Availability]: sdk-basic-tutorial-multithreading-and-pad-availability.md
|
||||
[Basic tutorial 4: Time management]: sdk-basic-tutorial-time-management.md
|
||||
[Playback tutorial 2: Subtitle management]: sdk-playback-tutorial-subtitle-management.md
|
||||
[Playback tutorial 1: Playbin usage]: tutorial-playback-playbin-usage.md
|
||||
[Basic tutorial 8: Short-cutting the pipeline]: tutorial-basic-short-cutting-the-pipeline.md
|
||||
[Basic tutorial 2: GStreamer concepts]: tutorial-basic-concepts.md
|
||||
[Basic tutorial 6: Media formats and Pad Capabilities]: tutorial-basic-media-formats-and-pad-capabilities.md
|
||||
[Basic tutorial 11: Debugging tools]: tutorial-basic-debugging-tools.md
|
||||
[Basic tutorial 9: Media information gathering]: tutorial-basic-media-information-gathering.md
|
||||
[Basic tutorial 10: GStreamer tools]: tutorial-basic-gstreamer-tools.md
|
||||
[gst-launch-1.0]: tool-gst-launch.md
|
||||
[Basic tutorial 5: GUI toolkit integration]: tutorial-basic-toolkit-integration.md
|
||||
[Basic tutorial 3: Dynamic pipelines]: tutorial-basic-dynamic-pipelines.md
|
||||
[Basic tutorial 7: Multithreading and Pad Availability]: tutorial-basic-multithreading-and-pad-availability.md
|
||||
[Basic tutorial 4: Time management]: tutorial-basic-time-management.md
|
||||
[Playback tutorial 2: Subtitle management]: tutorial-playback-subtitle-management.md
|
|
@ -9,7 +9,7 @@ be done with GStreamer in the Android platform.
|
|||
|
||||
It is intended to be downloaded in final, compiled, form rather than
|
||||
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?**
|
||||
|
@ -56,7 +56,7 @@ retrieved and checked for such URI.
|
|||
## Implementing a file chooser dialog
|
||||
|
||||
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
|
||||
Dialog](http://code.google.com/p/android-file-dialog/) project) that
|
||||
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!
|
||||
|
||||
[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
|
|
@ -4,8 +4,8 @@
|
|||
|
||||
![screenshot]
|
||||
|
||||
The tutorials seen in the [Basic](sdk-basic-tutorials.md) and
|
||||
[Playback](sdk-playback-tutorials.md) sections are intended for Desktop
|
||||
The tutorials seen in the [Basic](tutorials-basic.md) and
|
||||
[Playback](tutorials-playback.md) sections are intended for Desktop
|
||||
platforms and, therefore, their main thread is allowed to block (using
|
||||
`gst_bus_pop_filtered()`) or relinquish control to a GLib main loop. On
|
||||
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\!
|
||||
|
||||
[screenshot]: images/sdk-android-tutorial-a-running-pipeline-screenshot.png
|
||||
[screenshot]: images/tutorial-android-a-running-pipeline-screenshot.png
|
|
@ -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.
|
||||
|
||||
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.
|
||||
|
||||
Let’s 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\!
|
||||
|
||||
[screenshot]: images/sdk-android-tutorial-link-against-gstreamer-screenshot.png
|
||||
[screenshot]: images/tutorial-android-link-against-gstreamer-screenshot.png
|
|
@ -14,7 +14,7 @@ Android device. It shows:
|
|||
Bar](http://developer.android.com/reference/android/widget/SeekBar.html)
|
||||
- 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 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
|
||||
that the `playbin` element can take care of all that for us. We only
|
||||
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!
|
||||
|
||||
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
|
||||
GStreamerSurfaceView will be called and the new size will be taken
|
||||
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
|
||||
callback from some GStreamer internal thread. Hence, the usage of
|
||||
[runOnUiThread()](http://developer.android.com/reference/android/app/Activity.html#runOnUiThread\(java.lang.Runnable\)).
|
||||
|
||||
### Refreshing the Seek Bar
|
||||
|
||||
[](sdk-basic-tutorial-toolkit-integration.md)
|
||||
[](tutorial-basic-toolkit-integration.md)
|
||||
has already shown how to implement a [Seek
|
||||
Bar](http://developer.android.com/reference/android/widget/SeekBar.html) using
|
||||
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
|
||||
[](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
|
||||
`setCurrentPosition()` callback.
|
||||
|
||||
|
@ -1333,7 +1333,7 @@ The one-shot timer calls `delayed_seek_cb()`, which simply calls
|
|||
|
||||
### 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
|
||||
using buffering. The same procedure is used here, by listening to the
|
||||
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!
|
||||
|
||||
[screenshot]: images/sdk-android-tutorial-media-player-screenshot.png
|
||||
[screenshot]: images/tutorial-android-media-player-screenshot.png
|
||||
[information]: images/icons/emoticons/information.png
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
![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
|
||||
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
|
||||
|
@ -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.
|
||||
Fortunately, the `VideoOverlay` interface allows providing video sinks with
|
||||
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
|
||||
[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
|
||||
and return a pointer to an element which supports the requested
|
||||
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)
|
||||
windows. The internal video sink instantiated by `autovideosink` is the
|
||||
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\!
|
||||
|
||||
|
||||
[screenshot]: images/sdk-android-tutorial-video-screenshot.png
|
||||
[screenshot]: images/tutorial-android-video-screenshot.png
|
|
@ -104,11 +104,11 @@ int main(int argc, char *argv[]) {
|
|||
> ![Information](images/icons/emoticons/information.png)
|
||||
> Need help?
|
||||
>
|
||||
> If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](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` ``
|
||||
>
|
||||
>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
|
||||
>
|
||||
|
@ -139,9 +139,9 @@ sink = gst_element_factory_make ("autovideosink", "sink");
|
|||
As seen in this code, new elements can be created
|
||||
with `gst_element_factory_make()`. The first parameter is the type of
|
||||
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
|
||||
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
|
||||
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
|
||||
|
@ -225,7 +225,7 @@ values!
|
|||
|
||||
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:
|
||||
GStreamer tools](sdk-basic-tutorial-gstreamer-tools.md).
|
||||
GStreamer tools](tutorial-basic-gstreamer-tools.md).
|
||||
|
||||
### 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
|
||||
value for errors. Changing states is a delicate process and a few more
|
||||
details are given in [Basic tutorial 3: Dynamic
|
||||
pipelines](sdk-basic-tutorial-dynamic-pipelines.md).
|
||||
pipelines](tutorial-basic-dynamic-pipelines.md).
|
||||
|
||||
``` c
|
||||
/* 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
|
||||
in [Basic tutorial 1: Hello
|
||||
world!](sdk-basic-tutorial-hello-world.md).
|
||||
world!](tutorial-basic-hello-world.md).
|
||||
|
||||
## 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
|
||||
filter is producing (more about negotiation in [Basic tutorial 6: Media
|
||||
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
|
||||
filter (this is, build a pipeline of 4 elements. More on
|
||||
`videoconvert` in [Basic tutorial 14: Handy
|
||||
elements](sdk-basic-tutorial-handy-elements.md)).
|
||||
elements](tutorial-basic-handy-elements.md)).
|
||||
|
||||
## Conclusion
|
||||
|
|
@ -8,7 +8,7 @@ information becomes available, instead of having a monolithic pipeline
|
|||
defined at the beginning of your application.
|
||||
|
||||
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:
|
||||
|
||||
- How to attain finer control when linking elements.
|
||||
|
@ -240,10 +240,10 @@ exit:
|
|||
> ![Information](images/icons/emoticons/information.png)
|
||||
> Need help?
|
||||
>
|
||||
> If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](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` ``
|
||||
>
|
||||
>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.
|
||||
>
|
||||
|
@ -338,7 +338,7 @@ for this purpose.
|
|||
The signals that a `GstElement` generates can be found in its
|
||||
documentation or using the `gst-inspect-1.0` tool as described in [Basic
|
||||
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
|
||||
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.
|
||||
|
||||
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
|
||||
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`.
|
||||
|
||||
## Conclusion
|
||||
|
@ -513,8 +513,8 @@ media was available.
|
|||
|
||||
You can now continue with the basic tutorials and learn about performing
|
||||
seeks and time-related queries in [Basic tutorial 4: Time
|
||||
management](sdk-basic-tutorial-time-management.md) or move
|
||||
to the [Playback tutorials](sdk-playback-tutorials.md), and gain more
|
||||
management](tutorial-basic-time-management.md) or move
|
||||
to the [Playback tutorials](tutorials-playback.md), and gain more
|
||||
insight about the `playbin` element.
|
||||
|
||||
Remember that attached to this page you should find the complete source
|
|
@ -21,7 +21,7 @@ polluting it too much).
|
|||
|
||||
Just open a terminal (or console window) and go to the `bin` directory
|
||||
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.
|
||||
|
||||
|
||||
|
@ -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
|
||||
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`.
|
||||
|
||||
### Elements
|
||||
|
@ -122,14 +122,14 @@ If you see only one, try to move it, since it is probably on top of the
|
|||
second window.
|
||||
|
||||
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
|
||||
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
|
||||
referred to using ‘t.’ (mind the dot) and then linked to a second
|
||||
`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
|
||||
|
||||
|
@ -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
|
||||
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
|
||||
audio and video, so `matroskademux` will create two output Pads, named
|
||||
`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
|
||||
|
||||
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
|
||||
|
@ -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
|
||||
started. Remember that you have the [complete documentation available
|
||||
here](gst-launch.md).
|
||||
here](tool-gst-launch.md).
|
||||
|
||||
## `gst-inspect-1.0`
|
||||
|
||||
|
@ -369,11 +369,11 @@ The most relevant sections are:
|
|||
element, along with their type and accepted values.
|
||||
|
||||
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`
|
||||
|
||||
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
|
||||
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
|
|
@ -9,7 +9,7 @@ elements which are extremely useful when debugging.
|
|||
|
||||
For simplicity, the following examples are given using the
|
||||
`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.
|
||||
|
||||
## Bins
|
||||
|
@ -23,7 +23,7 @@ their task.
|
|||
This element has been extensively used throughout the tutorials. It
|
||||
manages all aspects of media playback, from source to display, passing
|
||||
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`
|
||||
|
||||
|
@ -228,7 +228,7 @@ Most of the time, `audiorate` is not what you want.
|
|||
|
||||
### `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
|
||||
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
|
||||
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.
|
||||
|
||||
### `queue2`
|
||||
|
@ -256,10 +256,10 @@ queue is the best choice.
|
|||
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
|
||||
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
|
||||
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`).
|
||||
|
||||
### `multiqueue`
|
||||
|
@ -277,7 +277,7 @@ application.
|
|||
|
||||
### `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.
|
||||
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
|
||||
|
@ -296,7 +296,7 @@ gst-launch-1.0 audiotestsrc ! tee name=t ! queue ! audioconvert ! autoaudiosink
|
|||
## Capabilities
|
||||
|
||||
### `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
|
||||
pipeline programmatically, Caps filters are implemented with
|
||||
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
|
||||
find the media type, although you can normally use the
|
||||
`GstDiscoverer` which provides more information (as seen in
|
||||
[](sdk-basic-tutorial-media-information-gathering.md)).
|
||||
[](tutorial-basic-media-information-gathering.md)).
|
||||
|
||||
## Debugging
|
||||
|
|
@ -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!
|
||||
|
||||
[Installing on Linux]: sdk-installing-on-linux.md
|
||||
[Installing on Mac OS X]: sdk-installing-on-mac-osx.md
|
||||
[Installing on Windows]: sdk-installing-on-windows.md
|
||||
[Installing on Linux]: installing-on-linux.md
|
||||
[Installing on Mac OS X]: installing-on-mac-osx.md
|
||||
[Installing on Windows]: installing-on-windows.md
|
||||
[Information]: images/icons/emoticons/information.png
|
||||
[Linux]: sdk-installing-on-linux.md#InstallingonLinux-Build
|
||||
[Mac OS X]: sdk-installing-on-mac-osx.md#InstallingonMacOSX-Build
|
||||
[Windows]: sdk-installing-on-windows.md#InstallingonWindows-Build
|
||||
[1]: sdk-installing-on-linux.md#InstallingonLinux-Run
|
||||
[2]: sdk-installing-on-mac-osx.md#InstallingonMacOSX-Run
|
||||
[3]: sdk-installing-on-windows.md#InstallingonWindows-Run
|
||||
[Basic tutorial 12: Streaming]: sdk-basic-tutorial-streaming.md
|
||||
[Basic tutorial 10: GStreamer tools]: sdk-basic-tutorial-gstreamer-tools.md
|
||||
[Basic tutorial 2: GStreamer concepts]: sdk-basic-tutorial-concepts.md
|
||||
[Basic tutorial 3: Dynamic pipelines]: sdk-basic-tutorial-dynamic-pipelines.md
|
||||
[Linux]: installing-on-linux.md#InstallingonLinux-Build
|
||||
[Mac OS X]: installing-on-mac-osx.md#InstallingonMacOSX-Build
|
||||
[Windows]: installing-on-windows.md#InstallingonWindows-Build
|
||||
[1]: installing-on-linux.md#InstallingonLinux-Run
|
||||
[2]: installing-on-mac-osx.md#InstallingonMacOSX-Run
|
||||
[3]: installing-on-windows.md#InstallingonWindows-Run
|
||||
[Basic tutorial 12: Streaming]: tutorial-basic-streaming.md
|
||||
[Basic tutorial 10: GStreamer tools]: tutorial-basic-gstreamer-tools.md
|
||||
[Basic tutorial 2: GStreamer concepts]: tutorial-basic-concepts.md
|
||||
[Basic tutorial 3: Dynamic pipelines]: tutorial-basic-dynamic-pipelines.md
|
|
@ -100,7 +100,7 @@ indicate different packing and subsampling of the image planes.
|
|||
### Last remarks
|
||||
|
||||
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.
|
||||
|
||||
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)
|
||||
> 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` ``
|
||||
>
|
||||
>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.
|
||||
>
|
||||
|
@ -466,7 +466,7 @@ This tutorial has shown:
|
|||
|
||||
- That Pad Caps can be found using the `gst-inspect-1.0` tool described
|
||||
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
|
||||
from the GStreamer pipeline.
|
|
@ -66,7 +66,7 @@ command line, and outputs the retrieved information (If no URI is
|
|||
provided it uses a default one).
|
||||
|
||||
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
|
||||
playback.
|
||||
|
||||
|
@ -300,11 +300,11 @@ int main (int argc, char **argv) {
|
|||
> ![Information](images/icons/emoticons/information.png)
|
||||
> Need help?
|
||||
>
|
||||
> If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](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` ``
|
||||
>
|
||||
>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.
|
||||
>
|
|
@ -56,7 +56,7 @@ there is only one thread, being blocked by the first sink.
|
|||
### Request pads
|
||||
|
||||
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
|
||||
appeared as data started to flow and the element learned about 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)
|
||||
> 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` ``
|
||||
>
|
||||
>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.
|
||||
>
|
||||
|
@ -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
|
||||
`wavescope` make the wave continuous. Use the `gst-inspect-1.0` tool
|
||||
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
|
||||
elements.
|
||||
|
|
@ -51,7 +51,7 @@ This audio sink outputs to the sound card via
|
|||
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
|
||||
complicated to configure (See the comment on
|
||||
[](sdk-playback-tutorial-digital-audio-pass-through.md)).
|
||||
[](tutorial-playback-digital-audio-pass-through.md)).
|
||||
|
||||
### `pulsesink`
|
||||
|
||||
|
@ -117,7 +117,7 @@ that their pipelines cannot be interconnected. However, through this
|
|||
element, GStreamer can benefit from the decoding elements present in
|
||||
Direct Show. `dshowdecwrapper` wraps multiple Direct Show decoders so
|
||||
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.
|
||||
|
||||
## Android
|
|
@ -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
|
||||
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
|
||||
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)
|
||||
> 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` ``
|
||||
>
|
||||
>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.
|
||||
>
|
|
@ -12,7 +12,7 @@ any time, in a variety of ways. This tutorial shows:
|
|||
|
||||
- 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.
|
||||
|
||||
## Introduction
|
||||
|
@ -68,7 +68,7 @@ this simplified vision should suffice for now.
|
|||
|
||||
As an example, a `filesrc` (a GStreamer element that reads files)
|
||||
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
|
||||
decoding, each buffer will contain a single video frame with raw caps
|
||||
(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 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
|
||||
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
|
||||
|
@ -332,11 +332,11 @@ int main(int argc, char *argv[]) {
|
|||
> ![Information](images/icons/emoticons/information.png)
|
||||
> Need help?
|
||||
>
|
||||
> If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](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` ``
|
||||
>
|
||||
>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.
|
||||
>
|
||||
|
@ -346,7 +346,7 @@ int main(int argc, char *argv[]) {
|
|||
|
||||
The code to create the pipeline (Lines 131 to 205) is an enlarged
|
||||
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
|
||||
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
|
||||
`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.
|
||||
|
||||
``` c
|
||||
|
@ -534,7 +534,7 @@ This tutorial has shown how applications can:
|
|||
- Manipulate this data by accessing the `GstBuffer`.
|
||||
|
||||
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.
|
||||
|
||||
It has been a pleasure having you here, and see you soon\!
|
|
@ -156,11 +156,11 @@ int main(int argc, char *argv[]) {
|
|||
> ![Information](images/icons/emoticons/information.png)
|
||||
> Need help?
|
||||
>
|
||||
> If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](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` ``
|
||||
>
|
||||
>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.
|
||||
>
|
|
@ -197,11 +197,11 @@ static void handle_message (CustomData *data, GstMessage *msg) {
|
|||
> ![Information](images/icons/emoticons/information.png)
|
||||
> Need help?
|
||||
>
|
||||
> If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](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` ``
|
||||
>
|
||||
>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
|
||||
>
|
||||
|
@ -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
|
||||
`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
|
||||
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
|
|
@ -456,16 +456,16 @@ int main(int argc, char *argv[]) {
|
|||
> ![Information](images/icons/emoticons/information.png)
|
||||
> Need help?
|
||||
>
|
||||
> If you need help to compile this code, refer to the **Building the tutorials** section for your platform: [Linux](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``
|
||||
>
|
||||
>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.
|
||||
>
|
||||
>
|
||||
> 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`
|
||||
|
||||
|
@ -562,7 +562,7 @@ g_signal_connect (G_OBJECT (bus), "message::application", (GCallback)application
|
|||
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
|
||||
GStreamer bus. We can achieve a finer granularity by using signals
|
||||
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
|
||||
new position, tell GStreamer to seek to that position
|
||||
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.
|
||||
|
||||
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
|
||||
`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
|
||||
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
|
||||
list view (or tree view). Then, when the user selects a different
|
||||
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
|
||||
|
|
@ -14,7 +14,7 @@ iOS device. It shows:
|
|||
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
|
||||
|
||||
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 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
|
||||
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
|
||||
[](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!
|
||||
|
||||
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.
|
||||
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
|
||||
are now in a callback from some GStreamer internal thread. Hence, the
|
||||
usage
|
||||
|
@ -352,7 +352,7 @@ of `dispatch_async()`[.](http://developer.android.com/reference/android/app/Acti
|
|||
|
||||
### 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
|
||||
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
|
||||
|
@ -1005,7 +1005,7 @@ static gboolean refresh_ui (GStreamerBackend *self) {
|
|||
```
|
||||
|
||||
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
|
||||
`setCurrentUIPosition` callback.
|
||||
|
||||
|
@ -1144,7 +1144,7 @@ calls `execute_seek()` again.
|
|||
|
||||
### 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
|
||||
using buffering. The same procedure is used here, by listening to the
|
||||
buffering
|
||||
|
@ -1207,4 +1207,4 @@ The next tutorial adds the missing bits to turn the application built
|
|||
here into an acceptable iOS media player.
|
||||
|
||||
[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
|
|
@ -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
|
||||
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
|
||||
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`
|
||||
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.
|
||||
|
||||
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!
|
||||
|
||||
[screenshot0]: images/sdk-ios-tutorial-a-complete-media-player-screenshot-0.png
|
||||
[screenshot1]: images/sdk-ios-tutorial-a-complete-media-player-screenshot-1.png
|
||||
[screenshot0]: images/tutorial-ios-a-complete-media-player-screenshot-0.png
|
||||
[screenshot1]: images/tutorial-ios-a-complete-media-player-screenshot-1.png
|
|
@ -4,8 +4,8 @@
|
|||
|
||||
![screenshot]
|
||||
|
||||
As seen in the [Basic](sdk-basic-tutorials.md) and
|
||||
[Playback](sdk-playback-tutorials.md) tutorials, GStreamer integrates
|
||||
As seen in the [Basic](tutorials-basic.md) and
|
||||
[Playback](tutorials-playback.md) tutorials, GStreamer integrates
|
||||
nicely with GLib’s main loops, so pipeline operation and user interface
|
||||
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
|
||||
|
@ -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` and `state-changed` events in GStreamer, and their goal is
|
||||
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:
|
||||
|
||||
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
|
||||
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
|
||||
how to use a custom GLib context. The interesting bit here is the usage
|
||||
of a
|
||||
|
@ -656,4 +656,4 @@ to them!
|
|||
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
|
|
@ -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
|
||||
the UI code, which is typically made in pure Objective-C.
|
||||
`GStreamerBackend` serves exactly the same purpose as the JNI code in
|
||||
the [](sdk-android-tutorials.md).
|
||||
the [](tutorials-android.md).
|
||||
|
||||
**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!
|
||||
|
||||
[screenshot]: images/sdk-ios-tutorial-link-against-gstreamer-screenshot.png
|
||||
[screenshot]: images/tutorial-ios-link-against-gstreamer-screenshot.png
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
![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
|
||||
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
|
||||
|
@ -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.
|
||||
Fortunately, the `VideoOverlay` interface allows providing video sinks with
|
||||
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
|
||||
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
|
||||
and return a pointer to an element which supports the requested
|
||||
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)
|
||||
windows. The internal video sink instantiated by `autovideosink` is the
|
||||
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!
|
||||
|
||||
[screenshot]: images/sdk-ios-tutorial-video-screenshot.png
|
||||
[screenshot]: images/tutorial-ios-video-screenshot.png
|
|
@ -245,10 +245,10 @@ This tutorial has shown:
|
|||
It has been a pleasure having you here, and see you soon\!
|
||||
|
||||
[information]: images/icons/emoticons/information.png
|
||||
[Mac]: sdk-installing-on-mac-osx.md
|
||||
[Windows]: sdk-installing-on-windows.md
|
||||
[Mac OS X]: sdk-installing-on-mac-osx.md#building-the-tutorials
|
||||
[1]: sdk-installing-on-windows.md#running-the-tutorials
|
||||
[iOS]: sdk-installing-for-ios-development.md#building-the-tutorials
|
||||
[android]: sdk-installing-for-android-development.md#building-the-tutorials
|
||||
[Mac]: installing-on-mac-osx.md
|
||||
[Windows]: installing-on-windows.md
|
||||
[Mac OS X]: installing-on-mac-osx.md#building-the-tutorials
|
||||
[1]: installing-on-windows.md#running-the-tutorials
|
||||
[iOS]: installing-for-ios-development.md#building-the-tutorials
|
||||
[android]: installing-for-android-development.md#building-the-tutorials
|
||||
[warning]: images/icons/emoticons/warning.png
|
|
@ -10,7 +10,7 @@ This tutorial shows:
|
|||
- How to change them
|
||||
|
||||
## Introduction
|
||||
[](sdk-basic-tutorial-toolkit-integration.md) has
|
||||
[](tutorial-basic-toolkit-integration.md) has
|
||||
already explained the concept of GObject interfaces: applications use
|
||||
them to find out if certain functionality is available, regardless of
|
||||
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
|
||||
[Mac]: sdk-installing-on-mac-osx.md
|
||||
[Windows]: sdk-installing-on-windows.md
|
||||
[Mac OS X]: sdk-installing-on-mac-osx.md#building-the-tutorials
|
||||
[1]: sdk-installing-on-windows.md#running-the-tutorials
|
||||
[iOS]: sdk-installing-for-ios-development.md#building-the-tutorials
|
||||
[android]: sdk-installing-for-android-development.md#building-the-tutorials
|
||||
[Mac]: installing-on-mac-osx.md
|
||||
[Windows]: installing-on-windows.md
|
||||
[Mac OS X]: installing-on-mac-osx.md#building-the-tutorials
|
||||
[1]: installing-on-windows.md#running-the-tutorials
|
||||
[iOS]: installing-for-ios-development.md#building-the-tutorials
|
||||
[android]: installing-for-android-development.md#building-the-tutorials
|
||||
[warning]: images/icons/emoticons/warning.png
|
|
@ -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
|
||||
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
|
||||
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
|
||||
`gst_element_request_pad()`.
|
||||
|
||||
|
@ -212,10 +212,10 @@ This tutorial has shown:
|
|||
It has been a pleasure having you here, and see you soon\!
|
||||
|
||||
[information]: images/icons/emoticons/information.png
|
||||
[Mac]: sdk-installing-on-mac-osx.md
|
||||
[Windows]: sdk-installing-on-windows.md
|
||||
[Mac OS X]: sdk-installing-on-mac-osx.md#building-the-tutorials
|
||||
[1]: sdk-installing-on-windows.md#running-the-tutorials
|
||||
[iOS]: sdk-installing-for-ios-development.md#building-the-tutorials
|
||||
[android]: sdk-installing-for-android-development.md#building-the-tutorials
|
||||
[Mac]: installing-on-mac-osx.md
|
||||
[Windows]: installing-on-windows.md
|
||||
[Mac OS X]: installing-on-mac-osx.md#building-the-tutorials
|
||||
[1]: installing-on-windows.md#running-the-tutorials
|
||||
[iOS]: installing-for-ios-development.md#building-the-tutorials
|
||||
[android]: installing-for-android-development.md#building-the-tutorials
|
||||
[warning]: images/icons/emoticons/warning.png
|
|
@ -77,8 +77,8 @@ enabled, but, unfortunately, this option is not available in all audio
|
|||
drivers.
|
||||
|
||||
Another solution involves, using a custom sinkbin (see
|
||||
[](sdk-playback-tutorial-custom-playbin-sinks.md)) which includes a
|
||||
`capsfilter` element (see [](sdk-basic-tutorial-handy-elements.md))
|
||||
[](tutorial-playback-custom-playbin-sinks.md)) which includes a
|
||||
`capsfilter` element (see [](tutorial-basic-handy-elements.md))
|
||||
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
|
||||
allows the application to enforce the appropriate format instead of
|
|
@ -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!
|
||||
|
||||
[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
|
||||
[Mac]: sdk-installing-on-mac-osx.md
|
||||
[Windows]: sdk-installing-on-windows.md
|
||||
[Mac OS X]: sdk-installing-on-mac-osx.md#building-the-tutorials
|
||||
[1]: sdk-installing-on-windows.md#running-the-tutorials
|
||||
[iOS]: sdk-installing-for-ios-development.md#building-the-tutorials
|
||||
[android]: sdk-installing-for-android-development.md#building-the-tutorials
|
||||
[Mac]: installing-on-mac-osx.md
|
||||
[Windows]: installing-on-windows.md
|
||||
[Mac OS X]: installing-on-mac-osx.md#building-the-tutorials
|
||||
[1]: installing-on-windows.md#running-the-tutorials
|
||||
[iOS]: installing-for-ios-development.md#building-the-tutorials
|
||||
[android]: installing-for-android-development.md#building-the-tutorials
|
|
@ -2,10 +2,10 @@
|
|||
|
||||
## 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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
|
@ -240,7 +240,7 @@ int main(int argc, char *argv[]) {
|
|||
|
||||
## Walkthrough
|
||||
|
||||
This code is based on that of [](sdk-basic-tutorial-streaming.md). Let’s review
|
||||
This code is based on that of [](tutorial-basic-streaming.md). Let’s review
|
||||
only the differences.
|
||||
|
||||
### Setup
|
||||
|
@ -322,7 +322,7 @@ static gboolean refresh_ui (CustomData *data) {
|
|||
|
||||
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
|
||||
(`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
|
||||
using specific methods. More complex queries, like Buffering, need to
|
||||
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!
|
||||
|
||||
[information]: images/icons/emoticons/information.png
|
||||
[Mac]: sdk-installing-on-mac-osx.md
|
||||
[Windows]: sdk-installing-on-windows.md
|
||||
[Mac OS X]: sdk-installing-on-mac-osx.md#building-the-tutorials
|
||||
[1]: sdk-installing-on-windows.md#running-the-tutorials
|
||||
[iOS]: sdk-installing-for-ios-development.md#building-the-tutorials
|
||||
[android]: sdk-installing-for-android-development.md#building-the-tutorials
|
||||
[Mac]: installing-on-mac-osx.md
|
||||
[Windows]: installing-on-windows.md
|
||||
[Mac OS X]: installing-on-mac-osx.md#building-the-tutorials
|
||||
[1]: installing-on-windows.md#running-the-tutorials
|
||||
[iOS]: installing-for-ios-development.md#building-the-tutorials
|
||||
[android]: installing-for-android-development.md#building-the-tutorials
|
||||
[warning]: images/icons/emoticons/warning.png
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
## 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
|
||||
by using two special elements called `appsrc` and `appsink`.
|
||||
`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:
|
||||
|
||||
- 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
|
||||
[](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,
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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:
|
||||
|
||||
- How to connect `appsrc` with `playbin` using the special
|
|
@ -286,14 +286,14 @@ static gboolean handle_keyboard (GIOChannel *source, GIOCondition cond, CustomDa
|
|||
> page._ 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.
|
||||
> [](tutorial-basic-streaming.md) solves this issue.
|
||||
>
|
||||
> Required libraries: `gstreamer-1.0`
|
||||
|
||||
## Walkthrough
|
||||
|
||||
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.
|
||||
|
||||
``` 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).
|
||||
|
||||
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
|
||||
the `current-audio`. As before, keep in mind that stream changes are not
|
||||
immediate, since there is a lot of information flowing through the
|
|
@ -4,11 +4,11 @@
|
|||
|
||||
These tutorials describe Qt-specific topics. General GStreamer concepts
|
||||
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
|
||||
programming techniques.
|
||||
|
||||
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
|
||||
media player application is obtained in \#FIXME\#
|
|
@ -4,18 +4,18 @@
|
|||
|
||||
These tutorials describe Android-specific topics. General GStreamer
|
||||
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.
|
||||
|
||||
Each Android tutorial builds on top of the previous one and adds
|
||||
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
|
||||
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
|
||||
[](sdk-installing-for-android-development.md) before jumping into the
|
||||
[](installing-for-android-development.md) before jumping into the
|
||||
Android tutorials.
|
||||
|
||||
### A note on the documentation
|
|
@ -4,17 +4,17 @@
|
|||
|
||||
These tutorials describe iOS-specific topics. General GStreamer
|
||||
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.
|
||||
|
||||
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
|
||||
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
|
||||
[](sdk-installing-for-ios-development.md) before jumping into the iOS
|
||||
[](installing-for-ios-development.md) before jumping into the iOS
|
||||
tutorials.
|
||||
|
||||
All iOS tutorials are split into the following classes:
|
|
@ -77,11 +77,11 @@ purposes.
|
|||
|
||||
- [Sintel, the Durian Open Movie Project]
|
||||
|
||||
[installing GStreamer]: sdk-installing.md
|
||||
[installing GStreamer]: installing.md
|
||||
[GStreamer documentation]: http://gstreamer.freedesktop.org/documentation/
|
||||
[Basic tutorials]: sdk-basic-tutorials.md
|
||||
[Playback tutorials]: sdk-playback-tutorials.md
|
||||
[Android tutorials]: sdk-android-tutorials.md
|
||||
[iOS tutorials]: sdk-ios-tutorials.md
|
||||
[Table of Concepts]: sdk-table-of-concepts.md
|
||||
[Basic tutorials]: tutorials-basic.md
|
||||
[Playback tutorials]: tutorials-playback.md
|
||||
[Android tutorials]: tutorials-android.md
|
||||
[iOS tutorials]: tutorials-ios.md
|
||||
[Table of Concepts]: table-of-concepts.md
|
||||
[Sintel, the Durian Open Movie Project]: http://www.sintel.org/
|