summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Prospective fix for test failures on MinGWv5.14.0-alpha1Simon Hausmann2019-09-236-6/+6
| | | | | | | | | | | | After commit 4d289edb14aeb4976218cc306bfc514e37521b82 in qtbase, MinGW is not building with debug-and-release anymore. So similar to the change in qtbase, the .pro files need adjusting for the placement of the plugins to be scoped to debug-and-release configurations. Task-number: QTBUG-78561 Change-Id: I0a5fc029307ba48c8f40f7553a7f583450337690 Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Liang Qi <liang.qi@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.13' into 5.14"Qt Forward Merge Bot2019-09-217-29/+70
|\
| * Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-09-217-29/+70
|/| | | | | | | Change-Id: I2ba97d82a57172656f6549f368ee51f718f9cdf8
| * MultimediaGstTools: fix string warnings when defining DEBUG_PLAYBINRolf Eike Beer2019-09-191-2/+4
| | | | | | | | | | Change-Id: I0069b96f00830cd441b60bef5847b1543ba2c1af Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
| * QMediaPlayer: use new connect syntaxRolf Eike Beer2019-09-181-11/+11
| | | | | | | | | | | | | | Only the Q_PRIVATE_SLOTs remain. Change-Id: Id3daf8275e8510a99a7089d4a537d06a123b6a27 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
| * Extract QAudioProbe code snippetMariana Meireles2019-09-112-12/+52
| | | | | | | | | | | | | | Adding the code to a snippet file Change-Id: Iee3a24a1d2f28bc8863cf321b0b55c0459708995 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
| * Fix building with namespaced QtChristian Stenger2019-09-113-4/+3
| | | | | | | | | | Change-Id: I690fa71f171b821098d33ce5482c9de467b645d5 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.13' into 5.14"Qt Forward Merge Bot2019-09-12100-309/+337
|\ \
| * | Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-09-12100-309/+337
|/| | | |/ | | | | | | | | | | | | Conflicts: src/gsttools/qgstvideorenderersink.cpp src/gsttools/qgstvideorenderersink_p.h Change-Id: I7fe29161d568fa3f7688abfd2f993d1b16ac3fb9
| * GStreamer: Use member initializationVaL Doroshchuk2019-09-1030-207/+116
| | | | | | | | | | | | Change-Id: I96026828c357677c84e880ea85e6e82b8c0495c7 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| * DirectShow: Allow QMediaPlayer in secondary threadVal Doroshchuk2019-09-094-22/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since using of any COM objects must be only after CoInitialize(), otherwise CoCreateInstance() returns nothing which causes a crash. If QMediaPlayer is moved to another thread, loading of any content will also cause a crash because of COM is not initialized. Proposing to use thread_local ref counter to keep each thread initialized and avoid double initialization. Fixes: QTBUG-77163 Change-Id: I81c67d6407b853c824edd3b42454fddf792fd90c Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| * Include moc files after QT_END_NAMESPACEVal Doroshchuk2019-09-0957-72/+68
| | | | | | | | | | | | Fixes: QTBUG-76574 Change-Id: I69ef47bbd01967c3d7a0c5d1554fcdd29619ebfa Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| * Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Qt Forward Merge Bot2019-09-097-1/+71
| |\
| | * Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-09-087-1/+71
| |/| | | | | | | | | | Change-Id: Idc377c82cc1d2bd53069babc7f14618ef46dc67b
| | * 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>
| * | | Merge "Merge remote-tracking branch 'origin/5.13.1' into 5.13"Qt Forward Merge Bot2019-09-051-0/+46
| |\ \ \
| | * | | Merge remote-tracking branch 'origin/5.13.1' into 5.13Qt Forward Merge Bot2019-09-051-0/+46
| |/| | | | | | | | | | | | | | | | | | Change-Id: Ibccd00bdb62b0cce00882bafa602d1cef8051aeb
| | * | | Add changes file for Qt 5.13.1v5.13.1Antti Kokko2019-08-091-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I57e7aa684f589159f7957d68122c0ae983b2a70c Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| * | | | Fix crash when VideoOutput.sourceRect is requested but playback is stoppedVaL Doroshchuk2019-09-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the playback is stopped, QAbstractVideoSurface::stop is called where current surface format is reset. And when sourceRect is requested before QAbstractVideoSurface::surfaceFormatChanged() is handled, it produces an ASSERT. Suggesting to use cached surfaceFormat instead of removing the ASSERT. To reproduce: MediaPlayer { onStatusChanged: console.log(output.sourceRect) } Change-Id: I73ad72f1e4968fe45266827ec5c7e3b36333ee30 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| * | | | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Qt Forward Merge Bot2019-08-281-3/+4
| |\ \ \ \
| | * | | | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-08-281-3/+4
| |/| | | | | | | |/ / | | |/| | | | | | | Change-Id: I896f59dcbad36c6cebf328a2799b9fe94e72f3d2
| | * | | CameraBinV4LImageProcessing: Show additional info in case of errorsVaL Doroshchuk2019-08-201-3/+4
| | | |/ | | |/| | | | | | | | | | | | | Change-Id: I1ed22d646c2ff230217e1ecefaf37a0a45fa4b54 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | | Deprecate QMediaServiceProviderPluginVal Doroshchuk2019-09-092-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reverts c018d5affdfca9c94a9797894c4092db53b7b101 [ChangeLog] QMediaServiceProviderHint, QMediaServiceProvider, QMediaServiceProviderPlugin, QMediaServiceSupportedFormatsInterface, QMediaServiceSupportedDevicesInterface,QMediaServiceDefaultDeviceInterface, QMediaServiceCameraInfoInterface, QMediaServiceFeaturesInterface classes are now deprecated. Task-number: QTBUG-75943 Change-Id: I3e19166e3c7405beee1d93546d8982981e14cedb Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io> Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | | | Merge "Merge dev into 5.14 (delayed final downmerge)"Kari Oikarinen2019-09-0411-43/+33
|\ \ \ \
| * | | | Merge dev into 5.14 (delayed final downmerge)Kari Oikarinen2019-09-0411-43/+33
|/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This replicates the effects of the fast-forward merge that should have been pushed on 2019-08-27 as the final down-merge from dev to 5.14. Task-number: QTBUG-78019 Change-Id: I999b90d6b89b967c7cc94b7d0259b0ecda5de7ae
| * | | | Merge "Merge remote-tracking branch 'origin/5.13' into dev"Qt Forward Merge Bot2019-08-246-1/+116
| |\ \ \ \
| | * | | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-08-246-1/+116
| |/| | | | | | |/ / / | | | | | | | | | | Change-Id: Ib6eaf2363bfd7d9db7bce7543cb9a8dd86e850ae
| * | | | Make QMediaObjectPrivate as QObjectPrivateVaL Doroshchuk2019-08-237-31/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since QMediaObject is QObject, and it uses d_ptr, it is sane to move QMediaObjectPrivate to QObjectPrivate and use standard way of using private impl. NOTE : If some users inherit from QMediaObjectPrivate in their code, they probably initialize and delete d_ptr manually which would cause a crash now. But using QMediaObjectPrivate without QMediaObject should be considered as incorrect usage. Task-number: QTBUG-77630 Change-Id: I147e3b3dc67a8c2765b28f752db196b4d7fca224 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| * | | | Make QMediaServicePrivate as QObjectPrivateVaL Doroshchuk2019-08-233-12/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently QMediaService contains d_ptr, which is not QObjectPrivate, but QMediaService is QObject. Task-number: QTBUG-77630 Change-Id: I1db0fd188bcc1a196e6f981b4410a6a1f57e88d5 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| * | | | Deprecate QMediaServiceProviderPluginVaL Doroshchuk2019-08-231-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-75943 Change-Id: Iee26ebb4992beb6c8cface372eb485321f391ab6 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | | | | Merge "Merge remote-tracking branch 'origin/5.13' into 5.14"Qt Forward Merge Bot2019-08-286-1/+116
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-08-286-1/+116
|/| | | | | |/ / / | | | | | | | | Change-Id: Ic16cafaf6df356e430db4d60ad95610c855e1042
| * | | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Qt Forward Merge Bot2019-08-206-1/+116
| |\ \ \
| | * | | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-08-206-1/+116
| |/| | | | | |/ / | | | | | | | | Change-Id: Ic46475146abe7b8493ae343e8332736fa6dcc3af
| | * | 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>
* | | | Merge "Merge remote-tracking branch 'origin/5.13' into dev"Qt Forward Merge Bot2019-08-177-10/+59
|\ \ \ \
| * | | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-08-177-10/+59
|/| | | | | |/ / / | | | | | | | | Change-Id: I09f511d894db5e9987ac2b9e42266bb87ef0161d
| * | | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Qt Forward Merge Bot2019-08-137-10/+59
| |\ \ \ | | |_|/ | |/| |
| | * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-08-137-10/+59
| |/| | | | |/ | | | | | | Change-Id: I428528333e89214d96acef5c2ba8ea832b2b145f
| | * 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>