summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* add missing capability properties to CameraImageProcessingJochen Seemann2018-02-013-0/+77
| | | | | | Task-number: QTBUG-45336 Change-Id: Iac47212b0a73b275795bd3051a2141f8089b7dc5 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* add mirrored API to QVideoSurfaceFormatJochen Seemann2018-02-012-0/+32
| | | | | | | | | Adds setters and getters for the already implemented property of QVideoSurfaceFormat. Task-number: QTBUG-47606 Change-Id: Icf509af80c13e80568645d90c6a621cd30cf776c Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* add property supportedExposureModes to CameraExposureJochen Seemann2018-02-013-0/+34
| | | | | | Task-number: QTBUG-45336 Change-Id: I9b4f3271f7f56b88f2484f56dd1d37e2e97f5118 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* add supportedFocusModes and supportedFocusPointModesJochen Seemann2018-02-013-1/+71
| | | | | | | | | | This patch adds two properties to QML type CameraFocus, to gain feature parity with the C++ interface of QCameraFocus. Additionally, it deprecates the older, comparable functions. Task-number: QTBUG-45336 Change-Id: Iffc5c805409ed605dba5d4bc3fa2f05122b58b9e Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* DirectShow: Add the zoom controlChristian Stromme2018-01-225-2/+309
| | | | | | | | | | Makes is possible to to control the zoom value, if the camera supports it. [ChangeLog][DirectShow] Added camera zoom support. Change-Id: I7a24c7fefb947bdcfc3ff8f755aa761135cc6fde Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* DirectShow: Add video probe support for the cameraChristian Stromme2018-01-224-0/+52
| | | | | | | | | | This change makes it possible to use the QVideoProbe class with the camera. [ChangeLog][DirectShow] Added support for video probes in the camera. Change-Id: Ib353e80e68ea2dcc5b33fd81863f4b6613257e45 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* DirectShow: Add camera image capture controlsChristian Stromme2018-01-2210-11/+328
| | | | | | | | | | Adds controls for setting the capture destination and buffer format. [ChangeLog][DirectShow] Added support for setting the capture destination and format. Change-Id: I7420ea5dce9bf1bef391b6ba3a1537bedfbcf52d Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* DirectShow: Add exposure controlChristian Stromme2018-01-225-9/+530
| | | | | | | | | | Makes it possible to manually control the shutter speed and/or the aperture on cameras that supports it. [ChangeLog][DirectShow] Added support for manual camera exposure control Change-Id: I340964f899fec365df870834b230c1d743ceb2e8 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Merge remote-tracking branch 'origin/5.10' into devLiang Qi2018-01-2011-82/+86
|\ | | | | | | | | | | | | | | Conflicts: src/plugins/avfoundation/mediaplayer/avfmediaplayersession.h src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm Change-Id: Ic43fb2a805ed9f0f2ea48993d47859716f1f11b4
| * Fix shader compilation failureVal Doroshchuk2018-01-191-1/+1
| | | | | | | | | | | | | | | | "No precision specified for (float)" error might be produced when using swizzle shader. Change-Id: I2a0be94a735f93de00a153515bd9593d483c9edf Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| * Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2018-01-1810-81/+86
| |\ | | | | | | | | | Change-Id: I7566f543ce11ff6cddc4d17e2c258a582f365b65
| | * Document licensesKai Koehne2018-01-182-0/+18
| | | | | | | | | | | | | | | Change-Id: I827a8de356f42217a64191a467fa850e3eb6f4ef Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| | * Merge remote-tracking branch 'origin/5.9.4' into 5.9Liang Qi2018-01-182-27/+8
| | |\ | | | | | | | | | | | | Change-Id: I2524b124197050d16409d9d3675570594c02cd42
| | | * Revert "DirectShow: Fix memory leak in CLSID_FilterGraph"v5.9.4Christian Strømme2018-01-152-27/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The reverted commit brakes rendering on video on Windows; only the first frame is delivered. This reverts commit 8ec92863f13061c3dd2d56376eddfe258915589f. Task-number: QTBUG-65736 Change-Id: I298da5803efe13d0f17868714393cc9b1760b4a7 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| | * | Improve quality of YUVY and UYVY renderingTomasz Olszak2018-01-153-41/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Idea is to upload YUYV/UYVY data as 2 textures and use GL_LINEAR like in biplanar formats. Having proper interpolation of only one texture (using e.g. mix function) resulted in vertical and horizontal 1 pixel stripes depending on scale. The reason was float precision and unexpected value of fract function. Additionally branching in shader is expensive so this solution should be more performant. Task-number: QTBUG-62155 Change-Id: I7ceeb09b4a54eecd16640a626b499d638b52c127 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| | * | AVFoundation: use observer for tracking durationJochen Seemann2018-01-082-13/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For getting the duration of a video, Apple advises to use AVPlayerItem.duration and tracking its duration changes with an observer. Task-number: QTBUG-49558 Change-Id: Ia2adc0d23deacd185f8c338f7f44948db2444beb Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| | * | avfoundation: resolve unused parameter warningsJochen Seemann2018-01-081-0/+2
| | |/ | | | | | | | | | | | | Change-Id: I49eb4e04dd6d63a17d31fd0981be18f3b88fcc39 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | | QNX 7.0.0 audio management supportJames McDonnell2018-01-164-19/+141
| | | | | | | | | | | | | | | | | | | | | [ChangeLog][QNX] Added support for QNX 7.0.0 audio management. Change-Id: Ia9f1740577527126bf666627647084382e4d7ce9 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | | Doc: Fix clang-qdoc diagnostic warningsVenugopal Shivashankar2018-01-081-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - qtmultimedia/src/multimedia/audio/qaudiobuffer.cpp:533: (qdoc) warning: clang found diagnostics parsing \fn QAudioBuffer::StereoFrame::StereoFrame() - qtmultimedia/src/multimedia/audio/qaudiobuffer.cpp:540: (qdoc) warning: clang found diagnostics parsing \fn QAudioBuffer::StereoFrame::StereoFrame(T leftSample, T rightSample) - qtmultimedia/src/multimedia/audio/qaudiobuffer.cpp:546: (qdoc) warning: clang found diagnostics parsing \fn QAudioBuffer::StereoFrame::operator=(const StereoFrame &other) - qtmultimedia/src/multimedia/audio/qaudiobuffer.cpp:553: (qdoc) warning: clang found diagnostics parsing \fn QAudioBuffer::StereoFrame::average() const - qtmultimedia/src/multimedia/audio/qaudiobuffer.cpp:559: (qdoc) warning: clang found diagnostics parsing \fn QAudioBuffer::StereoFrame::clear() - qtmultimedia/src/multimedia/audio/qaudiobuffer.h:120: (qdoc) warning: No documentation for 'QAudioBuffer::StereoFrame::average() const' - qtmultimedia/src/multimedia/audio/qaudiobuffer.h:121: (qdoc) warning: No documentation for 'QAudioBuffer::StereoFrame::clear()' Change-Id: Icd06a43d4684b2106a74d2bc408f9ab8b7572d7b Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | Merge remote-tracking branch 'origin/5.10' into devLiang Qi2018-01-0625-136/+205
|\| | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I5acdc7e0bd3729b80522dfff0f388cf2507fb111
| * | Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2018-01-069-98/+128
| |\| | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I3d6e69f3f99b2f0a0e2c29ffdd02176e1f22304e
| | * DirectShow: Fix rendering of overlapping MDI subwindowsVal Doroshchuk2017-12-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Media type MEDIASUBTYPE_RGB32 is 32 bytes per pixel (like 0x00RRGGBB). When MDI subwindows are overlapping bottom window with QImage::Format_RGB32 requires 0xffRRGGBB. If "not used byte" is not 0xFF rendering will not be correct (0x00 produces empty image). Changed samples to ARGB32 to provide alpha channel, which is 0xFF in most cases. If alpha channel is not set to 0xFF, the bottom window will still be rendered incorrectly. Task-number: QTBUG-51405 Change-Id: I69f15d3835f901a04bf39b079394c6292b793610 Reviewed-by: Christian Stromme <christian.stromme@qt.io> (cherry picked from commit b69259b65707acc9fc3c0818f6affe53938cebc3)
| | * Fix precision loss in QDeclarativeVideoRendererBackend::adjustedViewportVaL Doroshchuk2017-12-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Applied casting to keep precision. Task-number: QTBUG-64044 Change-Id: If3cb29b5c049302de38e5417811792405c896334 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| | * GStreamer: Prevent calling CameraBinSession::setStateHelper twiceVaL Doroshchuk2017-12-141-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since CameraBinSession::setStateHelper() is supposed to handle only pending states, added a fix to prevent calling it twice. Otherwise CameraBinSession::load() can be called few times which might lead an error from gstreamer. Possible call stack: CameraBinSession::setState() CameraBinSession::setStateHelper() CameraBinSession::load() CameraBinSession::setStatus() CameraBinSession::setStateHelper() CameraBinSession::load() << gst_element_set_state is called also twice Task-number: QTBUG-53204 Change-Id: I00c66f91cd3b885c70848245da725ff68943fad2 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| | * DirectShow: Fix memory leak in CLSID_FilterGraphVal Doroshchuk2017-12-142-8/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed memory leak when using Filter Graph Manager by moving creation of the manager to worker thread and changing threading model from shared to application thread. Task-number: QTBUG-52713 Change-Id: I7725697ced1992959d18588303c329b4dfd56b2e Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| | * Fix memory leak in QSoundEffectVaL Doroshchuk2017-12-141-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | If qthread is being exited all objects that belong to it also should be cleaned up. Task-number: QTBUG-64407 Change-Id: Ida09fcfac7e1ee2741c6e1b76a672a7a5775addc Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| | * AVFoundation: Use 90 for the front facing camera's orientationAndy Shaw2017-12-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the information is not available as to what the orientation is from the AVFoundation API then we need to rely on common sense. Since the back facing camera is 270, then it stands to reason that the front one would be 90. This has been tested on macOS and iOS and all three cameras behave correctly. Task-number: QTBUG-37955 Change-Id: I1ab079cb5d4337948541e58321df51efbadf3e39 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
| | * Revert "Android: Set the correct scan line for the video surface format"Christian Stromme2017-12-011-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change causes the video output to be shown upside down. This reverts commit 2ec485482d185f92e4de33f634bc3ef9dd6c9188. Task-number: QTBUG-64764 Change-Id: I9d3e63d2c0cce17d945b62ffead38ab5f58ace7f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit 3598915a360c596da48c9e7b00ba8469cba5249a)
| | * Windows: Fix EVR's rendering of GLTextureHandle framesVal Doroshchuk2017-11-301-73/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When ANGLE is used and video frames have GLTextureHandle handle type black screen is shown while audio is working correctly. Fixed a bug when opengl texture has not been ever creating. Fixed a crash when releasing resources due to empty QOpenGLContext. Also moved gl initialization related code to OpenGLResources. Task-number: QTBUG-61407 Change-Id: Ifc92a4a2fa2e769494ef962203446a9b3e7dd86d Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| | * Fix crash when no supported formats are returnedVal Doroshchuk2017-11-231-8/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | If waveInGetDevCaps or waveOutGetDevCaps returns MMSYSERR_NOERROR it does not mean that there are supported formats in the dwFormats field. Task-number: QTBUG-54242 Change-Id: I767ccc9570681685a27abd979ba9754034058e6f Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| | * WindowsAudio: Remove unneeded Sleep() when stopping playbackVal Doroshchuk2017-11-231-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | To terminate playback waveOutReset is already used. Task-number: QTBUG-35916 Change-Id: I50d6c25c944b01d7dfe62b2f80ec153231818a33 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| * | QML: Use alpha channel for ARGB32 video framesVaL Doroshchuk2017-12-223-7/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added a fix to use alpha channel for ARGB32 video frames. Previously alpha component was always ignored and used 1.0 instead. To see transparent videos it is still needed to enable blending by adjusting an opacity property of qml element. Task-number: QTBUG-43098 Change-Id: If3aaf8ab695021b3a49a1790d900366e9c336b33 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| * | Update player state after QMediaPlayer::EndOfMediaVal Doroshchuk2017-12-201-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Return up-to-date player state if mediaStatusChanged() with QMediaPlayer::EndOfMedia is already received but stateChanged() is not. mediaStatusChanged() is always emitted first which could cause the player to keep outdated state before stateChanged() is received. Task-number: QTBUG-57197 Change-Id: I0706069d2f4875076442fdf8ac7e938272ab843c Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| * | PulseAudio: Fix deadlock for QSoundEffect in setMuted, setVolumeVaL Doroshchuk2017-12-192-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The deadlock would happen when one of the protected functions were reentered, as the lock used was not recursive. Since reading and writing to the volume and muted properties don't happen that often, the rw-mutex was replaced by a normal non-recursive mutex, which is now unlocked before the property changed signal is emitted. Task-number: QTBUG-65220 Change-Id: I1a224e9ff03f14593a854a7c1049c8a0445e29e6 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| * | DirectShow: Add initialization of com library to service pluginVal Doroshchuk2017-12-141-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case when QCoreApplication is used the COM library was not initialized on the calling thread before the COM library calls were made. QApplication initializes it by calling OleInitialize(). Task-number: QTBUG-59320 Change-Id: I50a71b1bcc8a63f5a8ffd22c5d044f9c56de15f9 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| * | DirectShow: Fix rendering of overlapping MDI subwindowsVal Doroshchuk2017-12-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Media type MEDIASUBTYPE_RGB32 is 32 bytes per pixel (like 0x00RRGGBB). When MDI subwindows are overlapping bottom window with QImage::Format_RGB32 requires 0xffRRGGBB. If "not used byte" is not 0xFF rendering will not be correct (0x00 produces empty image). Changed samples to ARGB32 to provide alpha channel, which is 0xFF in most cases. If alpha channel is not set to 0xFF, the bottom window will still be rendered incorrectly. Task-number: QTBUG-51405 Change-Id: I69f15d3835f901a04bf39b079394c6292b793610 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| * | winrt: Add audiocapture backend to standard buildMaurice Kalinowski2017-12-121-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | The backend itself works without modifications. The user has to take care to store at a location which the sandboxing allows. Task-number: QTBUG-60904 Change-Id: I52107d766fdbc5b952ea805b01662093be482459 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * | Fix rendering issue with QGraphicsView and QOpenGLWidget viewportVaL Doroshchuk2017-12-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since QOpenGLWidget always renders offscreen (uses QOffscreenSurface) the surface size is always (1, 1). Task-number: QTBUG-53099 Change-Id: I3803efba57e04c676eda85f0e29efa34f8d8d5e5 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| * | DirectShow: Use pixel aspect ratioVal Doroshchuk2017-12-082-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Originally pixel aspect ratio was clearing (set to 1,1) within renegotiating the media type. Which caused samples with not standard pixel aspect ratio (1,1) to be rendered with black squares on the top and the bottom. (Original size was kept but PAR cleared) Added a fix to keep PAR while adjusting the media type to optimal one and set original PAR to QVideoSurfaceFormat. Task-number: QTBUG-64438 Change-Id: I6d1a5c441b89bbd5cea86667cc570bb7eb19068b Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
| * | Merge remote-tracking branch 'origin/5.10.0' into 5.10Liang Qi2017-12-083-2/+4
| |\ \ | | | | | | | | | | | | Change-Id: Iffeb04c00f5b9e7a51320570ea47e84d80fae844
| | * | Revert "Android: Set the correct scan line for the video surface format"v5.10.0-rc3v5.10.0-rc2v5.10.0Christian Stromme2017-11-281-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change causes the video output to be shown upside down. This reverts commit 2ec485482d185f92e4de33f634bc3ef9dd6c9188. Task-number: QTBUG-64764 Change-Id: I9d3e63d2c0cce17d945b62ffead38ab5f58ace7f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| | * | Merge 5.10 into 5.10.0Oswald Buddenhagen2017-11-207-11/+54
| | |\ \ | | | | | | | | | | | | | | | Change-Id: Id50796542954ded82fb265b4737d737aff033633
| | * | | QWasapiAudioDeviceInfo: fix QByteArray => QString conversionAlexander Ivash2017-11-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QByteArray was created inside 'QWasapiUtils::availableDevices' using 'toLocal8Bit' so needs to be converted to QString via 'fromLocal8Bit' Task-number: QTBUG-64262 Change-Id: I70cdaf35dbdbee671fbf7c4e1b46b18c13ca98cc Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
| | * | | Doc: Maintain the list of highlighted examples locallyTopi Reinio2017-11-101-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the list was maintained in qtbase. Also, add highlighting for 'Media Player Example'. Task-number: QTBUG-60627 Change-Id: I030863ac89e2bac6a2322a52afaece2cc1c8dcd3 Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
| * | | | GStreamer: Always notify CameraBinSession if a device has been selectedVaL Doroshchuk2017-12-051-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CameraBinSession is never notified if a device has been unplugged and replaced by new one with the same index. Since QGstreamerVideoInputDeviceControl is for internal usage and dependent classes already check against the device name, we don't need to check it here. Task-number: QTBUG-64080 Change-Id: I064289335642d5d673f9db1ea206850968002d2e Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| * | | | GStreamer: Emit an error if no input device provided for QCameraVaL Doroshchuk2017-12-051-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prevents building a camera source if no input device name is provided. And emit an error immediately. Task-number: QTBUG-64155 Change-Id: I509bee1df0acb372d26f45fd27057f8b7e141c2a Reviewed-by: Christian Stromme <christian.stromme@qt.io>
| * | | | ALSA: Don't check the device name in open()VaL Doroshchuk2017-12-051-3/+0
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Each time when open() is called device name was checked for availability. Which could impact to performance especially for embedded devices. Also the check of device name is done while calling snd_pcm_open(). Task-number: QTBUG-63007 Change-Id: Ib0afe7326552968870f4ca95a7807ae8f704fd3f Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | | | AVFoundation: implement bufferStateJochen Seemann2017-12-213-3/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This add support for the buffer status with AVPlayerItem.playbackLikelyToKeepUp. It only supports buffer status values of 0 and 100. Change-Id: I5779ea360fe9c497ecc0236e442850422d96ac87 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | | | Port away from QRegion::rects()Marc Mutz2017-12-041-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Use begin()/end() instead. Change-Id: Ifa17458190186b987533bd705717ddaec5fc94d4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | | | Merge remote-tracking branch 'origin/5.10' into devLiang Qi2017-11-2016-24/+63
|\| | | | | | | | | | | | | | | Change-Id: Icaf645e271b21320c4cb6269178d9e722092a263