summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * 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>
| | * 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>
* | | Deprecate Qt Audio Engine QML typesVaL Doroshchuk2019-08-138-0/+9
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-75943 Change-Id: I5fe32da3809c35e47b1244481dc1786e3a4a0a07 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* | | Remove usages of deprecated APIsSona Kurazyan2019-08-0817-54/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Replace the usages of deprecated APIs by corresponding alternatives. - Made the tests for deprecated APIs to compile conditionally, based on the deprecation version. Task-number: QTBUG-76491 Task-number: QTBUG-76540 Task-number: QTBUG-76541 Change-Id: Ifd397dae9b3ebc2ba2504db7baa2d8ff21bfb3a7 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | | Merge "Merge remote-tracking branch 'origin/5.13' into dev"Qt Forward Merge Bot2019-08-061-0/+2
|\ \ \
| * | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-08-061-0/+2
|/| | | | |/ / | | | | | | Change-Id: Ibe09461a3c1541836cc3a766276114d4ac2a74d9
| * | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Qt Forward Merge Bot2019-08-031-0/+2
| |\ \