Application Development Manual: add gst-launch crash course before diving into code
Submitted by Tim Müller
Ian Davidson suggested this:
On the GStreamer web site it says “Application Development Manual (Read this first) ” - so that would seem to be the place to start if you want to learn about Gstreamer.
Very early in the document (section 2.1), it says that “The programmer can use an extensive set of powerful tools to create media pipelines without writing a single line of code. ” That is good to know and is brought about by the library of 'Plug-ins'.
But – then as you continue to read the manual, you are thrown heavily into programming. Straight away.
Might I suggest that very early on you have mention of gst-launch – since, using that you can do things without having to write a single line of coding. However, the chapter on gst-launch itself is not an easy-to-read chapter: It starts with a 'simple commandline' and then shows a more complex one – but without any explanation. If we take the first example
gst-launch filesrc location=hello.mp3 ! mad ! audioresample ! osssink
you could then describe what is happening. e.g.:
gst-launch is a program which enables the user to construct pipelines using command-line parameters.
Filesrc is an element (or a plugin) – in this case it will read data from a file and needs to know the name of the file to open. It will output the data so as to be the source for the next element in the pipe-line.
The “!” symbol separates the first element from the next.
mad is the next element in the pipe-line: It will decode mp3 data. It picks up the source provided by the previous element and then outputs the decoded data for the next element in the pipe-line.
Once again, a “!” symbol separates the elements.
audioresample resamples the Audio. (I don’t know why this is a benefit – it could be explained)
osssink takes the audio signal and sends it to an output device which supports (or is supported by) OSS.
The second example could then be similarly explained – which would be a useful exercise since the single vob file is being demuxed with part of the data going one way and the rest another. A reference, at this point to the Overview of available plug-ins would be beneficial. Perhaps an example where more options need to be specified could also be explained.
Then you can say that, if you need to build this into an application, you can do the same stuff with code and if you need to do something which is not currently supported, you can write your own plug-in – so read on...
I hope this is useful