summaryrefslogtreecommitdiffstats
path: root/src/multimedia/gsttools_headers
Commit message (Collapse)AuthorAgeFilesLines
* GStreamer: Add missing override and remove redundant virtualAlexander Volkov2016-12-1312-81/+81
| | | | | Change-Id: I61997676d7f002e769de499b19cbea3d96876480 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-12-121-141/+0
|\ | | | | | | | | | | | | Conflicts: src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp Change-Id: I7c30c2d13fdd07ee07e4449d5d3e256e988d3793
| * Cleanup all maemo/meego specific codeLars Knoll2016-11-141-141/+0
| | | | | | | | | | Change-Id: I6c6f28084c6b030928eebc53c5d0009b168ede6a Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | GStreamer: move suggestedFileExtension() out of camerabin pluginYoann Lopes2016-08-231-0/+1
| | | | | | | | | | | | | | Now in QGstUtils, in order to be used from other places. Change-Id: Id8beae1b804fa22bd648e254a1ff2a1f1e455a02 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | GStreamer: improve QGstCodecsInfoYoann Lopes2016-08-231-7/+13
|/ | | | | | | | | | | | | | - The class now works with GStreamer < 0.10.31. - New codecElement() function that returns the GStreamer encoder name for a given codec. - New codecOptions() function that returns the list of available GStreamer properties for a given codec. - Don't return duplicate codecs (when several GStreamer plugins are available for a given codec). We now only use the highest ranked one. Change-Id: I4a79099d4469907c73046d7e78df737fe4ed036c Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-01-261-2/+0
|\ | | | | | | Change-Id: I2e4e9cca01d63ed0d1e7f71c7a58322390696036
| * Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2016-01-211-2/+0
| |\ | | | | | | | | | Change-Id: I6d88b17f44479a522d181374023648dd007112bd
| | * GStreamer: fix GstAppSrc usage.Yoann Lopes2016-01-191-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow our GstAppSrc wrapper to be reconfigured with a new GstAppSrc object. This is necessary because that object changes every time playback is restarted, even for the same source. The consequence of not allowing the reconfigure was that playback for a given qrc media would only work the first time; any subsequent calls to play() would not work since our wrapper wouldn't know about the new GstAppSrc object and therefore wouldn't be able to produce any data. Also improved management of the wrapper lifecycle. Task-number: QTBUG-49531 Change-Id: I905afb6848cc7e9a563b4edc2c5875cdd7e53d21 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* | | Updated license headersAntti Kokko2016-01-1923-322/+460
|/ / | | | | | | | | | | | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I324f65c61171f36641472964d095d72e452afb3a Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.5' into 5.6Yoann Lopes2015-11-201-0/+1
|\| | | | | | | Change-Id: I8e0f222f110cc23b426f2d68416f5cc3982e30f2
| * Support compiling with GStreamer < 0.10.32 in the camerabin plugin.Yoann Lopes2015-11-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The documented minimum GStreamer version for Qt Multimedia is 0.10.24, however, the camerabin plugin actually required 0.10.32 to compile successfully. The reason is mainly due to the GstEncodingProfiles API, which is used to implement the audio and video encoding settings controls. There's no hard requirement for that API anymore and the aforementioned controls simply don't do anything when the GStreamer version used to compile is older than 0.10.32. A few other GStreamer calls had to be ifdef'd or replaced in order to compile with 0.10.24. Note that this patch only makes sure it compiles with older versions, running the camerabin plugin with GStreamer < 0.10.32 is currently untested and it might not work as expected. Task-number: QTBUG-48914 Change-Id: I4ce8e932f24a33e919e29326729e12bbae561faf Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.5' into 5.6Yoann Lopes2015-10-202-0/+7
|\| | | | | | | Change-Id: Ie1e478eca1cdfd99ccd3a3c8a07aefbfa27ccbdb
| * GStreamer: fix compilation with version < 0.10.31.Yoann Lopes2015-10-202-0/+7
| | | | | | | | | | | | | | | | | | | | Qt 5.4 and earlier required GStreamer 0.10.24 as minimum version. Qt 5.5 added code that requires 0.10.31, this code is now ifdef'd and we now support again 0.10.24. Task-number: QTBUG-48353 Change-Id: Ie708a33c0515874b003ce26a3400475075d316ca Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* | Add missing "We mean it" comments to private headers.Friedemann Kleint2015-10-0615-0/+165
|/ | | | | | Task-number: QTBUG-48595 Change-Id: I1370d9229b0606582cbd828de84ee2717dca3daf Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* GStreamer: refactored widget and window control.Yoann Lopes2015-08-184-32/+144
| | | | | | | | | | | | | | | | | | | Instead of always using xvimagesink as GStreamer backend for the widget and window control (works only with X11), we now try to pick a video sink that fits the current configuration. It first tries a set of known video sinks that can work with the Qt platform plugin in use. If none is available, it dynamically picks a video sink available on the system that can be used with our backend. Even if the video sink is now picked in a smarter way, xcb is still the only supported platform plugin. The reason is that it's the only Unix plugin which can provide a valid native window handle. Additional work is needed to support other plugins like wayland or directfb. Change-Id: I3843dea363d6a0b85a6cc1f2952783b743e48ac6 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* GStreamer: added convenience function in QGstUtils.Yoann Lopes2015-08-131-0/+1
| | | | | | | -> qt_gst_element_get_factory_name(GstElement *elem) Change-Id: Icf806488b49fbcdecdd605b6316bd1ef8796a883 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* GStreamer: flush the current frame when stopping a media player.Yoann Lopes2015-05-272-0/+9
| | | | | | | | | | | When stopping, we don't actually stop the GStreamer pipeline, we just pause it and prevent preroll frames from being shown. We also need to make sure the last presented frame is cleared in that case, otherwise it stays on screen. Fixed for both 0.10 and 1.0. Change-Id: Ibe26a7567f271ae0c3d8819eb9d35d6a95da1c6a Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* GStreamer: implement unlock() in QGstVideoRendererSink.Yoann Lopes2015-04-072-0/+7
| | | | | | | | | | | | There are cases where blocking operations happening in the video sink need to be unblocked, that's why GstBaseSink has an unlock() virtual function. Since our custom video sink blocks when starting and when rendering a frame (while waiting for the main thread to actually do these operations), we need to implement the unlock() function in order to unblock these operations when requested by GstBaseSink. Change-Id: I5cb19ea689e655f572729d931cefec8a4266c94e Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* GStreamer 1.0: show preroll frames.Yoann Lopes2015-04-071-1/+1
| | | | | | | | | | We need to implement the show_frame() function from GstVideoSink, which handles both preroll and normal frames, instead of just GstBaseSink.render(), which is called only for normal frames. This was changed for GStreamer 0.10 by 3b20608f. Change-Id: I4823a575d499cd0d6f9f4cb62e0420e070a05214 Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* GStreamer 1.0: fix some problems with QGstVideoRendererSink.Yoann Lopes2015-02-181-8/+4
| | | | | | | | | | | | | - Correctly free resources on deletion. - Correctly stop the sink. We were stopping only when null caps were passed to set_caps() but that doesn't seem to always happen. Implement GstBaseSink.stop() which is always and consistently called by GStreamer. - Remove pre-roll support (as done previously for 0.10, see commit 3b20608f). Change-Id: I4c5808938f244f4f8a35e121a3a4a862588b752d Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* GStreamer: implemented QCameraViewfinderSettingsControl2.Yoann Lopes2015-02-181-1/+8
| | | | | Change-Id: I4436e39c152f6c251792c1504d4a7b57db7b9d9a Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* Update copyright headersAntti Kokko2015-02-1222-195/+171
| | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: I1c6faa4f59f8eca54f01ef20941fa60161dd7872 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* GStreamer: port to 1.0.Yoann Lopes2014-11-2711-17/+610
| | | | | | | | | | | | | | | 0.10 is still used by default. To enable GStreamer 1.0, pass GST_VERSION=1.0 to qmake for qtmultimedia.pro. Contributions from: Andrew den Exter <andrew.den.exter@qinetic.com.au> Ilya Smelykh <ilya@videoexpertsgroup.com> Jim Hodapp <jim.hodapp@canonical.com> Sergio Schvezov <sergio.schvezov@canonical.com> Change-Id: I72a46d1170a8794a149bdb5e20767afcc5b7587c Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* Add QT_GSTREAMER_CAMERABIN_VIDEOSRC environment variable.Yoann Lopes2014-10-301-0/+2
| | | | | | | | | It can be used to set which video source element should be used by the camerabin. Change-Id: I8d1cd8c4ba6fe5a89817699f645b0997e713aaca Reviewed-by: Samuli Piippo <samuli.piippo@digia.com> Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* Ensure pre-roll frames are displayed when gstreamer backend is paused.Andrew den Exter2014-09-121-12/+1
| | | | | | | | | | | | Perform a seek before transitioning from the stopped state to paused or playing to force the pipeline to resupply the video sink with any pre-roll buffer it may have previously ignored during loading. And don't assume showPrerollFrames to be true if the current state is not stopped as the policy handling may have prevented an effectual state change. Change-Id: I288a70bc4da32f3534eab4b14702ca8f8fdb4222 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Update license headers and add new license filesAntti Kokko2014-08-2418-342/+198
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 & LICENSE.GPLv2 - Removed LICENSE.GPL Change-Id: Ied06887225df341064c12bcc14c259ae74116f2e Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
* Provide face and orientation info from gstreamer camera backend.Andrew den Exter2014-07-122-6/+22
| | | | | | | | | | Cleans up duplicate device enumeration code so the devices listed by the QMediaServiceProviderPlugin are the same as those in the QVideoInputDeviceControl and includes face and orientation information if available. Change-Id: Iaa4c303c973bcf3e0f7c8c2fd7a7de629bccec86 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* GStreamer: fix memory leaks.Yoann Lopes2014-03-211-0/+2
| | | | | | | Many GStreamer objects were not properly managed or never released. Change-Id: I38b3854e8b9e2264b5b647f331d3bb16b886e2d6 Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* whitespace fixesOswald Buddenhagen2014-01-301-2/+2
| | | | | | | | remove trailing spaces & expand tabs. Change-Id: I05ef110abed90f13b47752760ffb4567a11a6a5e Reviewed-by: Yoann Lopes <yoann.lopes@digia.com> Reviewed-by: Tony Sarajärvi <tony.sarajarvi@digia.com>
* Allow the camerabin source selection to be overridden.Andrew den Exter2014-01-131-0/+5
| | | | | | | | | | | Prefer the default camera-source element if there is one or an element identified by an environment variable to a static list of possible elements which may not be appropriate for the target environment. Change-Id: I53816c949307953780f9046eb11e09effe059be0 Reviewed-by: John Brooks <john.brooks@dereferenced.net> Reviewed-by: Andy Nichols <andy.nichols@digia.com> Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Some cleanup in the GStreamer plugin.Yoann Lopes2013-09-205-387/+0
| | | | | | | | | | | | Removed QGstreamerVideoOverlay and related classes. It was used as 'Window' control but performs worse than QGstreamerVideoWindow which does basically the same thing using GStreamer ready-made components instead. Removed X11 dependencies and related configuration tests. It was only needed for QGstreamerVideoOverlay. Change-Id: I2ad2636ccf0060e56cd64f3d9e5b3c24dc75f5a3 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Fix the X11 build errorPier Luigi Fiorini2013-09-091-3/+3
| | | | | | | | | | | This makes qtmultimedia build again by moving down X11 includes. See http://lists.qt-project.org/pipermail/development/2013-September/012986.html Change-Id: If6cd5e80c27de7aaa8d2a65ded05500ed9d0e692 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* QGstXvImageBuffer: fix warning about class/struct mismatchTobias Hunger2013-09-021-1/+2
| | | | | Change-Id: I98df1ce92fab69ad1200066d310aa8bd016b5aca Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
* Reset VideoSurface pointer when deletedDominik Holland2013-04-231-1/+2
| | | | | Change-Id: Iec74c8a8b914d2c2765e0e1f319d89f3daedfe3f Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-1021-21/+21
| | | | | | Change-Id: Ia8c1c38aba1544603fada8c414cc856f365fd15b Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Rename namespace QtMultimedia -> QMultimediaSze Howe Koh2012-11-061-1/+1
| | | | | | | | | | | | | | | | Main code, examples, tests and docs updated. Method: 1. Mass find+replace "QtMultimedia::" -> "QMultimedia::" 2. Hand-modified declaration in qtmedianamespace.h/cpp For consistency (with minimal disruption), namespaces with a "Qt" prefix will be renamed. Part of the Header Consistency Project (http://lists.qt-project.org/pipermail/development/2012-October/007570.html) Change-Id: I1fbc43a1aa91d996aa61869fcd8d05186bf7cf6d Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-2421-504/+504
| | | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: Id77334cfb15de096941c88e32d04ca07b4eb4709 Reviewed-by: Janne Anttila <janne.anttila@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Replaced endpoint control with audio input and output controlsDmytro Poplavskiy2012-07-241-12/+12
| | | | | Change-Id: I981aabe39d106ced4ee1240db9e5b653c6fa5e91 Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
* Rename a few controls.Michael Goddard2012-06-292-4/+4
| | | | | | | | | | The encoder controls could be confused with actual encoding, so make clear they are just settings. Also, the end point selector controls were not named very well. Change-Id: I27f8bf9c865c5f295abad97c01ef98752af42613 Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Ling Hu <ling.hu@nokia.com>
* Fix namespace compilation.Toby Tomkins2012-06-256-7/+14
| | | | | | Change-Id: Id8d71a48df20da16647834e8f9732012f26f928f Reviewed-by: Michael Goddard <michael.goddard@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Fix a number of other qdoc issues.Michael Goddard2012-06-151-0/+3
| | | | | | | | | | | | | | * Several places needed the forward class declaration hack * Missing/wrong minor version numbers on imports * A few typos * Any number of attempts to work around qdoc * A few missing docs * Tweaked soundeffect docs Change-Id: I3c2ab998a11cbb0956712e0423e01fdb70f5bfff Reviewed-by: Peter Yard <peter.yard@nokia.com> Reviewed-by: Angus Cummings <angus.cummings@nokia.com> Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com>
* Gst backend: allow rendering other video buffers than allocatedDmytro Poplavskiy2012-05-141-8/+4
| | | | | | | | | | | | Moved checking the buffer type to the buffer pool instead of comparing the buffer type in QVideoSurfaceGstSink. Some gstreamer elements may push other buffer instance than provided by sink but with the same data pointer. Change-Id: Iab3bf4da2d5eeb5d2a9375aa609a89515b067ce3 Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com> Reviewed-by: Ling Hu <ling.hu@nokia.com>
* Implement QGstreamerVideoRenderer::stopRenderer()Lev Zelenskiy2012-05-031-0/+1
| | | | | | | | | | Surface has to be stopped when QGstreamerVideoRendererInterface::stopRenderer() is called. This fixes a media player issue when video output is not cleared when media is set to 0. Change-Id: Ifdc851797519dcdf95db86e8dcec93b3866c388e Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
* Split gstreamer plugin into smaller plugins providing fewer servicesJonas Rabbe2012-04-2715-0/+1341
| | | | | | | | | | | | | | The gstreamer blob has been split into four plugins: audiodecoder, camerabin, mediacapture, and mediaplayer. Note: camerabin is still disabled because it is untested camerabin2 implementation. A new qmake configuration use_gstreamer_camera has been introduced and is needed for the mediacapture plugin to expose the camera service. This configuration has been disabled by default. Shared functionality has been moved to the internal gsttools library. Change-Id: Ifb2604f440cfa97513d39f5d7978766c88eaec45 Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
* gst player: clear the buffer pool when the video sink is stoppedDmytro Poplavskiy2012-04-201-0/+1
| | | | | | | | Buffers were kept allocated until the player is destroyed or next media played. Change-Id: I8a0c85da3a82ac6883075a1d0674143783c7f010 Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
* Updated IID, services, and controls to use qt-project URLJonas Rabbe2012-03-202-3/+3
| | | | | | | | | Instead of com.nokia.qt we should use org.qt-project.qt. All the identifiers have also been updated to use pure lowercase, and where used the version numbers have been updated to 5.0. Change-Id: Ib209327f5205f5a086a5932394504a8a52e1f712 Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
* Updated plugins to use new plugin architectureJonas Rabbe2012-03-201-5/+2
| | | | | | | | | | | | | | | | | | | Changed QMediaPluginLoader to use QFactoryLoader instead of QPluginLoader and used metadata to get keys. Removed QAudioPluginLoader and changed audio classes to use instead use QMediaPluginLoader. The plugins must include the Q_PLUGIN_METADATA macro, and no longer use the Q_PLUGIN_EXPORT/Q_PLUGIN_EXPORT2 macros. A json file has been added for each plugin which can contain metadata which is available to the plugin loader before the plugin is actually loaded, and is used to read the keys for the plugin, e.g. supported services. QFactoryInterface will be deprecated and has been removed from all plugins. Change-Id: I035b82f9c9c65717bebf704d560ea8f891df21da Reviewed-by: Michael Goddard <michael.goddard@nokia.com> Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
* gst video surface sink: start surface with correct handle typeDmytro Poplavskiy2012-03-141-1/+3
| | | | | | | The handle type should match one from the currently used buffer pool. Change-Id: I33f7856a742299ce0640f331898c3cbe5cfbdf97 Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
* GStreamer backend for audio decoder service.Lev Zelenskiy2012-02-171-0/+2
| | | | | | | Includes basic integration test. Change-Id: I4c6d1dbefa1f27e107b3556a3d4da58811eeb122 Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
* GStreamer backend changes for media probing API.Lev Zelenskiy2012-02-162-0/+3
| | | | | | | | QGstreamerPlayerSession: Using GStreamer buffer probes to access media data. Change-Id: Ibc056283fdedaebba90456cc4e86ab63eae5f5f7 Reviewed-by: Michael Goddard <michael.goddard@nokia.com>