summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add changes file for Qt 5.12.10v5.12.10Antti Kokko2020-10-261-0/+28
| | | | | | Pick-to: dev 5.15 5.12 Change-Id: Ic670af0c1e8ef7962bddda0f0a3b7f547ae25e69 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* Bump versionJani Heikkinen2020-10-141-1/+1
| | | | Change-Id: Ibd51c84967f81fb4aef70173300bbf96c842e9c5
* CameraBin: unset GValues after finish using themRatchanan Srirattanamet2020-09-111-0/+3
| | | | | | | | | | | GValue can contain allocated memory. Not unsetting it can cause memory leak. This patch adds g_value_unset() calls to various places that miss ones. Change-Id: I78e0f8f6c558ada0e7828c11094132359c579c2a Reviewed-by: Val Doroshchuk <valentyn.doroshchuk@qt.io> (cherry picked from commit 24ac478e50dab189b53c749b34971a807aa6da4d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Merge remote-tracking branch 'origin/5.12.9' into 5.12Qt Forward Merge Bot2020-06-171-0/+31
|\ | | | | | | Change-Id: I486735873cc2be7e21b2e58a0d014726b8b43873
| * Add changes file for Qt 5.12.9v5.12.9Antti Kokko2020-06-041-0/+31
|/ | | | | | | | | | | + 67cab3e01d4d26f95af2e202ad3fd16722b1c6c7 tst_QMediaObject: Remove checking of expected elapsed time + c22f263c5d7bd602197215978d59e53d67a7dd6d Skip all tst_QMediaPlayerBackend tests when there is no codec available + 61a6a09429cf8c34a356748a3bb76fc7868a54b1 ALSA: Calculate buffer size based on min period time + 0f2e2dba7e728596db2c7207032f04a9e1a82333 Bump version + 76f5027181f690d6d0311f3d9f10061da7166ac9 Vivante: Keep only one frame Change-Id: I5aa94f8d4cebdb3192d993d904a483064f713c69 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Vivante: Keep only one frameVaL Doroshchuk2020-05-152-8/+4
| | | | | | | | | | | | | The imx6 vivante implementation of videonode used by qtvideosink holds reference to two frames during rendering. It releases the first frame only when it receives the third frame. This makes jerky playback when frames are not coming at constant rate. It displays the previous frame during video playback. Change-Id: If306bdcd358fac46a1fd0000ccb068424aee813a Reviewed-by: Karim Pinter <karim.pinter@qt.io> Reviewed-by: Andy Shaw <andy.shaw@qt.io> (cherry picked from commit f48e16dc45cde8f634823c40aa573b18673cf13d)
* Bump versionAlexandru Croitor2020-04-221-1/+1
| | | | Change-Id: Idf57d46aed6b5a0a5a9f9a36adf5498ee710554d
* Merge remote-tracking branch 'origin/5.12.8' into 5.12Qt Forward Merge Bot2020-04-201-0/+29
|\ | | | | | | Change-Id: I58208af8152fccfc292ea6b4c4796a46fdb25502
| * Add changes file for Qt 5.12.8v5.12.8Antti Kokko2020-03-221-0/+29
| | | | | | | | | | | | | | | | + 1e50366ea7cd8909f049f161a41afbd152a94579 AVF: Always lock the capture device when start the camera + 62d70affd1f0d70dad2507feaa9caa3ab0cef877 Bump version Change-Id: I426aea6e0b19a6f8ad204d846a5e76ba39f4a539 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | ALSA: Calculate buffer size based on min period timeVaL Doroshchuk2020-03-251-19/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When defualt buffer size (100000us) and period time (20000us) are out of range, currently buffer size is computed with respect of either 2 or 4 chunks of maximum buffer time. Which is not enough. Fixing computing of buffer time based on minimum period time: How many minimum periods could fit in maximum suggested buffer time. Fixes: QTBUG-43256 Task-number: QTBUG-79526 Change-Id: I722e5145e3b6d323e306da420ec764db3575225f Reviewed-by: Christian Strømme <christian.stromme@qt.io> (cherry picked from commit 8b92454d6fffcee7a8cf1fb5e0c92920c77733c8) Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | Skip all tst_QMediaPlayerBackend tests when there is no codec availableVaL Doroshchuk2020-03-242-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously tst_QMediaPlayerBackend::isWavSupported() always returned true unless boot2q env, which is not correct. Since if there is no codec installed in CI (but it is not boot2qt), also need to skip the tests. Change-Id: Ib58864bb3648a3d8f6c99354034f4ad85d5e4f98 Fixes: QTBUG-82673 Reviewed-by: Asmo Saarela <asmo.saarela@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Andy Shaw <andy.shaw@qt.io> (cherry picked from commit 060e2e7846441a65bfdab5cf0afea008b1bbb13f) Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | tst_QMediaObject: Remove checking of expected elapsed timeVaL Doroshchuk2020-03-241-4/+0
|/ | | | | | | | | | It is often failed on CI when no enough resources. Task-number: QTBUG-82582 Change-Id: Ibcddab73e6dfd24c3ab064ed8ea89843ebdc92ea Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit d5d42a24b5b9d2079d584defac70aef1a1feadef) Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Merge remote-tracking branch 'origin/5.12.7' into 5.12Qt Forward Merge Bot2020-01-311-0/+28
|\ | | | | | | Change-Id: If08a53f5b981cfc47a4755603f7088e14e6eab37
| * Add changes file for Qt 5.12.7v5.12.7Antti Kokko2020-01-181-0/+28
| | | | | | | | | | | | | | | | | | + 49ce2d783b1bb74c119794420f1e96e2fe0531c0 Bump version + d381fb9823dac7e1e19b2b2af6b57ddf1306346a Qt Multimedia - fix build for iOS + 0144393242078421217f1967e64f00e3e32b898a AVF: Don't apply settings if the camera is not active yet Change-Id: I433c8723272e5e3f53ae4fbdbacd5707e0153ac3 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | Bump versionAlexandru Croitor2020-01-281-1/+1
| |
* | AVF: Always lock the capture device when start the cameraVal Doroshchuk2020-01-282-1/+3
|/ | | | | | | | | | | | If the viewfinder settings are valid, need to lock the capture device to avoid reseting settings to default values. See also a8123e737140719549252806e0e6a1c121359f79 Fixes: QTBUG-81048 Change-Id: I834815ef6c5ef28d8017d04bdb9d5256c02d1de7 Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit 265bfb22e7f0f5333e584f6dd91926b8516e394e)
* AVF: Don't apply settings if the camera is not active yetVal Doroshchuk2020-01-141-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | In macOS, a capture session can still automatically configure the capture format after you make changes. If frame rates are applied to the capture device and the camera is still not active, these rates will be overridden by old values when the capture session will be started. For this purpose lockForConfiguration is currently used within startRunning method of capture session. But in case if the settings are already applied to the capture device, we don't call lockForConfiguration within starting of the capture session (since it is needed to be called only when the settings have been changed). Suggesting to postpone setting of the format (to the capture device) until the camera is started. This will lead to apply settings before startRunning method with proper configuration lock. Fixes: QTBUG-81048 Change-Id: I04664e7b63474ce28571e888e524170b995a38d6 Reviewed-by: Andy Shaw <andy.shaw@qt.io> (cherry picked from commit a8123e737140719549252806e0e6a1c121359f79) Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Merge remote-tracking branch 'origin/5.12.6' into 5.12Qt Forward Merge Bot2020-01-071-0/+29
|\ | | | | | | Change-Id: Ifa15362ba556e8af191db386fb0dd843f1ddf868
| * Add changes file for Qt 5.12.6v5.12.6Antti Kokko2019-11-051-0/+29
| | | | | | | | | | | | | | | | | | | | + 012affe3194a48d8bb10d0a100f1d1bbb24ecf7e DirectShow: Fix crash when there is no surface on flush() + 94852a47c130c3dc265d900390bf0d7b53cbab3e DirectShow: Add startTime and endTime to QVideoFrame + 9e96fe2cbf79a44039de0edcc854050d84b87588 DirectShow: Round stop position down to available bytes in IAsyncReader + e04b67b45672d529adaa785876ecbbbcef445d0f Bump version Change-Id: I16b55a36c22492d49388b52f53e3342a090d05c1 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | Qt Multimedia - fix build for iOSTimur Pocheptsov2019-11-111-4/+4
| | | | | | | | | | | | | | | | | | | | | | Since RestrictedBool conversion operator was introduced, objective-C method calls require explicit .data() on our smart pointers. Fixes: QTBUG-78685 Change-Id: Ie32ebf0442cd56a01466aa58b89651d7c293de6d Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io> (cherry picked from commit b64bdf32ce10b039e8d7b1be18d001e89f315615) Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | Bump versionFrederik Gladhorn2019-11-071-1/+1
|/
* Bump versionFrederik Gladhorn2019-10-301-1/+1
|
* DirectShow: Round stop position down to available bytes in IAsyncReaderVal Doroshchuk2019-09-121-1/+1
| | | | | | | | | | | | | | | | Currently requested IMediaSample might contain the end time that exceeds the available bytes which causes returning an error in WaitForNext() and stopping the playback. Regarding to IAsyncReader::Request documentation: The start and stop positions should match the alignment that was decided when the pins connected. The stop position might exceed the real duration. If so, the method rounds the stop position down to the actual alignment. Fixes: QTBUG-77782 Change-Id: I644e25bfc6bb8f6d345b8424b79fb56490d82c0e Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.12.5' into 5.12"Qt Forward Merge Bot2019-09-071-0/+35
|\
| * Merge remote-tracking branch 'origin/5.12.5' into 5.12Qt Forward Merge Bot2019-09-071-0/+35
|/| | | | | | | Change-Id: I6137c73fe14e171aaa184e25ebc3a8374e4d91e2
| * Merge 5.12 into 5.12.5v5.12.5Paul Wicking2019-08-231-3/+4
| |\ | | | | | | | | | Change-Id: If27d8e3bb898607c5bf07dbfc97476859ae24646
| * | Add changes file for Qt 5.12.5Antti Kokko2019-08-221-0/+35
| | | | | | | | | | | | | | | Change-Id: I282469f6c634283cec565b692b29b16cf0fdbea4 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | | DirectShow: Add startTime and endTime to QVideoFrameVal Doroshchuk2019-08-296-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the application seeks to a new position, the Media Session restarts the presentation clock at the specified seek time. The media source might deliver samples with a slightly earlier time stamp if the seek time does not fall on a key-frame boundary. And IMFSample->GetSampleTime will return time that is related to a position when the clock has been restarted, and can be also negative. So if it needs to have times from the beginning, it would require to add seeked position to times from IMFSample. It also reverts c4de056a6aa44567cdbf2ce91a464e597ad4af8f Fixes: QTBUG-77849 Change-Id: I1a7cb7bd18aee73087a61d2ed2c3d644ad0fbd50 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | | DirectShow: Fix crash when there is no surface on flush()Val Doroshchuk2019-08-291-1/+1
| |/ |/| | | | | | | | | | | | | | | | | When QDeclarativeRendererBackend is being destroyed, it clears the surface and postpones releasing IMediaControl, which is done on worker thread. It also calls flush() where null surface is used. Fixes: QTBUG-77829 Change-Id: I327583c1f8fb7585dbec3c3fb7e80d0155cc4819 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | CameraBinV4LImageProcessing: Show additional info in case of errorsVaL Doroshchuk2019-08-201-3/+4
|/ | | | | Change-Id: I1ed22d646c2ff230217e1ecefaf37a0a45fa4b54 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* GStreamer: Add docs for custom pipelinesVaL Doroshchuk2019-08-146-1/+116
| | | | | | | | | The feature was added in 5.12.2. And it is relevant only for GStreamer backend. Change-Id: I87e22e506158dc61bb7f111e74806e7eb8c28d7a Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* AVFCameraUtility: fix UB (std::sort with unfit predicate)Marc Mutz2019-08-101-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | ResolutionPredicate defines an order on the resolutions (expressed as QSize) of AVCaptureDeviceFormats, from smallest (width as primary, height as secondary sort key) to largest, as the lexicographical less-than of width and height. A a lexicographical order over Strict Weak Orders is a Strict Weak Order of the product type. So far, so good. The logical negation of a Stict Weak Order is, however, not a Strict Weak Order (not-less-than is greater-or-equal, not greater-than), so it cannot be used as the predicate in std::sort. Rewrite the ResolutionPredicate as an adapter that can be used with std::less _or_ std::greater (or even std::equal_to), piggy-backing on std::tuple to implement the lexicographical sort for us, then replace not2(ResolutionPredicate) with ResolutionPredicate<std::greater>. Rename the predicate to something more apt. This also solves the use of deprecated (and in C++20, removed) std::not2. Change-Id: I6f81b149e53a5b4299b188bf3ce996f638bf3334 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* CameraBinV4LImageProcessing: Show warning only if the camera is loadedVaL Doroshchuk2019-08-091-2/+4
| | | | | | Change-Id: Ie1c77fa373d37979e69c08ab4a959c18efc9599e Fixes: QTBUG-76135 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* GStreamer: Don't seek to the beginning when playing is requestedVaL Doroshchuk2019-08-081-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | We promised to not provide any video frames before pause() or play() is called. Regardless the media is loaded or not. It should work like following: setMedia(new) // ... // no video frames returned yet pause() // prerolled frame should be shown To implement this, i.e. showing the prerolled frame after pause, we do seeking to the beginning. But it is totally not necessarily when play() is requested, since here is new media and playback will start from the beginning anyway. This also produces a hang/stuck on some embedded systems with custom pipelines or playing from qrc. So decided to show prerolled frame and this means to seek to the beginning only when pause() is called. Task-number: QTBUG-65399 Change-Id: I9b3dc632fa0df4a1115d852c2d480fd5c7fd9ee5 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Fix undefined reference to QVideoSurfacePainter::~QVideoSurfacePainterVaL Doroshchuk2019-08-081-1/+1
| | | | | | | Change-Id: I8b6b0f9b278ebb4b3eff0caaedab62cebfe9a695 Fixes: QTBUG-77097 Reviewed-by: Rolf Eike Beer <eb@emlix.com> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* GStreamer: Don't share video surfaces between several pipelinesVaL Doroshchuk2019-08-081-1/+23
| | | | | | | | | | | | qtvideosink element is available in pipelines only if QVideoRendererControl is used, because it requires a video surface. So if qtvideosink is used inside pipeline but a surface is not available, created null/dummy surface to render video frames to and show a warning about this. Change-Id: I924d3baca994363550b7920176e29e9cd0c4dd1f Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* AVFoundation: Re-create CARenderer if current OpenGL context changedAndrew Smolko2019-08-071-0/+7
| | | | | | | | CARenderer was not re-created so black frames were rendered in video if current OpenGL context changed. Task-number: QTBUG-77270 Change-Id: I8df423aaa9239c938363141cca1ae4136cde839b Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* GStreamer: Allow audio/x-raw codec in QAudioRecorderVaL Doroshchuk2019-08-071-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently QAudioRecorder is implemented to find a codec and muxer that match some caps. E.g. if we would want "audio/x-wav" container with PCM format, there is only one gst element which supports it: wavenc element accepts "audio/x-raw", "audio/x-alaw" or "audio/x-mulaw" and provides buffers in "audio/x-wav" or "audio/x-rf64". Next, we would need to find a codec which provides buffers in "audio/x-raw", "audio/x-alaw" or "audio/x-mulaw". It might be mulawenc and alawenc. And finally we combine them together to pipeline: audio/x-raw -> mulawenc|alawenc -> wavenc -> audio/x-wav And as a result there will be wav file and encoded in "audio/x-alaw" or "audio/x-mulaw" and not in desired PCM format. So suggesting to add audioconvert element to the audio encoders to allow to link with various containers: audio/x-raw -> audioconvert -> wavenc -> audio/x-wav Change-Id: Icd77124267f5a0999625fa1fe4e3de3740218741 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* AVFoundation: Fix memory leak when gl context is changedVaL Doroshchuk2019-08-021-0/+2
| | | | | | | I might happen when shareContext remains the same but current context has been changed few times. Change-Id: I55a7a9eab03776e3d1ca6d32117de6714692bbf0 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* VideoOutput: Update geometry only when the surface is activeVal Doroshchuk2019-07-181-2/+7
| | | | | | | | | | | | | | Since starting the surface could be done after updating the geometry of VideoOutput element (paint event is received), and this leads setting invalid geometry to renderer and never updates by correct one. Because the geometry is not "dirty" anymore, means already set. Need just to update geometry when (or keep trying before) the surface is already started with proper video surface format. Change-Id: I338d7fe355c20f2027c6231241714376e9b569b2 Fixes: QTBUG-76205 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* DirectShow: Set QMediaPlayer::NoMedia if empty url is providedVal Doroshchuk2019-07-172-8/+3
| | | | | | | | | | | | | | | | In case of clearing current playlist by passing nullptr to QMediaPlayer::setPlaylist, empty url is passed to a backend: QMediaContent m(playlist, QUrl(), false); setMedia(m); The status should be updated by QMediaPlayer::NoMedia if empty url is passed. Fixes tst_QMediaPlayerBackend::playlistObject() Task-number: QTBUG-65574 Change-Id: Iea03e3fcb8d74c9b1b482aa06b42686cf8c9e9a7 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* GStreamer: Implement fetching audio/video codecs by containerVaL Doroshchuk2019-07-178-64/+51
| | | | | | | | | | | | | | | Moved stream types to QGstCodecsInfo and added possibility to fetch audio or video codecs by a container. Or fetch containers by audio or video codec. It would allow to debug supported codecs and containers: QGstCodecsInfo containers(QGstCodecsInfo::Muxer); QGstCodecsInfo audioCodecs(QGstCodecsInfo::AudioEncoder); for (auto &container: containers.supportedCodecs()) qDebug() << audioCodecs.supportedCodecs(containers.supportedStreamTypes(container)); Change-Id: I26bf5579db6974a166d408c4865a9ffe314e3e15 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* use correct types when creating an empty Windows eventRolf Eike Beer2019-07-162-3/+3
| | | | | Change-Id: I9f811b4d0aadb04d3552dcd1f26a1565dfc230e2 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* DirectShow plugin: use new style connect syntaxRolf Eike Beer2019-07-164-15/+15
| | | | | Change-Id: I5c2dadfe1154961adcecf779126166aea4d32393 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* DirectShow plugin: use nullptr instead of NULLRolf Eike Beer2019-07-1614-71/+71
| | | | | Change-Id: Ied89175c4b7f5df090deac174b1da1e8496ee533 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* Camera: Update the doc about supported viewfinder settingsVaL Doroshchuk2019-07-161-1/+1
| | | | | Change-Id: I9d74355fb800234d4fbd12235b89965921027223 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Fix GCC 9 -Wdeprecated-copy warningsMarc Mutz2019-07-111-0/+1
| | | | | Change-Id: Ia50ce0d2c94b3b064e9cd571e598ecd37ee2b5e3 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* Fix GetFrameRateList checks and memory leakNate Weibley2019-07-051-2/+4
| | | | | | | | | | GetFrameRateList passes an unmanaged pointer to the caller which must be manually freed with CoTaskMemFree. Additionally the Chromium project notes that some drivers cause quirky return values which we would not catch without stricter checks. See: https://chromium.googlesource.com/chromium/src/media/+/8cc93abd7339eeb9b7c2a12cca07b3dc245b2139/video/capture/win/video_capture_device_win.cc#484 Change-Id: I6aa4a6ea1ac0241e585e98cf9ff63240bacd3956 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* GStreamer: Fix 0.10 compile errorVal Doroshchuk2019-07-051-1/+3
| | | | | | Fixes: QTBUG-76816 Change-Id: I2909c2f2df91ac26b5104e24892310aa62cad172 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* Fix crash when app is destroyed before QSample::load is finishedVaL Doroshchuk2019-07-051-4/+8
| | | | | | | | | | | | | | | | | | | | | | | QSample objects live and handled in loading thread (which uses QNetworkAccessManager). When the app is finished and going to be destroyed, all static objects are destroying as well. In case if static QNetworkConfigurationManagerPrivate (which is used by QNetworkAccessManager) is destroyed before static QSampleCache, and loading of the resource is not finished yet (still executing QNetworkAccessManager::get()), this produces a crash. Since the loading thread is started only when loading of new QSample is requested, (and all events are also handled by this thread) proposing a fix to wait before loading thread is finished when a sample is requested to be released. This postpones deleting of the QSample either when new sample is requested to load or when QSampleCache is destroyed. This makes sure that no loading thread exists when all QSoundEffects objects and afterwards QNetworkConfigurationManagerPrivate are already deleted. Change-Id: I55669ea4c2796a48cae4f0465f7f74d89e393675 Fixes: QTBUG-76090 Reviewed-by: Christian Strømme <christian.stromme@qt.io>