summaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Fix Android sending a single video frameSamuel Mira2022-01-181-6/+0
| | | | | | | | | | | Android was not sending video frames automatically, and it had to readback frame for the next frame to be available. This patch forces the emit of the frameAvailable. Fixes: QTBUG-99650 Change-Id: I7559c65b734724d4e21bbb9b2e7f3a3ae8de97d2 Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 372349a1b4f01e4ad5470ed2403fb20d4a0b0214)
* Fix SurfaceText test in AndroidSamuel Mira2022-01-071-0/+6
| | | | | | | | | | | | | Looking at logcat, it was possible to understand that the frames were parsed, but they were not updated. Looks like that in android it is necessary to call the frame map for the AndroidTextureVideoBuffer to updateReadbackFrame. Updated the example to force that. Fixes: QTBUG-99358 Change-Id: Id8a0e622158f836813b7ed266ad3580aff68171f Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 203cb0f9523739c2c3583abd69e55fa49c41588e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add QEXPECT_FAIL to android tests regarding isSeekableSamuel Mira2021-12-131-0/+9
| | | | | | | | | | | isSeekable in Android always returns true. This behavior may change in QTBUG-96952, but from now on expect failure in these tests. Fixes: QTBUG-99129 Change-Id: I422298e57c7942bfcccb91c5e9998446c89a12e7 Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit bd72f5f2e1e3b8ebb0de331b591bb2299362f600) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix tst_qmediarecorder autotestSamuel Mira2021-12-102-0/+14
| | | | | | | | | | | The auto test depended on a member variable that was changed but not reset before the test. Added a reset function and a call to reset. Fixes: QTBUG-99092 Change-Id: I7d1505654474c392d84f7189da8ec2da2b88682a Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit f9d8ed9e5d8172d0197eaf06ff0361332a8697f5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Enable QAudioDecoder backend tests for WindowsPiotr Srebrny2021-11-022-9/+6
| | | | | | | | | | | | | | | | The patch enables the QAudioDecoder backend tests for Windows with minor adjustments. The expected duration time of the resampled file has been reduced as the Windows resampler produces slightly shorter audio after resampling. Additionally, the expected error code when reading invalid file is changed to ResourceError, which is better suited for this case than AccessDeniedError that relates to lack of permission. Change-Id: Iaf905a66c6e03d6ba6d5c9afd4fc8e88b9cb7840 Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io> (cherry picked from commit fad168fcbc13bb3ab4c110cf3734f3e5cd83e3b4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add test for multiple sourceSamuel Mira2021-11-016-14/+104
| | | | | | | | | | | | | | Two tests added to verify for QTBUG-96456 issue. One on unit and other on integration (tests against emu). Also fixed tst_QMediaPlayerBackend to work on android. Before it did not worked, because the test files were not copied to apk file. Change-Id: Ie6c3c1ca16092ab377ca96e122a24131dfdc2335 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit 83502faf856ecf2cde0d79cfac80a03088732d2d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add autotest for recording with mute audioSamuel Mira2021-10-211-1/+75
| | | | | | | | | | Added a new test for testing if a audioInput mutes while it is recording Tested by checking signals and confirming that a file is created. Change-Id: I4f73ee72bfc541e10b2198118eceea1dad8a2404 Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 7a7886307ca2d72c9767aa0f396e49b4e749a06e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Windows: fix and enable media player backend auto-testsAndré de la Rocha2021-10-155-50/+33
| | | | | | | | Task-number: QTBUG-96677 Change-Id: Ib9063eba2541f719d8b66cac5ead56624d620b06 Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 4ecf5c36a29c416321fbc040471085494dd17987) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add test for change application state while recordingSamuel Mira2021-10-131-0/+31
| | | | | | | | | | | | This test tests if the a media recording can finish successfully when the application state changes to a inative state while recording. This can happen in mobile devices when you are recording and user changes the app or if the user gets a popup from the OS like a permission popup. Change-Id: I4a4dbca3e47b4aa345be4ea3fa257eac523bb8a1 Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit edf911e3c162f161ce553d67cfd7f7950f9b435c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix QCameraBackend::testNativeMetadata() on gstreamerLars Knoll2021-10-121-2/+5
| | | | | | | | | | | | Let it record a bit, otherwise we don't get anything. Don't check QMediaMetaData::Date, as some encoders set that on their own. Instead use Language and fix issues in correctly writing the language. Change-Id: Ib5e2bacc053814afc2fafdae65330950e591d6fc Reviewed-by: Piotr Srebrny <piotr.srebrny@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 839cb46628b197d0a851c78d518186881e047272) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix qcamerabackend autotest for gstreamerLars Knoll2021-10-111-4/+7
| | | | | | | | | | | | Mainly fixes in the auto test to ensure it works correctly. Add one log message to the image capture backend in case we fail to save to a file. Change-Id: Ie631ebfdd45d16a16a5b7e22d8bbe00db78afd6f Reviewed-by: Piotr Srebrny <piotr.srebrny@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit bce240a6c2415ecde8a6936592e7be6f26874ef3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix QCameraBackend::testCtorWithCameraDevice() testLars Knoll2021-10-061-8/+24
| | | | | | | | | | The default constructor of QCamera should pick the default camera. Change-Id: I847a2cc65470bf337da6f070d9abbaa3c478f055 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit c4ed9080cb44b4cb61f7e26a48c9ad70c0227983) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix tst_qmediacapturesession on macOSLars Knoll2021-10-061-9/+41
| | | | | | | | | | | | | | Fix the remaining test failures on macOS: Increase timeouts in tests, as those often caused failures. Fix a couple of behaviors in the platform specific code, to ensure we handle errors correctly. Change-Id: Ib1a0949f5e65a0fb3d0b89a5508631d1faa7cf1e Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 93e90f07f207b75332f8b64a37c80f1fa5f87db0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* GStreamer: remove an element from a pipeline before setState(NULL)Piotr Srebrny2021-10-042-0/+29
| | | | | | | | | | | | If an element is a part of a pipeline bin, the bin tries to synchronize its state with its own. Thus, after setting the element state to NULL, the state can be set back to READY, PAUSE, or PLAYING before it is removed from the pipeline. This patch first removes an element from the pipeline and then sets its state to NULL to avoid this race. Change-Id: Ied9cd037fabab19682a53c5ab3d0c7335c58d9c9 Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 078701abf256fb91cd9824cc8e6d48556200c1ef)
* Android: mark test case for isSeekable() as QEXPECT_FAILAssam Boudjelthia2021-09-301-0/+3
| | | | | | | | | | | Note a bug ticket for the fail and continue. Task-number: QTBUG-96952 Change-Id: Id5951deb8e9360b53619813e15b0edf9ab8fe1b7 Reviewed-by: Samuel Mira <samuel.mira@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 60e1b833fcbfe330b229b2f603436d589497b12c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix exposureCompensationChanged signal signature in tst_QCameraAssam Boudjelthia2021-09-301-1/+1
| | | | | | | | | Task-number: QTBUG-95883 Change-Id: Id471f485bf9a0ba2ce6ae41b5a034df72ed92900 Reviewed-by: Samuel Mira <samuel.mira@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 97524fd6e06af607d5c3081716295a7cf0467e63) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Support handover of QCamera and QImageCapture between sessionPiotr Srebrny2021-09-291-0/+69
| | | | | | | | | | | | Additionally, the patch fixes the can_add_and_remove_different_Cameras and can_record_Camera_with_null_CameraDevice tests that did not have activated QCamera. Change-Id: I3c5702e09face5d3ba4f7acd0e208e2c7d65c15f Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit d2d645a68f7cbc36cd2d2dff3c37a1f5364d7f4d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Handover recorder between sessionPiotr Srebrny2021-09-291-0/+33
| | | | | | | | | | | | This patch enable a proper handover of QMediaRecorder between session. When the recorder is set to one session it will automatically disconnect from the owning session. Change-Id: I7bc210134dee98126fea9da8d68c55cfa72a57f8 Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit e9e79019fd015d0b4753b21cb851f7d215e0ee20) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Disconnect QAudioOutput from capture session and player in destructorPiotr Srebrny2021-09-291-0/+71
| | | | | | | | | | | | | | The expected behavior of elements connected to the capture session and the player is to disconnect automatically when deleted. This patch adds this behavior to the QAudioOutput object. Additionally, this patch enables automatic handover of QAudioOutput between two capture sessions or a capture session and a player. Change-Id: I75e5135c54bd11b33876db317cf306d9255f38ce Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit b4879defbca4594854e5a8e730e1061e217a7b44) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* GStreamer: emit not ready for capture when no session or cameraPiotr Srebrny2021-09-291-4/+7
| | | | | | | | | | | | | We should emit signal when disconnecting session from the image capture, or when disconnecting camera from the session. GStreamer implementation send capture not available when taking a picture. This patch makes test more permissible to account for that. Change-Id: If4fa780710811491678ad50fa11f3a9ee52ae530 Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 2dbc1b829260abc5fa99671d145bf5ba3489180c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Disconnect QAudioInput from QCaptureMediaSession in destructorPiotr Srebrny2021-09-291-0/+40
| | | | | | | | | | | | | | The expected behavior of elements connected to the capture session is to disconnect automatically when deleted. This patch adds this behavior to the QAudioInput object. Additionally, this patch enables automatic handover of QAudioInput between two capture session. Change-Id: If9e3b4ad1bf4c8abf117dc67367716ebc759c1c1 Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 1d1c4dbf2aa81ff9fc9e386283791ca39deb227f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Suppress unused function warning by conditioning a #includeEdward Welbourne2021-09-281-1/+3
| | | | | | | | | | Put it inside #if-ery matching the one use of the function it provides. Change-Id: I1460ce6b347a0b660ce4ea3f780c412c427ef896 Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 8ca9f79f7bccc8e623fcf3df40ee8d7404948ee2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix two signed-vs-unsigned warnings using 0u in place of 0Edward Welbourne2021-09-281-3/+3
| | | | | | | Change-Id: I067757bc054836521f42cb151f186cfe9d11dd72 Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 3dd399fbb4c5da290a95c932315f0525255b9542) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix compiler warning by removing half-deleted codeEdward Welbourne2021-09-281-3/+1
| | | | | | | | | | | | | | | | | In commit fdaa059fcc04252a533477e6af4ff139afba93ca, before moving to tst_qaudiosource.cpp, Lars removed several instances of QByteArray buffer(AUDIO_BUFFER, 0); from the test code, but only deleted the first two words from one of them, leading to a compiler kvetch about the left operand of a comma operator having no effect. Completed the deletion and removed the now-unused define AUDIO_BUFFER. Change-Id: I942759f5f2eb24506f0f7a209e5b4517f40a5a1a Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit a17400405a329c855f534fd2fc42e7fb51e1d251) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Bump almost all cmake_minimum_required calls to 3.16Alexandru Croitor2021-09-221-1/+1
| | | | | | | | | | | | | | Needed for subsequent change that will check and error out if the version is lower than 3.16. We do that to ensure all policies introduced by CMake up to version 3.16 have their behavior set to NEW. Task-number: QTBUG-95018 Change-Id: Id82b92f9bd22bde29b30eea4e0e0b2cc23447d13 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Kai Koehne <kai.koehne@qt.io> (cherry picked from commit 3d56c36595e253275ed5ce2064861c146b80d672) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Rename QPlatformMediaEncoder to QPlatformMediaRecorderPiotr Srebrny2021-09-226-12/+12
| | | | | | | | | | | Following the change done for QMediaRecorder, rename also the platform counterpart and related methods. Change-Id: I44f424615f279162d6c3277e5748b5479d6ddf73 Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit c931241cdac1f908300dd27b82d9bf4ffdbecc41) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix position property of QMediaPlayer on macOS/iOSLars Knoll2021-09-201-0/+25
| | | | | | | | | | | | | | | Seeking to a new position is asynchronous on macOS/iOS, so querying the position after setting it would return a wrong value. Fix this by remembering the requested position until the seek is finished. Fixes: QTBUG-96402 Change-Id: Ib03209fce422273a8274107f3b4d4fa1a06a8ed1 Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit dbae07b55819192aa334ccc160b05519795d798f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Reset audio device to default when setting null devicePiotr Srebrny2021-09-181-4/+3
| | | | | | | | | | | Interpret a null device as an invalid audio device. When setting null device on QAudioInput/Output reset the device to default system audio input/output. Change-Id: I22d75802ecfaa563b1cc55f03d68b5ca979f066a Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 6b22d5f88d6a10835fb5e92f7302903918b1f508) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add tests for QMediaCaptureSessionPiotr Srebrny2021-09-133-6/+547
| | | | | | | Change-Id: I6deb0f61e2c23ae931c9dd1a10efb27e2d8cbeef Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 1c0dc886841338c8128fe1b3f1fac2438944db70) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix a couple of compiler warningsLars Knoll2021-09-081-1/+0
| | | | | | | Change-Id: I537035b03034c237639955710b933decbb250a09 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit c6340c6b6c7e8af5e2a7fd16d196074c4180550e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* API fix: Give QVideoSink a videoFrame propertyLars Knoll2021-09-075-8/+8
| | | | | | | | | | | | | Gives a more consistent API with a videoFrameChanged() signal instead of a newVideoFrame() signal. Add setters and getters for videoFrame and subtitleText. Change-Id: Ib6bb27b76cbf195dcc83eb00bca080ffd64ef538 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Samuel Mira <samuel.mira@qt.io> (cherry picked from commit 5c88c2f110c94b202554063d81ad696ff29bd307) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove some dead code relating to color correction in QVideoWidgetLars Knoll2021-08-282-253/+0
| | | | | | | | | This isn't supported in 6.2, get rid of the dead code. Change-Id: Ie2af81d0b74f16a126c718d09368ee04774809cf Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> (cherry picked from commit 1083861fd1534d28858dca552784c7daa9d3bd54) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Clean up the QVideoSink APILars Knoll2021-08-252-22/+5
| | | | | | | | | | | | | | | | | | The next couple of commits will simplify how we handle HW accelerated rendering by also going through the RHI code path for QVideoWidget. This implies that we can remove quite a few properties from QVideoSink, as those were only required for the old windowed code path. This does for the moment disable all HW acceleration on QVideoWidget. Support for that will be re-added in follow-up changes. Change-Id: I1474f44ed7468eb263fbf4de75f75f9af16b7773 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io> (cherry picked from commit 0c00ef07b03ffe9c5e704a2834a04816f88b8d51) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QAudioDecoder: Re-add API for setting desired audio formatDoris Verria2021-08-253-0/+181
| | | | | | | | | | | | | | | | | | | | | | | | | | | Re-add API for setting/getting desired format for the decoded audio samples. Readd support on all backends with the exception of Android. - Add a warning in the docs for lack of support on Android. - Make the behavior of audioFormat() consistent on all platforms. It will return an invalid format if no format is set. Change Windows implementation to do so. - Fix the documentation for audioFormat(). The format returned is the one set to the decoder, and the decoded buffers may not have this format, in the case when it was set to an invalid one. - Some small fixes on darwin and Windows. Partly reverts af1182b5e29afa0cd69f929d54da224019707214. Fixes: QTBUG-95766 Change-Id: Id1d6b33a6b9d916e272d3b9d9cee78b6f63609f3 Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 185ff0902181f29990c371d0b19b47915b172143) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Small fixes to tst_qcamerabackend/tst_qmediaplayerbackendDoris Verria2021-08-232-2/+5
| | | | | | | Change-Id: Ia5480d4bd51783deaeb3e90646acd4c8af30515c Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 619f975f7529a0c2503377615917b1a858e4f2a2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix the Video QML element and smaller cleanups in VideoOutputLars Knoll2021-08-211-19/+0
| | | | | | | | | | | | | | | | Remove the flush mode from VideoOutput, we should always show an empty frame when playback is stopped. Fix the QML Video element and remove API that we do not support anymore. Adjust some other parts to work correctly after API changes in the MediaPlayer and VideoOutput elements. Fixes: QTBUG-95133 Change-Id: Idf93810665f1b329ef264f59f761188e8056d755 Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit a86d741a95c693324e47bb6ff41c2c8a747c52cd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* tst_qcamerabackend: Fix test case for setting camera formatDoris Verria2021-08-202-11/+14
| | | | | | | | | | | | | | | | | Remove framerate comparison between the camera's format and the video buffer's. The QVideoFrame coming from the newVideoFrame signal, doesn't have a framerate set. Also, we are not checking reliably for a format mismatch with QTRY_ VERIFY as it will timeout before even processing a frame (when formatMismatch is 0 upon initialization). Initialize it to -1 and set the value of formatMismatch to 1 in case of a mismatch, 0 otherwise. Blacklist test case for macOS and iOS as viewfinder frame is always set to be in Format_BGRA8888 for now. Change-Id: Ia299900fe8f66b0a5613635cc112d14d5ca10b2e Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit ad1bf0d2e8a5b908301f0ab2ad214a62667e4eea) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix the qquickvideooutput autotestLars Knoll2021-08-161-3/+1
| | | | | | | | | | An empty QRectF is not (0, 0, -1, -1). Change-Id: I83abe7175937a0a6f26b7a1373af788eaf7bd9aa Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit ad09289b831ad99257daefccb8c4db6d32eeb1c1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix the QVideoFrame autotestLars Knoll2021-08-161-11/+17
| | | | | | | | | | | | Fix autotest failures introduced by the pixel format refactoring. Amends 6e479464a37ddc6abbc46fbd5a3a1065091da480. Change-Id: Ifcf7ebd28625d3b6ea438f14b78157e7d73e5b1c Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 107f063d57be421fb1eee8d8acc2d5a166231ae1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Ensure we correctly set the videoSize property in QVideoSinkLars Knoll2021-08-161-0/+1
| | | | | | | | | | | | | | Move the size handling logic into QPlatformVideoSink and make it platform independent. Always update the video size whenever we get a new video frame, and allow setting the size for windowed playback. Fixes: QTBUG-95154 Change-Id: I401c731a73646b5f4a5938100c9f64189d4bff6c Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: André de la Rocha <andre.rocha@qt.io> (cherry picked from commit 3ab77c90c4b199fdb09184ba8347872b38925657) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add a couple of nullptr checks in the gstreamer media playerLars Knoll2021-08-151-0/+13
| | | | | | | | | | Fixes some crashes when no audio or video output is connected. Change-Id: Ida697f0236c0bea18d73cc8f7416a9b9d8ffe44b Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Piotr Srebrny <piotr.srebrny@qt.io> (cherry picked from commit b8421eff454b6911959f0af9683a8afce5dbb523) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add auto tests for setting camera formatDoris Verria2021-08-104-3/+154
| | | | | Change-Id: I572840a2adfde7b707288a476aeb842fb44733db Reviewed-by: André de la Rocha <andre.rocha@qt.io>
* Larger rework of the RGB pixel formatsLars Knoll2021-08-095-71/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Until now, pixel formats where not declared in an endian independent way. Format_ARGB32 meant that we casted the data to an array of integers and interpreted the highest 8 bits as alpha. This is unfortunate, as this adds endianness into the picture and complicates things. Change this towards endian independent ordering of the A, R, G and B components. New names of those formats are in line with the endian independent formats in QImage, where RGBA8888 indicates that the first byte is R and the last byte A. Add a couple of missing RGB formats, so that we have a symmetrical set and extend our conversion handling and other places to cover those as well. Refactor all our code to use the new formats and adjust our built-in converters to QImage to handle them correctly. Also refactor the SSE/AVX optimized code paths to handle all RGB based pixel formats. Adjust our shaders to work correctly with the new definitions. Finally enable all RGB pixel formats for GL accelerated rendering on gstreamer, as the byte order issues are now solved. Change-Id: I8927dc01d569233e9868e54b890f0f7c34705a2b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Resolve media format and provide encoder settings with record()Piotr Srebrny2021-08-062-21/+3
| | | | | | | | | | | | | | Media format and other settings is implicitly resolved at the platform backend and the API user cannot get information about what codecs bitrates and other settings are selected for recording. With this patch the resolved media is provided to the backend with the record() function and the backend updates the remaining encoding parameters. Change-Id: I4876397ada2c257e59ebe8fccdd7587b2a628232 Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Test adding/removing of audio input/output to QMediaCaptureSessionPiotr Srebrny2021-08-063-0/+153
| | | | | Change-Id: I0202888e436321b1342056d4daac463d1d64a3e3 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Auto test fix after run on Android: compilationBartlomiej Moskal2021-08-022-2/+2
| | | | | | | Fix compilation for error: call to member function 'arg' is ambiguous. Change-Id: I536a6ddcbf188c6ca84227f709546960cffb17e1 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Auto test fix after run on Android: qcamerabackendBartlomiej Moskal2021-08-021-4/+3
| | | | | | | | | | | | | | Commit contains two fixes: 1. QCameraDevice is set to default since commit: e045ee08c84fbc6d1c6837e34c30f88c09cd2cdb. That is why check for not starting up camera (without setting device) need to be removed; 2. After commit 2f018aad29cebe4b4db3f69ff2d5e11f8ba2cad2 there was an assertion in android cameraSession for starting preview (for not set video output). Assertion is removed from code. Before testing for camera start - video output is set; Change-Id: I9931d49c8388c92f7159b302afe5e1f5e629e764 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Auto test fix after run on Android: qvideowidgetBartlomiej Moskal2021-08-021-2/+0
| | | | | | | | | From d90a02dc9b8d69bd8346ff165d3c11e5603bc2be, videoSink is created by default in QVideoWidget constructor. sizeHint is not empty anymore - check removed. Change-Id: I012844fdf2504bba118e9437f11d25a10cb6fe4e Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Auto test fix after run on Android: qgraphicsvideoitemBartlomiej Moskal2021-08-021-1/+1
| | | | | | | | It seems that paint() method is called faster than waitForPaint(). Additional check for that case was added to test Change-Id: I81ab3070258878578e4eb5ae849b878ed7ca91a2 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix media player position handling after seeking on gstreamerLars Knoll2021-07-301-0/+24
| | | | | | | | | | | | | | | | After calling setPosition() while being paused, gst_element_query_position() can return false while the pipeline is still prerolling the new position. So simply return the last position in that case instead of 0. Also moved some methods that are only used on the pipeline from QGstElement to QGstPipeline so that we can cache the position there without having to add data to every element. Fixes: QTBUG-95251 Change-Id: Ice56975fcf7d519f0dd54db75103b97b025cd085 Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>