summaryrefslogtreecommitdiffstats
path: root/src/plugins/winrt
Commit message (Collapse)AuthorAgeFilesLines
* winrt: Fix video playback without autoplay enabledMaurice Kalinowski2017-03-211-1/+5
| | | | | | | | | | We have to ensure that a device handle is present and valid when calling setSource. Otherwise the engine switches into an error state when trying to continue loading. With autoPlay enabled that implicitly happened. Task-number: QTBUG-58152 Change-Id: Id504efd9b1b77b418ae05baed3ac0c52852cf49e Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Merge remote-tracking branch 'origin/5.8' into devYoann Lopes2017-01-262-2/+11
|\ | | | | | | | | | | | | | | | | Conflicts: .qmake.conf examples/multimediawidgets/videographicsitem/videoplayer.h src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp Change-Id: Id5ce05ffe2cd25657232157b162680b2e24a35ba
| * winrt: Fix pause/play for videosMaurice Kalinowski2017-01-031-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is partially a revert of bff19dbe6733d245. While that commit fixed switching cameras it did not respect pausing a video, where setActive is called from a different thread than in the camera case. Using shutdown introduced a wait, which in that case deadlocked. Instead revert to request an interrupt, but when restarting make sure that the render thread is on hold before start is invoked. Task-number: QTBUG-53722 Change-Id: Id5a722911bb2c30509fabb73bec925cadbf77628 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * winrt: Fix video playbackMaurice Kalinowski2017-01-031-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Rendering should only be activated once the video frame size is known. Otherwise the texture is created with an invalid size and rendering will be stopped. This happens for some codecs where MF_MEDIA_ENGINE_EVENT_LOADEDMETADATA is not known instantly after loading video files. Task-number: QTBUG-57707 Change-Id: Ic2347c8606239770e129544fd228b96929ed6198 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | winrt: Fixed emission of readyForCaptureChangedOliver Wolff2016-11-072-10/+17
| | | | | | | | | | | | | | | | The signal should only be emitted if the state of readyForCapture has actually changed. Change-Id: I4a4e2bf4451cd970f460813b2bdb32685067c453 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | Fixed winrt/windows phone buildOliver Wolff2016-11-072-1/+10
|/ | | | | | | | | readyForCaptureChanged cannot be connected to stateChanged as their arguments are not compatible (error: narrowing). Task-number: QTBUG-56927 Change-Id: I31ebc79a22a2d3565a16ab664163bf2d574a527f Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* winrt: Fix crash when locking/unlocking focusMaurice Kalinowski2016-10-111-39/+59
| | | | | | | | The lock/unlock operation has to be created in the Xaml thread. Task-number: QTBUG-56034 Change-Id: I450ad0ba4a8f1275f878917bcd16c31fbf87e164 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* winrt: Add QCameraFlashControlMaurice Kalinowski2016-09-196-0/+286
| | | | | | | | | | | This is without video modes so far, simply because video itself is not supported yet. Also included a cleanup for string conversions. Task-number: QTBUG-48541 Change-Id: Ib090f61861596e095d597cf7e5e74f7040fbc58f Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* winrt: Make focus actions synchronousMaurice Kalinowski2016-09-192-92/+75
| | | | | | | | | | | | | | | The camera and its controls have been moved out of the xaml thread recently, hence acting asynchronously is not required anymore for the focus control. In addition to this, previous behavior caused troubles inside QML as QDeclarativeCameraFocus::setFocusMode always emitted a focus change even though it did not happen yet. This resulted in inconsistencies between QML and the plugin. Task-number: QTBUG-48539 Change-Id: I19a3a3512530b01b627476e233291d737cfee11f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Samuel Nevala <samuel.nevala@intopalo.com> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-08-1730-373/+469
|\ | | | | | | Change-Id: Ib8d05d6e21c7beb19f618cd1edc52d248b1e43b8
| * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-131-13/+19
| |\ | | | | | | | | | Change-Id: I3204cdf695f4b47730a88a7c41fc7a6de967b161
| | * WinRT: emit mediaStatus changes before state changesYoann Lopes2016-08-121-13/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Also, when both mediaStatus and state are changed at the same time, make sure both variables are updated before sending the corresponding signals. Task-number: QTBUG-49578 Change-Id: I8eed6692503bba1540070f6435b7ea1f5e25c023 Reviewed-by: Andrew Knight <andrew.knight@intopalo.com> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Christian Stromme <christian.stromme@qt.io> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
| * | Replaced old license headers with new and correct onesJani Heikkinen2016-08-1230-360/+450
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replaced - header.LGPL3 with header.LGPL - header.LGPL21 with header.LGPL Change-Id: If11396da6ff12e9122281c17fc4354b05a554ee5 Reviewed-by: Ruslan Baratov <ruslan_baratov@yahoo.com> Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-08-021-1/+2
|\| | | | | | | | | | | | | | | | | | | | | | | 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/+2
| |\| | | | | | | | | | Change-Id: Ic29cb09048003f18ff86d4546cd547be715eaec8
| | * winrt: Do not assert when missing region of interestMaurice Kalinowski2016-07-041-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Asserting is too heavy and can cause false positive on devices like the Lumia 535, where focus is supported, but not setting a focus point. Later on we check for existence of the control during the initialization, so it is safe to continue here. Task-number: QTBUG-54278 Change-Id: Ie68ff754d742888bdd6f4047e07d207707c90c91 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devEdward Welbourne2016-07-212-46/+70
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/directshow/player/directshowiosource.cpp One side disintermediated filling a vector; the other reduced it to one entry. src/plugins/directshow/player/directshowiosource.h One side renamed a member, the other added another adjacent to it. src/plugins/pulseaudio/qpulseaudioengine.h One side added a header, the other replaced the next with a different header. Change-Id: I3a031975f5af43ca39cca571f215c612f640b7d6
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-06-302-40/+61
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Blacklisted a few functions in tst_QAudioInput. Conflicts: .qmake.conf src/plugins/avfoundation/camera/avfcameracontrol.mm src/plugins/avfoundation/camera/avfcameraservice.h src/plugins/avfoundation/camera/avfcameraservice.mm src/plugins/avfoundation/camera/avfcamerasession.h src/plugins/avfoundation/camera/avfcamerasession.mm src/plugins/avfoundation/camera/avfcameraviewfindersettingscontrol.h src/plugins/avfoundation/camera/avfcameraviewfindersettingscontrol.mm src/plugins/avfoundation/camera/avfimagecapturecontrol.mm src/plugins/avfoundation/camera/avfimageencodercontrol.mm src/plugins/avfoundation/camera/avfmediarecordercontrol.h src/plugins/avfoundation/camera/avfmediarecordercontrol.mm tests/auto/integration/qaudioinput/BLACKLIST Task-number: QTBUG-54459 Task-number: QTBUG-49736 Change-Id: I3a1fe8cef50b44d5c2785aaf4cf69fe3f16728e6
| | * Merge remote-tracking branch 'origin/5.6.1' into 5.6Liang Qi2016-06-091-6/+9
| | |\ | | | | | | | | | | | | Change-Id: I0b4fde2a47b428fd04012a8dbec16fd14797b8dd
| | * | winrt: Fix synchronization problems to render threadMaurice Kalinowski2016-06-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QWinRTAbstractVideoRendererControl::setActive was using QThread::requestInterrupt previously to indicate to the render thread that it is supposed to quit. However, when switching cameras you cannot tell the render thread to continue rendering. Instead start() is called and then the render thread recognized the previous interrupt request, resulting in a quit and no further rendering happening. Instead we wait for the render thread to complete by using shutdown(). Task-number: QTBUG-53722 Change-Id: Ibee2ed4f64400ca14c788984a73df4be0653ed2b Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| | * | winrt: Add logging to QWinRTAbstractVideoRendererControlMaurice Kalinowski2016-06-081-0/+9
| | | | | | | | | | | | | | | | | | | | Change-Id: I44620b8513fdf20ebc0e093368044133eabdd6b3 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| | * | winrt: focus action has to happen in the xaml threadMaurice Kalinowski2016-05-311-39/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise it will cause asserts and/or crashes. Change-Id: If8af4202395ae573b280744343dd853346a8c160 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * | | Merge remote-tracking branch 'origin/5.6.1' into 5.7.0Liang Qi2016-06-011-6/+9
| |\ \ \ | | | |/ | | |/| | | | | Change-Id: If59885e0d0780390705c69fa7520c6ccc179ef45
| | * | winrt: Fix potential crash when querying for resolutionsv5.6.1-1v5.6.1Maurice Kalinowski2016-05-311-6/+9
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | c84bdf63e4de16586eda3c45d5c3c3b2dc4fe089 introduced a potential crash on Windows Phone as querying for photo resolutions still might return video properties. As a result, querying for ImageEncodingProperties will fail and the function returns no resolution at all causing an assert later on. Instead of checking for the stream type passed to getMediaStreamResolutions we have to check for the property type of the list itself. Task-number: QTBUG-53714 Change-Id: I7bfc48ebf1fef4f9165135af604ce6c91a418438 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-05-241-10/+25
|\| | | | | | | | | | | Change-Id: I5aedca14c2bd454de0c274eeca88d15b83ae07a5
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-05-191-10/+25
| |\| | | | | | | | | | Change-Id: Ib95ddbbc6e2b69663597cae045ec81eda6d12d58
| | * Merge 5.6 into 5.6.1Oswald Buddenhagen2016-05-121-1/+1
| | |\ | | | | | | | | | | | | Change-Id: Ib4a7640e12319d78ea5ae8f58d79c9fab8d0ea60
| | | * winrt: Only set focus if supportedMaurice Kalinowski2016-05-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ic6dc2eb6acbd0f5167aa4bad9af08ce8aa5a456b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| | * | winrt: Fix crash when initializing certain camerasMaurice Kalinowski2016-05-111-9/+24
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some cameras return video properties when querying for MediaStreamType_Photo, ie. Surface Book. This caused an assert. Instead when asking for photo resolutions, only query the available image resolutions and skip results not of type image. Change-Id: Ia1886a11f47676d6713eec86f3a80c664871a968 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-05-136-198/+259
|\| | | | | | | | | | | Change-Id: I773db005bbdc511169917ee35eb5b517e898926b
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-05-106-198/+259
| |\| | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/winrt/qwinrtcameracontrol.cpp Change-Id: I45d3042adf19577a72794610fa1c310cb22e26c4
| | * winrt: Disable camera deactivation automation in debug modeMaurice Kalinowski2016-04-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Camera control reacts to an application becoming inactive and turns off the camera. However, when debugging or watching internals inside an IDE this feature breaks the state of the application as the IDE gets focus and hence camera is turned off. Change-Id: I6f80476592c0faa32e9da11401f699c6211d226a Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| | * winrt: Fix device watcher handlingMaurice Kalinowski2016-04-221-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When device watcher has been started it can have the enumerationComplete state in addition to started. Hence only start the watcher if none of those two states is present. This fixes an assert where starting an already started watcher failed. Change-Id: Idc3af256845f0993a26e8d186b499ef1c7e7dacc Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| | * winrt: fix camera control after move to xaml threadMaurice Kalinowski2016-04-225-193/+230
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Camera control management has to happen inside the xaml thread, otherwise the behavior is undefined. This results in ie. the first capture not working due to synchronization issues. When (de-)activating the videoRenderer we have to switch to the UI thread first. In addition add focus for Windows 10 (Mobile), previously it was compiled for Windows Phone 8.1 only. On desktop this might return no focus mode to be supported, but API-wise this is available. Task-number: QTBUG-47803 Change-Id: I9b345ebc82502fc6e00aede43b9096893cd0ad53 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| | * winrt: Add categorized logging to camera controlMaurice Kalinowski2016-04-223-0/+17
| | | | | | | | | | | | | | | | | | Change-Id: I6d823ac07950212d766905c9409469f2b1b84954 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
| | * winrt: Use ComPtr for better ref count trackingMaurice Kalinowski2016-04-223-4/+6
| | | | | | | | | | | | | | | | | | | | | Just forwarding the content of a ComPtr is potentially dangerous. Change-Id: I4f3dfa04a5844d299a5653e31a4a0d1e1b86f9b5 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | | winrt: Add YUY2/YUYV to supported formatsMaurice Kalinowski2016-05-031-0/+3
|/ / | | | | | | | | | | Change-Id: I359e7d8e8cdab7d2475ce5114489ef0a392c3619 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-03-071-4/+4
|\| | | | | | | | | | | | | | | | | | | | | | | 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
| * consistently put {qt,qml}_{module,plugin} at the end of project filesOswald Buddenhagen2016-02-251-4/+4
| | | | | | | | | | | | | | | | 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-2/+15
|\| | | | | | | Change-Id: I2e4e9cca01d63ed0d1e7f71c7a58322390696036
| * winrt: Fix playback of filesMaurice Kalinowski2016-01-181-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The backend uses triple buffering in the background to prefetch some buffers. However, at some point it tries to invoke SetCurrentPosition beyond the end of the file. MSDN states that for IMFByteStream one should return E_INVALIDARG, but that has negative sideeffects. What happens is that immediately MF_MEDIA_ENGINE_ERR_DECODE is sent causing the playback to stop, even if there are still valid buffers in the queue. The example in the bug reports causes up to 5 seconds of playback to be lost. This can also be reproduced with larger files. To circumvent this, return S_FALSE instead to still notify that seeking in the buffer did not work. Task-number: QTBUG-49236 Change-Id: Id4b093bf9480f5d02c7f9191fa4424f51c60e078 Reviewed-by: Andrew Knight <andrew.knight@intopalo.com> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
| * winrt: Fix crash in debug modeMaurice Kalinowski2016-01-181-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In debug mode we try to set the D3D11_CREATE_DEVICE_DEBUG flag to gather additional information for debugging purposes. However, some devices do not provide those and the D3D11CreateDevice call fails. Instead, try to create a hardware non-debug device first before going into the last software-mode fallback. Task-number: QTBUG-49488 Change-Id: I2d91b5f54f7fd818103bd106314b8503e5759159 Reviewed-by: Samuel Nevala <samuel.nevala@intopalo.com> Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into devChristian Strømme2016-01-151-2/+3
|\| | | | | | | | | | | | | | | Conflicts: src/plugins/android/src/mediacapture/qandroidcamerasession.cpp src/plugins/wmf/mftvideo.cpp Change-Id: I78868b416ea4baec89ca3e2dc9eb4712db16d5fc
| * winrt: Fix Lumia 930 black viewfinder.Samuel Nevala2015-11-271-2/+3
| | | | | | | | | | | | | | | | | | Add Lumia 930 to the camera texture blacklist. Task-number: QTBUG-49660 Change-Id: Icc4cdbb5e5e736b2273c46f0537a62aeaad0c605 Reviewed-by: Matti Malinen <matti.malinen@digia.com> Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
* | WinRT, WindowsAudio plugins: replace foreach with range-based forAnton Kudryavtsev2016-01-154-6/+7
| | | | | | | | | | Change-Id: I37ab3239aeaa01ecd033bfe7d9c8885511844d4d Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | fix expensive iteration over QMap::keys() and QHash::keys()Anton Kudryavtsev2016-01-141-2/+3
|/ | | | | Change-Id: I244aa1ecf006774ebe5fb9bb5b22d37142186e39 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* winrt: Wait for focus to finish when camera stoppedSamuel Nevala2015-11-201-4/+19
| | | | | | | | | Change-Id: I53918a8f7c5f50331593ad09233cd737e040e650 Task-Id: QTBUG-49527 Reviewed-by: Andrew Knight <andrew.knight@intopalo.com> Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com> Reviewed-by: Matti Malinen <matti.malinen@digia.com> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
* winrt: Early return from searchAndLock if camera not active.Samuel Nevala2015-11-191-5/+6
| | | | | | | Change-Id: If2279db9cffbc5d06f0d662b6f942b6985034675 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com> Reviewed-by: Matti Malinen <matti.malinen@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* winrt: Fix toggling camera position.Samuel Nevala2015-11-171-3/+3
| | | | | | | | | | Change scanline direction every time camera position changes. Change-Id: I8673eabe361c951f97f4422a682d11e862f8b27a Task-Id: QTBUG-47809 Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com> Reviewed-by: Andrew Knight <andrew.knight@intopalo.com> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
* winrt: Fix crash when camera unloaded while searching focus.Samuel Nevala2015-11-112-8/+14
| | | | | | | | | | Return early from focus related methods when async operation reports that it is write protected. Change-Id: I41bf9121e7ae431e5158b5e4c43cde582c30dfd7 Task-Id: QTBUG-49347 Reviewed-by: Peng Wu <peng.wu@intopalo.com> Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>