summaryrefslogtreecommitdiffstats
path: root/src/plugins/gstreamer
Commit message (Collapse)AuthorAgeFilesLines
* Drop unused QProcess includeUlf Hermann2017-03-021-1/+0
| | | | | Change-Id: I2edc0a1a41d63a456ef2e87bdd1d0872dff0aee1 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* Use QT_CONFIG macro to check for featuresLars Knoll2017-02-2723-112/+117
| | | | | | | And remove many custom defines. Change-Id: I658cc8430d1d99ed3c0aafe03a77adce76621a29 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* return better images in metadata in gstreamerTasuku Suzuki2016-12-151-1/+2
| | | | | | | | cover art image uses "preview image". But "image" is better for that. "preview image" will be used for thumbnail image. Change-Id: Ic01f878f146b0369eb84e6b153fa68fbc6c54e57 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* GStreamer: Only register one typefind functionChristian Strømme2016-12-142-12/+56
| | | | | | | | | | | | | | | | | | | | | | | | Each time a GStreamer session was created it would register the same callback function, but each time with a new user data, which in our case was a pointer to the session. The pointer would then be used without verification of its validity. The problem with this is that the typefind function is static and used for all sessions, making multiple sessions impossible. The documentation for gst_type_find_register() also clearly specifies that the supplied user data needs to valid as long as the plugin is loaded, which of course was not the case. With this change only one callback function will be registered, and each session will register itself with a typefind delegate, that will keep track of sessions that are still alive. Note: This only makes sure that the typefind function is called on a valid session, it does not make sure that the type actually belong to the session, which is a separate issue. Task-number: QTBUG-50460 Change-Id: I20eeabfe4e85839e8845003298d6f64705c2e15e Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* GStreamer: fix a memory leak in the media player sessionYoann Lopes2016-12-121-4/+6
| | | | | | | A gchar* was never freed. Change-Id: Ib28fee3d13839bf15a9216bdcd5da68b6d1f904c Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Fix mir detectionLars Knoll2016-11-232-6/+3
| | | | | | | | | The old check would have never triggered unless you compiled with CONFIG+=mir by hand. Change-Id: I1d418dce09adaedbdff366dfeb8f4036cac0f075 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Cleanup all maemo/meego specific codeLars Knoll2016-11-1412-243/+9
| | | | | Change-Id: I6c6f28084c6b030928eebc53c5d0009b168ede6a Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* Move qtmultimedia over to the new config systemLars Knoll2016-11-143-22/+10
| | | | | | | | | | | | Use the new configuration system to define external libraries, configure tests and features. Don't use pkg-config outside of the configuration step. And move all command line options over from qtbase, so that we can remove them from there in a second step. Change-Id: I1aa4b557a6aee17eeceb00602005a2d28b426a26 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-11-111-6/+6
|\ | | | | | | | | | | | | | | | | | | Conflicts: qtmultimedia.pro src/multimedia/playback/qmediaplayer.cpp src/plugins/directshow/directshow.pro tests/auto/integration/qmediaplayerbackend/BLACKLIST Change-Id: I6dacdcbb223c1d12dd72eb308a67170983c709b3
| * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-11-041-6/+6
| |\ | | | | | | | | | Change-Id: Ib038c5e3ebb48c0e46569a35d530fa5ceaf06a32
| | * GStreamer: emit mediaStatus changes before state changesYoann Lopes2016-10-061-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | This makes sure all mediaStatus changes are emitted, even when some action is done on the media player as a result of a state change. Task-number: QTBUG-49578 Change-Id: I60153cd8e1d665797a25549ab81afcfb553ce2cc Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | | GStreamer: Support video probe on QCameraDaniel Nicoletti2016-09-233-4/+16
| | | | | | | | | | | | | | | Change-Id: I54889a72346da24654c8a0618056c14999ecf71e Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into 5.8Yoann Lopes2016-09-231-1/+12
|\| | | | | | | | | | | Change-Id: I96aca24df935d51b40380c727b6c5002432a6be6
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Yoann Lopes2016-09-221-1/+12
| |\| | | | | | | | | | Change-Id: I5bce2843ac62bb97efc1ccaaa9c671c4adf10640
| | * GStreamer: print a warning when the camerabin plugin is missingYoann Lopes2016-09-211-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | Don't create the camera service when the camerabin plugin is not available on the system and print a warning. Task-number: QTBUG-50775 Change-Id: I56c7e6297bebe4b90596cb3c0323f1d38231bceb Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-08-021-1/+4
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf tests/auto/integration/qsoundeffect/BLACKLIST Change-Id: Icd2edd4410a4ee914d489634d26b262c0c146bf4
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Yoann Lopes2016-08-011-1/+4
| |\| | | | | | | | | | Change-Id: Ic29cb09048003f18ff86d4546cd547be715eaec8
| | * Resource leak fixedJesus Fernandez2016-07-251-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | CameraBinV4LImageProcessing::setParameter was leaking the resource fd in some cases in the switch using return instead of break. Change-Id: Ie56eaf4cf1d1b7531094c321f49a818632985628 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | | GStreamer: support cover artTasuku Suzuki2016-07-261-0/+1
|/ / | | | | | | | | Change-Id: I05987f578a40c23dc2eb6f3e6a7f76d11f704214 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-05-103-7/+19
|\| | | | | | | | | | | | | Conflicts: src/plugins/winrt/qwinrtcameracontrol.cpp Change-Id: I45d3042adf19577a72794610fa1c310cb22e26c4
| * GStreamer camerabin: return the proper camera sourceZhang Xingtao2016-04-283-7/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | - return m_cameraSrc for function cameraSource() instead of m_videoSrc. m_videoSrc is not always assigned(default 0), it will crash on: if (g_object_class_find_property( G_OBJECT_GET_CLASS(m_session->cameraSource()), "exposure-mode")) { And as the function name says, it would be better to return the value m_cameraSrc. - make sure pointers are not NULL before using them. Change-Id: I8a56db34a805724b428409b87de7d072ee7bfa57 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-03-075-17/+15
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/avfoundation/mediaplayer/mediaplayer.pro tests/auto/unit/qmediaserviceprovider/mockserviceplugin1/mockserviceplugin1.pro tests/auto/unit/qmediaserviceprovider/mockserviceplugin2/mockserviceplugin2.pro tests/auto/unit/qmediaserviceprovider/mockserviceplugin3/mockserviceplugin3.pro tests/auto/unit/qmediaserviceprovider/mockserviceplugin4/mockserviceplugin4.pro tests/auto/unit/qmediaserviceprovider/mockserviceplugin5/mockserviceplugin5.pro Change-Id: I5742596230dc510ba2a09eba624429bb67179194
| * remove redundant statements from project filesOswald Buddenhagen2016-02-251-1/+0
| | | | | | | | | | | | | | | | | | | | - TARGET is unnecessary if it matches the project file's basename - CONFIG+=no_private_qt_headers_warning is added by qt_build_config.prf - load(qt_build_config) is done by .qmake.conf Change-Id: I3eb45a758dfee34be3c78fc13d996780741c95e9 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * consistently put {qt,qml}_{module,plugin} at the end of project filesOswald Buddenhagen2016-02-254-16/+15
| | | | | | | | | | | | | | | | this fixes static builds by ensuring that all dependencies are exported. Task-number: QTBUG-51071 Change-Id: I8e1554b648327ea2fb342b882ce8e439bd6f271d Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-01-262-11/+16
|\| | | | | | | Change-Id: I2e4e9cca01d63ed0d1e7f71c7a58322390696036
| * Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2016-01-212-11/+16
| |\ | | | | | | | | | Change-Id: I6d88b17f44479a522d181374023648dd007112bd
| | * GStreamer: fix GstAppSrc usage.Yoann Lopes2016-01-192-11/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-1996-1346/+1922
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.6' into devChristian Strømme2016-01-156-26/+551
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/android/src/mediacapture/qandroidcamerasession.cpp src/plugins/wmf/mftvideo.cpp Change-Id: I78868b416ea4baec89ca3e2dc9eb4712db16d5fc
| * | GStreamer: Add color balance and sharpening adjustments using V4L2Denis Shienkov2015-12-103-11/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GStreamer's backend does not implements this features, therefore now is used the V4L2 interface for the contrast, saturation, brightness and the sharpening adjustments. The V4l2 interface works together with the GStreamer and covers the features which are not supported by the GStreamer. Change-Id: I995ed6cb096a29543fb80206384a92c13a1d1af2 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * | GStreamer: Adjust the camera's manual color temperature through V4L2Denis Shienkov2015-12-106-16/+428
| | | | | | | | | | | | | | | | | | | | | | | | | | | GStreamer does not support setup of manual color temperature for the camera. Now it is implemented through the V4L2 interface, where it is works together with the GStreamer and covers the GStreamer's holes. Change-Id: Icaeadeb4e21ec7865bcfa908bead318d4ead8ba5 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | | Gstreamer plugin: replace foreach with range-based forAnton Kudryavtsev2016-01-1514-37/+51
| | | | | | | | | | | | | | | Change-Id: Ic6d0f9d6b45eae1cdadc46783cb6f5bb7c64ac8c Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | | fix expensive iteration over QMap::keys() and QHash::keys()Anton Kudryavtsev2016-01-142-4/+4
|/ / | | | | | | | | Change-Id: I244aa1ecf006774ebe5fb9bb5b22d37142186e39 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.5' into 5.6Yoann Lopes2015-11-2013-18/+151
|\| | | | | | | Change-Id: I8e0f222f110cc23b426f2d68416f5cc3982e30f2
| * Support compiling with GStreamer < 0.10.32 in the camerabin plugin.Yoann Lopes2015-11-1913-18/+151
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.6Liang Qi2015-11-171-2/+2
|\| | | | | | | Change-Id: I72dc669a746c7685874afced3ee0f2f899aaf1cc
| * GStreamer camerabin: always provide the zoom control.Yoann Lopes2015-10-281-2/+2
| | | | | | | | | | | | | | | | It doesn't actually require GstPhotography to be available at compile time. Change-Id: I738e71e4a108a40e79440096be6607afff0134fa Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* | QtMultimedia: Fix build with CONFIG+=use_gstreamer_camera optionDenis Shienkov2015-11-111-1/+1
| | | | | | | | | | Change-Id: If2d996545cc61c019f44c3c4f311b659513ff754 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.5' into 5.6Yoann Lopes2015-10-207-20/+35
|\| | | | | | | Change-Id: Ie1e478eca1cdfd99ccd3a3c8a07aefbfa27ccbdb
| * GStreamer: fix compilation with version < 0.10.31.Yoann Lopes2015-10-207-20/+35
| | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.5' into 5.6Yoann Lopes2015-08-247-24/+20
|\| | | | | | | | | | | | | Conflicts: src/imports/multimedia/qdeclarativeaudio.cpp Change-Id: I57c6252b084e4ed796f6f308b2e0c717d0f59b13
| * GStreamer: refactored widget and window control.Yoann Lopes2015-08-183-14/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Avoid races when sending EOSRicardo Salveti de Araujo2015-08-181-2/+2
| | | | | | | | | | | | | | | | | | | | In order to avoid races when sending EOS, we need to make sure that the pipeline is in playing state first. Task-number: QTBUG-45707 Change-Id: I518e89badf38bea8ab8e2cead9a1ca09659af8b2 Reviewed-by: Timo Jyrinki <timo.jyrinki@canonical.com> Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * GStreamer: added convenience function in QGstUtils.Yoann Lopes2015-08-133-8/+6
| | | | | | | | | | | | | | -> qt_gst_element_get_factory_name(GstElement *elem) Change-Id: Icf806488b49fbcdecdd605b6316bd1ef8796a883 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.5' into devFrederik Gladhorn2015-08-093-82/+37
|\| | | | | | | Change-Id: I957b44c06fca7a3f552edc18f286de043d31e42d
| * GStreamer: use QMediaStorageLocation to generate capture file names.Yoann Lopes2015-08-042-70/+14
| | | | | | | | | | Change-Id: I2111eb8e28f60ca6305a48a8ee9299bc14ab0df9 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * GStreamer: fix possible integer overflow in comparison.Yoann Lopes2015-08-041-1/+1
| | | | | | | | | | Change-Id: I6cf4349f89320f72cce4d04cdf909476e583d11f Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * GStreamer: fix supported values returned by CameraBinImageProcessing.Yoann Lopes2015-07-141-11/+22
| | | | | | | | | | Change-Id: I5a4db9c055495714943421742dd237b6abf7daee Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* | Use QSet::intersects() instead of QSet::intersect()Sergio Martins2015-05-301-2/+2
|/ | | | | | | It's much faster. Change-Id: Iee42359147ebb76b5848f3ac2e17eb92214c8ab6 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* QMediaPlayer: handle resource files in a cross-platform way.Yoann Lopes2015-04-072-27/+0
| | | | | | | | | | | | | | | | | | | | It was the backend's responsibility to handle resource files in an appropriate way. In practice, it was either not handled at all, or implemented in an almost identical manner in every backend that does handle it. This is now dealt with in QMediaPlayer, always passing to the backend something it will be able to play. If the backend has the StreamPlayback capability, we pass a QFile from which it streams the data. If it doesn't, we copy the resource to a temporary file and pass its path to the backend. Task-number: QTBUG-36175 Task-number: QTBUG-42263 Task-number: QTBUG-43839 Change-Id: I57b355c72692d02661baeaf74e66581ca0a0bd1d Reviewed-by: Andrew Knight <qt@panimo.net> Reviewed-by: Peng Wu <peng.wu@intopalo.com> Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>