/* Copyright (C) 2011 Collabora Ltd. @author George Kiagiadakis This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ /*! \example examples/player/main.cpp * This is an example audio/video player using QtGStreamer. * * In this example, the GStreamer playbin2 element is used to perform most * of the tasks. Our code is mostly integrating the UI with the pipeline, * handling state changes, doing queries to learn about the position * and duration of the stream, performing seeking, etc... * * player.h: * \include examples/player/player.h * * player.cpp: * \include examples/player/player.cpp * * mediaapp.h: * \include examples/player/mediaapp.h * * mediaapp.cpp: * \include examples/player/mediaapp.cpp * * main.cpp: */ /*! \example examples/appsink-src/main.cpp * This example demonstrates how to use QGst::Utils::ApplicationSource and * QGst::Utils::ApplicationSink to create a custom source and sink respectively. * * In this example, we have two pipelines, one pipeline that gets data from a file, * decodes the audio stream and sends the audio buffers to appsink, and a second * pipeline that gets data from appsrc and pushes them to an audio sink. Appsink * from the first pipeline is linked with appsrc from the second pipeline in our * code, by listening to appsink's newBuffer() signal, getting the buffer * and pushing it to appsrc with the pushBuffer() method. The result is a choppy * audio player. */ /*! \example examples/recorder/main.cpp * This is a recording application that takes audio from a microphone * and video from either a camera or the X11 screen, encodes them with * theora and speex and saves the result in a file. * * The intention of this example is to show how simple it is to perform such * complex tasks with GStreamer and how easy it is to change the functionality * of the program by changing just one element (with autovideosrc it will * do a webcam recording, but with ximagesrc it will do a screencast). * * Tasks demonstrated in this example include: * \li How to create and link elements manually. * \li How to create and link elements using a pipeline description. * \li How to use the QGst::PropertyProbe interface. * \li How to handle bus messages. * \li Others... */ /*! \example examples/voip/main.cpp * This is a simple VoIP application that takes audio from a microphone and * video from the video test source, encodes them with speex and h264 respectively * and sends them to the other side using RTP. * * The same application is both a client and a server. To make a call between them, * you need to configure the destination ports of the one side to be the source * ports of the other and vice versa. */ /*! \example examples/qmlplayer/main.cpp * This example demonstrates how to paint video on QML. * * Much of the code here is borrowed from the player example and it is not generally * a good example on how to write QML and connect it with C++. The intention is just * to demonstrate the use of QGst::Ui::GraphicsVideoSurface, which is bound on the * QML context and then used by the VideoItem. * * qmlplayer.qml: * \include examples/qmlplayer/qmlplayer.qml * * player.h: * \include examples/qmlplayer/player.h * * player.cpp: * \include examples/qmlplayer/player.cpp * * main.cpp: */