summaryrefslogtreecommitdiffstats
path: root/src/plugins
Commit message (Collapse)AuthorAgeFilesLines
* Remove usages of deprecated qSortSona Kurazyan2019-06-201-2/+2
| | | | | | Task-number: QTBUG-76491 Change-Id: I7a22d6612848e25bb780d205c6cdbb314cd4762d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-06-181-4/+2
|\ | | | | | | Change-Id: Ic3ac3515666576046ac1ec5342c5b06aadbc18ac
| * Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-06-151-4/+2
| |\ | | | | | | | | | Change-Id: Ib819180a25ceedfb072362d55d30f94e40a44f9b
| | * AVFoundation: Fix sending proper state in QMediaRecorderVaL Doroshchuk2019-05-101-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Need to send the state if it has been applied. Currently it happens when Recording is requested. If Stopped is requested, the state will be changed in handleRecordingFinished callback. Change-Id: I6911f2cebb2d1cc8a08eee17e7b91654b5d6e4c7 Fixes: QTBUG-75287 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | | DirectShow: Clang warnings about else after return, breakFriedemann Kleint2019-06-125-25/+24
| | | | | | | | | | | | | | | | | | | | | Disentangle code of DirectShowPlayerService::requestControl(). Change-Id: I2e90d5c86acdbe2f20f421f43929e0e9c5580eaf Reviewed-by: André de la Rocha <andre.rocha@qt.io>
* | | Convert uses of QTime as a timer to QElapsedTimerEdward Welbourne2019-06-137-15/+17
| | | | | | | | | | | | | | | | | | | | | | | | It was deprecated by qtbase/ed99a591a83a399458f12341d0a1c0b3152f247a. Change-Id: I87bf219c05a62e1deeb9d3df558e5084318a2a69 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | | DirectShow: Fix clang-warning about mixing const/non-const iteratorsFriedemann Kleint2019-06-121-1/+1
| | | | | | | | | | | | | | | Change-Id: Iadaae490ff88737cf8a73ef8024617f60773a631 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | | DirectShow: Replace typedef by usingFriedemann Kleint2019-06-122-2/+2
| | | | | | | | | | | | | | | | | | | | | Apply some fixits by Qt Creator. Change-Id: I20b62c70b5ed0e79ca735f1ab9b048023eb9dc7d Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-06-034-17/+26
|\| | | | | | | | | | | Change-Id: Id1638836ea3faf16c4ba39119029522b2afbe803
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Liang Qi2019-06-034-17/+26
| |\| | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/directshow/player/directshowplayerservice.cpp Change-Id: I6b7edc312ecfadf84653ce24321ec55da41e131a
| | * DirectShow: Don't hide returned error when video output was not providedVal Doroshchuk2019-04-111-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the video output could be set after doRender(), we do not report an error in this case. But need to report the error when the video output has not been submitted at all. Otherwise it hides the error and not possible to determine playback issues. Added a fix to remember an error while rendering without the video output and handle it if playing is requested. That means, if it is required, the video output must be set before play() is called. Not all medias require valid video output, but if there is an error, we need to report about it. Fixes tst_QMediaPlayerBackend::playlist() Task-number: QTBUG-65574 Change-Id: I9faae19c08ad0273545bb7617ea3a11539084f1f Reviewed-by: Andy Shaw <andy.shaw@qt.io>
| | * Only call CoUnitialize() if calling CoInitialize() was necessaryAndy Shaw2019-05-211-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As CoInitialize() may have been called by something else beforehand then it should only call CoUnitialize() if it returns S_OK which indicates it was not already called. That ensures it is only uninitalized if it did the initialization. Change-Id: I1b723e0b69fe5f9ff7c2c6ef083e9196f21812b2 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
| | * DirectShow: Report about an error for wrong urlsVal Doroshchuk2019-05-201-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If wrong url is passed, no need to try it again. But report an error instead. Also there cannot be empty url, because if an url is empty, NoMedia should be emitted. Fixes tst_QMediaPlayerBackend::playlistObject() Task-number: QTBUG-65574 Change-Id: I658b16cfe7b96c202715651d6b20d01a9af6c746 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
| | * EVR: Remove setting of start/end times in QVideoFrameVal Doroshchuk2019-05-141-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to unknown bug in IMFTransform->ProcessOutput() when after seeking sample times are not set correctly to provided IMFSample. This causes current playback position to be not respected in video samples. Even if you seeked to higher/lower position, sample time is always counted from beginning. Which makes no sense to use this feature because video frame's sample times are not related to current position. To test it, need just seek to arbitrary position and check how startTime is not correlated to new position. Fixes tst_QMediaPlayerBackend::seekPauseSeek Task-number: QTBUG-65574 Change-Id: I897d75c055347cdcca38a84dc18f91800d070c09 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| | * DirectShow: Don't update status on pending tasks when graph is loadedVal Doroshchuk2019-05-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The tests expect to see updated playback position together with QMediaPlayer::BufferedMedia. But currently QMediaPlayer::BufferedMedia is emitted before updating the position. Removed updating the status if the graph is already loaded but a task is still pending. Fixes tst_QMediaPlayerBackend::seekInStoppedState Task-number: QTBUG-65574 Change-Id: I66d214312dbf31973a13b5154a52599aa517f38c Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| | * DirectShow: Don't set the same mediaVal Doroshchuk2019-05-141-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes tst_QMediaPlayerBackend::playlistObject() Actual (currentMediaSpy.count()): 2 Expected (1) : 1 .\tst_qmediaplayerbackend.cpp(1224) : failure location Task-number: QTBUG-65574 Change-Id: Ia7cbcb4a22ee43df9e1efff065910b084bdbf00e Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-05-182-12/+43
|\| | | | | | | | | | | Change-Id: I82d63ba32a0c9f8b883d00ef1bd68df3a10da96c
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-05-142-12/+43
| |\| | | | | | | | | | Change-Id: I03225f5e980a69246b046351f7d7d8e84f102ca0
| | * Android: Allow starting camera without viewfinder availableVal Doroshchuk2019-05-131-11/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently it is not able to start camera without viewfinder. For this purpose there is QAndroidCameraDataVideoOutput with SurfaceView in order to be able to start the camera preview. Implemented dummy QAbstractVideoSurface to render to it when no video output is provided before starting the preview. Task-number: QTBUG-73582 Fixes: QTBUG-73237 Change-Id: Ic76d247b5d5352e8539ba61271484e56d3a40fbd Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| | * Android: Don't open camera if it was already openedVal Doroshchuk2019-05-131-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The application should only have one Camera object active at a time for a particular hardware camera. Since there is no way to determine that the camera has been already opened by the same application, added a fix to prevent opening the camera if it was already opened and not released. Task-number: QTBUG-73582 Change-Id: Ide9ddea0c32489d86a613846ecf2e91ef94a776c Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | | Deprecate canonicalUrl and canonicalRequest in QMediaContentVaL Doroshchuk2019-05-138-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since QMediaContent can contain only one content and media resources are already deprecated, canonicalUrl and canonicalRequest are a bit confusing and outdated. Deprecated and replaced by QMediaContent::request() which already contains the url. Change-Id: I418006e112f49466b0129bf1e6e1ae629c714538 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-05-072-19/+23
|\| | | | | | | | | | | Change-Id: I1a8712e983332580235448fd03679303610edd24
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-05-042-19/+23
| |\| | | | | | | | | | Change-Id: Iedfcb12f51d26843d062d443d11eef5959d1c4bd
| | * Android: Don't postpone setting of camera's stateVal Doroshchuk2019-05-032-19/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently if the application is inactive, the state is postponed to be set and processed when the app becomes active. This also postpones stateChanged() signal and saving the state value, while it should be set (but not processed) immediately as done in another backends. Added a fix to store the state and emit stateChanged regardless of activity of the application. When the application becames available, the state will be processed. In case of an error while opening the camera: - UnloadedState is emitted - CameraError - UnloadedStatus Change-Id: Ie376d29366168a6b15eccea884f385070f94fe35 Task-number: QTBUG-73582 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | | Prevent immediate-stop of currently-unloading gst recording pipelineMohammed Hassan2019-04-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't blindly stop the recording pipeline if it is unloading. Ensure that we check to see if the pipeline is busy, even if it is in Unloaded state. Task-number: QTBUG-65398 Change-Id: Ieac72967311bdd3bafae60bc1d0da9d227a6c237 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-04-1311-66/+75
|\| | | | | | | | | | | Change-Id: Idb05a117cf226919a34122b8b4156173120a128d
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Liang Qi2019-04-1011-66/+75
| |\| | | | | | | | | | | | | | | | | | | | | | Conflicts: tests/auto/integration/qdeclarativevideooutput/tst_qdeclarativevideooutput.cpp Done-with: Val Doroshchuk <valentyn.doroshchuk@qt.io> Change-Id: I745dd948c1e98180115f85c17bef802351bbdb6b
| | * Windows: Reset position on pause in QMediaPlayer after EOSVal Doroshchuk2019-04-101-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pause() should reset position to the beginning after EOS. Fixes tst_QMediaPlayerBackend::processEOS Task-number: QTBUG-65574 Change-Id: I4802102bde657d7a3dde0b426c335b021207ae08 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| | * EVR: Don't repaint with black until the surface is activeVal Doroshchuk2019-04-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A frame must be presented until pause/play is called. Fixes tst_QMediaPlayerBackend::seekPauseSeek Task-number: QTBUG-65574 Change-Id: I6946c5a5977c44fed80abce364a4222845898016 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| | * QWindowsAudioInput: Set volume only if it has been requestedVal Doroshchuk2019-04-081-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently if the device gets opened, also its volume is set to 100%. The volume should be set only if it has been requested. Change-Id: I9dc4ab29ad71f3ac6556c6dd32c7b8e5d69efab2 Fixes: QTBUG-75024 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
| | * Android/AudioTrack: Fix crash when it is unable to get min buffer sizeVal Doroshchuk2019-04-032-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | android/media/AudioTrack::getMinBufferSize might return an error instead of a size. Task-number: QTBUG-73583 Change-Id: I52e2d214ab7065bcea9d983979bb0b83717428af Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| | * Android: Fix status of QMediaRecorder after start/stopVal Doroshchuk2019-04-032-45/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the camera is ready for capture -> QMediaRecorder::LoadedStatus. If CaptureVideo is changed to CaptureStillImage -> StoppedState and UnloadedStatus. If camera's status is StoppingStatus -> StoppedState and UnloadedStatus. If camera's status is LoadingStatus -> LoadingStatus. If recording is requested -> RecordingState and RecordingStatus. If recording is audio-only -> immediately LoadedStatus, before start and after stop. Fixes tst_QCameraBackend::testVideoRecording Task-number: QTBUG-73582 Change-Id: I976c4e3afab529e0949571c4002e9ceba74cac97 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| | * DirectShow: don't change camera zoom level if not requestedIhor Dutchak2019-04-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DirectShowCameraZoomControl sets camera zoom level to 1x each time, when camera goes into LoadedStatus (e.g. on stream stop), which is inconveniant, specially if camera has physical remote, and zoom level may be changed externally. Disable this behavior, if zoom level was not requested explicitly by zoomTo(...) function from client code. Fixes: QTBUG-74180 Change-Id: I99ff76af04f80c630a0c397db5713e6706ebf175 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io> Reviewed-by: Ihor Dutchak <ihor.youw@gmail.com>
| | * Android: Use CaptureStillImage as default capture modeVal Doroshchuk2019-03-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Fixes tst_QCameraBackend::testCaptureMode. Change-Id: I2f6486102ebcbf7e1ab0feea8c13658772d5b90f Fixes: QTBUG-73582 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| | * winrt: Use highest supported resolution for camera preview/image captureOliver Wolff2019-03-282-7/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using the lowest supported resolution yields ugly results and has weird side effects (green bars). If no resolution is explicitly given, we should use the maximum supported solution for preview as well as capture. Task-number: QTBUG-72874 Change-Id: Ie0fae65180e66156c6de468f2cabb9122fe665ba Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-03-304-5/+29
|\| | | | | | | | | | | Change-Id: If1977853a4e364f06f91bfe1d2cb128a920050f0
| * | Android: Introduce HTTP headers to MediaPlayerVal Doroshchuk2019-03-254-5/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added using the headers from QNetworkRequest to be sent together with the request for the data in MediaPlayer::setDataSource. The MediaPlayer requires also a Context object, together with headers, to resolve the Uri. It will try to find a content provider. Since no content providers are implemented, this produces a warning: "MediaPlayer: Couldn't open file on client side; trying server side: java.io.FileNotFoundException: No content provider" Task-number: QTBUG-74073 Change-Id: I1566953b523e84400882ba9d3a968cec6b4a61cf Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-03-161-5/+4
|\| | | | | | | | | | | Change-Id: I2933727024e53843ac2ab23c189f3a3a5c08c219
| * | AVFoundation: Fix typosv5.13.0-beta1Val Doroshchuk2019-03-111-5/+4
| | | | | | | | | | | | | | | Change-Id: Iab522426786a0244bf23cf889e08b5c52550eb39 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | Remove the mirclient code as this is no longer availableAndy Shaw2019-02-191-10/+0
|/ / | | | | | | | | | | | | | | Fixes: QTBUG-73878 Change-Id: Ia178d41a3e152174865264c71a75e84cfc31462a Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io> Reviewed-by: Gerry Boland <gerry.boland@canonical.com> Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-02-091-4/+1
|\| | | | | | | Change-Id: I26440611372622174c5b077be21e5a22b8136e97
| * DirectShow: Fix crash when camera is being destroyedVal Doroshchuk2019-02-061-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | If a camera is going to be destroyed, a service plugin releases media service, (which releases ds camera session) and might call CoUninitialize. This leads to a crash when DirectShowSampleGrabber is destroyed after releasing the camera. Added a fix to release the sample grabber together with camera session. Task-number: QTBUG-73461 Change-Id: I8e518d0242d983c8d2bb00c30ad87c7e8e1e2c93 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | Android: Implement audio rolesVal Doroshchuk2019-02-0812-0/+445
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduced custom and standard audio role controls using MediaPlayer.setAudioAttributes(AudioAttributes) which added in API level 21. Custom audio roles might contain a list of roles separated by comma. E.g "CONTENT_TYPE_MOVIE,USAGE_ALARM", which means content type is movie and usage is alarm. [ChangeLog][Platform Specific Changes][Android] Implemented audio roles. Task-number: QTBUG-73119 Change-Id: I281d1ce899d29f54d271516a1fca5f11c897fc90 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | Gstreamer: Add support of avfvideosrc for camerabinVaL Doroshchuk2019-02-081-0/+6
| | | | | | | | | | | | | | | | | | Gst Device Provider now can be used for macOS also. Added support of avfvidesrc element to be used within camerabin. Task-number: QTBUG-72125 Change-Id: I69205649c6e75432534e240656d8cb4748ee10cc Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-02-022-8/+17
|\| | | | | | | Change-Id: Ia13d887c3e3bf00b6ded5d052384fc5689b816fe
| * Android: Fix memory leak of GL resourcesVal Doroshchuk2019-01-312-8/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DeferredDelete events have implicitly higher priority, which makes this event to be handled before MetaCall events. See QSGSoftwareRenderThread::sync(): ... QCoreApplication::sendPostedEvents(nullptr, QEvent::DeferredDelete); Where it processes deferred deletes and no meta calls will be delivered even if they were requested before the deferred delete. Task-number: QTBUG-67280 Change-Id: Iba23550d2cffb1cea1b4c2fe4c903078d9f2f046 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | GStreamer: support video orientationAlexander Volkov2019-02-012-36/+13
| | | | | | | | | | Change-Id: I233c45824f517c185cb245d8a7d77cab8551fc51 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | Make QPulseAudioOutput::elapsedUSecs prone to OS time changeTomasz Olszak2019-01-292-5/+4
| | | | | | | | | | | | | | | | | | | | | | Pulseaudio implementation of QAudioOutput used QTime as time counter. Hence when output was started and timezone or time has changed the QAudioOutput::elapsedUSecs() returned faulty values. It happened because QTime::elapsed is undefined after system clock update. Using QElapsedTimer instead of QTime seems safer. Change-Id: I1f0c27deea550f249e2ccad0fc716b95a32608ae Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | Enable gstreamer support for Windows and macOSVal Doroshchuk2019-01-281-5/+3
| | | | | | | | | | Change-Id: I29b411a517d24e89eaac944507abbe2c471abb5d Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2019-01-221-2/+2
|\| | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: Icf8b9f73c50b16d6f5765040eb7bd918231df94a