summaryrefslogtreecommitdiffstats
path: root/src/multimedia
Commit message (Collapse)AuthorAgeFilesLines
* Fix the build with -no-openglLiang Qi2020-01-021-1/+1
| | | | | | Task-number: QTQAINFRA-3407 Change-Id: I6719856c5e9749b7b3108406f6ace91001515379 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* QMediaPlaylistProvider::removeMedia(int,int): fix wrong sequenceRolf Eike Beer2019-11-261-1/+1
| | | | | | | Calling this with (1,2) on a list with 4 items would remove 1 and 3 instead. Change-Id: I8135c982889c9f65daac9ca996adb3049014bf9d Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* Doc: Fix documentation warningsTopi Reinio2019-11-131-0/+11
| | | | | | | | | | | | | | Mark member functions of \internal classes also as \internal, as otherwise QDoc fails to match function documentation with the declaration in the header. Comment out one instance of \instantiates referring to an internal class. Fixes: QTBUG-79834 Change-Id: I056c060537ee60beca128166ae3903ae3289a413 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Merge remote-tracking branch 'origin/5.13' into 5.14v5.14.0-beta3Qt Forward Merge Bot2019-11-051-24/+24
|\ | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I255dc22dc21d3629a41a8c2ae2076c48b594e626
| * QMediaPlayList: use new style connect syntaxRolf Eike Beer2019-10-231-24/+24
| | | | | | | | | | Change-Id: Idf13b2f851b78a9134b0c22ec9333f28f5b265cf Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
| * Fix qConvertFuncs to respect QVideoFrame::Format_ABGR32 in the endVal Doroshchuk2019-10-081-2/+3
| | | | | | | | | | | | | | Additional to bf6ac0 commit, need to fix convert funcs Change-Id: I8eb82234557489e66bc179e1696afc154332b656 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* | GStreamer: Add support of Androidv5.14.0-beta2Val Doroshchuk2019-10-183-2/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since for Android GStreamer is distributed in archives, and should be staticlly linked, so by default it is not built and should be explicitly enabled within configuring by -gstreamer option. (currently it is auto and enabled if gstreamer exists) ("libs" of the gstreamer library in configure.json is empty to prevent any libs to be added while building any code that uses gstreamer library) Some base gst archives are fully included to Qt5MultimediaGstTools. Users would need to just use: QT += multimediagsttools-private Before building, GSTREAMER_ROOT_ANDROID env var should be set to point to gst binaries. Also all necessary plugins must be registered in user's code by GST_PLUGIN_STATIC_DECLARE/GST_PLUGIN_STATIC_REGISTER macros after QGstUtils::initializeGst(). and e.g. project file might contain: INCLUDEPATH += $$(GSTREAMER_ROOT_ANDROID)/armv7/include/ \ $(GSTREAMER_ROOT_ANDROID)/armv7/include/gstreamer-1.0 \ $(GSTREAMER_ROOT_ANDROID)/armv7/include/glib-2.0 \ $(GSTREAMER_ROOT_ANDROID)/armv7/lib/glib-2.0/include LIBS += -L$$(GSTREAMER_ROOT_ANDROID)/armv7/lib/ \ -L$$(GSTREAMER_ROOT_ANDROID)/armv7/lib/gstreamer-1.0 \ __here_list_of_plugins__ See video/android/gstreamer example Change-Id: Ie4e586fa8489f1bd23622763f5578abed1729272 Task-number: QTBUG-72125 Reviewed-by: Andy Shaw <andy.shaw@qt.io> Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* | Fix qConvertFuncs to respect QVideoFrame::Format_YUV422PVal Doroshchuk2019-10-081-3/+3
| | | | | | | | | | | | | | After changing sequence in QVideoFrame, need to fix qConvertFuncs Change-Id: Ie022676a66d9c47a1b89cf5ef61c2146921a2a0b Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* | Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-10-081-0/+17
|\| | | | | | | | | | | | | Conflicts: src/multimedia/configure.json Change-Id: Ie887a5f4d718cb3e082b0e2ee996c6687af330cb
| * imx6: Fix mapping VPU texture using real physical address of dataVaL Doroshchuk2019-10-021-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Get real physical address of video frame data and provide it to imx6 vivante videonode to prevent memory leak from kernel. By default qtmultimedia does not depend on gstreamer-imx, but the plugin should exist on imx platform. So gstreamer_imxcommon will be disabled. And should be manually enabled in yocto receipt. Change-Id: I6e75746a2ba651d12bdd7697ae483699aad450fc Fixes: QTBUG-73084 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* | Fix library namev5.14.0-beta1BogDan Vatra2019-10-011-1/+1
| | | | | | | | | | | | Fixes: QTBUG-78616 Change-Id: Iad36d650530602e0e6d6504776a793e69b40bb4e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | Deprecate QRadioTuner and QRadioDataVaL Doroshchuk2019-10-012-0/+2
| | | | | | | | | | | | | | | | [ChangeLog] QRadioTuner and QRadioData classes are now deprecated. Task-number: QTBUG-75943 Change-Id: I54023ad344c494f4cddb62503ab47612a8b367e9 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* | Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-10-013-10/+2
|\| | | | | | | | | | | | | Conflicts: src/multimedia/video/qvideoframe.h Change-Id: I8458c4138be05f661d6528116cbc6b18298f0a91
| * Move QVideoFrame::Format_ABGR32 to the end of the Pixel FormatsVaL Doroshchuk2019-09-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since ABGR32 was introduced in 5.13.0 but placed in the middle of the list, which breaks enum values. [ChangeLog] In Qt 5.13.0 binary compatibility was broken for usage of the enum QVideoFrame::PixelFormat by introducing QVideoFrame::Format_ABGR32. To minimize the impact of this, the break has been reverted, thus introducing a binary compatibility break with earlier Qt 5.13.x versions, but restoring compatibility with all earlier versions of Qt 5. Change-Id: I3c490f2fc30f3b6914306b2d496724f12729338e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| * Fix deprecation condition for QMediaResourceVaL Doroshchuk2019-09-212-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | Decided to update only docs that the class is obsolete. QT_DEPRECATED_SINCE is not needed. Also due to deprecation warnings (produced e.g. by Q_DECLARE_METATYPE), QT_DEPRECATED_X is not used. NOTE, QMediaResource will be removed from Qt 6 Change-Id: I24c6b58f90315880839dd137cab3108809a63760 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | Add since tag to QMediaContent::requestVaL Doroshchuk2019-09-261-0/+2
| | | | | | | | | | Change-Id: Id10ba45b3e98834b568a6bbc4139b2acf4de6302 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | Move QVideoFrame::Format_YUV422P to the end of the Pixel FormatsVaL Doroshchuk2019-09-241-1/+1
| | | | | | | | | | Change-Id: I21afcf6302b18fd3a879fa95ef2c872bcb8a3376 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | Add doc for QMediaContent::requestVaL Doroshchuk2019-09-241-0/+4
| | | | | | | | | | Change-Id: I1eef99cd490f9febb7854f9a490d8ea369897a2c Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-09-216-27/+66
|\| | | | | | | Change-Id: I2ba97d82a57172656f6549f368ee51f718f9cdf8
| * 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 remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-09-1253-66/+62
|\| | | | | | | | | | | | | | | Conflicts: src/gsttools/qgstvideorenderersink.cpp src/gsttools/qgstvideorenderersink_p.h Change-Id: I7fe29161d568fa3f7688abfd2f993d1b16ac3fb9
| * Include moc files after QT_END_NAMESPACEVal Doroshchuk2019-09-0953-66/+62
| | | | | | | | | | | | Fixes: QTBUG-76574 Change-Id: I69ef47bbd01967c3d7a0c5d1554fcdd29619ebfa Reviewed-by: Christian Strømme <christian.stromme@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 remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-08-245-1/+106
|\| | | | | | | Change-Id: Ib6eaf2363bfd7d9db7bce7543cb9a8dd86e850ae
| * Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-08-205-1/+106
| |\ | | | | | | | | | Change-Id: Ic46475146abe7b8493ae343e8332736fa6dcc3af
| | * GStreamer: Add docs for custom pipelinesVaL Doroshchuk2019-08-145-1/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | 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>
* | | Port from QMutex::Recursive to QRecursiveMutexMarc Mutz2019-08-012-9/+11
| | | | | | | | | | | | | | | | | | | | | | | | Also port from QMutexLocker to std::lock_guard or std::unique_lock, as the former will not support QRecursiveMutex going forward. Change-Id: I1ed1a129e2b9b77aa0a729e8cab03c673566a345 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-07-301-1/+1
|\| | | | | | | | | | | Change-Id: I329eeefafed87ff7467d21d5d099cf9897660167
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Liang Qi2019-07-231-1/+1
| |\| | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/directshow/player/directshowplayerservice.cpp Change-Id: I482098bb3c3b5b291175ca798b0d6ba61ad87d86
| | * GStreamer: Implement fetching audio/video codecs by containerVaL Doroshchuk2019-07-171-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | * Camera: Update the doc about supported viewfinder settingsVaL Doroshchuk2019-07-161-1/+1
| | | | | | | | | | | | | | | Change-Id: I9d74355fb800234d4fbd12235b89965921027223 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | | Move-enable QMediaTimeIntervalMarc Mutz2019-07-242-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The class shouldn't have a user-provided copy ctor, because the compiler could write it for us and the type would be trivial, but we can't remove it in Qt 5, because that changes the way the class is passed by value into functions (register instead of stack). At least give it back its move special member functions, inhibited by the user-provided copy ctor, and schedule the whole lot for removal in Qt 6. Change-Id: Ic19ef43f3d313fea938aa769c067a736ec691337 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-07-231-0/+1
|\| | | | | | | | | | | Change-Id: Id2ff1bf85080dfdc7d318f459d78686b6c2f12b3
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-07-161-0/+1
| |\| | | | | | | | | | Change-Id: Ie621069a6a069905ea40541c651de6e9e038994f
| | * Fix GCC 9 -Wdeprecated-copy warningsMarc Mutz2019-07-111-0/+1
| | | | | | | | | | | | | | | Change-Id: Ia50ce0d2c94b3b064e9cd571e598ecd37ee2b5e3 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | | Make QAudioDeviceInfo::realm() publicVal Doroshchuk2019-07-192-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since there could be multiple audio plugins, sometimes it is useful to filter devices per a plugin or avoid duplicates if any. QAudioDeviceInfo::realm() returns a key of the audio plugin that was used to retrieve the device info. Change-Id: Ie786c2c0f5bf181f08ee9be544f20eb41a264e26 Fixes: QTBUG-75781 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-07-162-4/+9
|\| | | | | | | | | | | Change-Id: I7ca7fb6143ec296c16a37a7be236470dbd1742a7
| * | Merge "Merge remote-tracking branch 'origin/5.12' into 5.13"Qt Forward Merge Bot2019-07-111-4/+8
| |\ \
| | * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-07-111-4/+8
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: Ic700bdddc5b4ae663af0daae54feb2420c8a1730
| | | * 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>
| | | * Gstreamer: Allow streams in custom pipelinesVaL Doroshchuk2019-05-151-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduced pushing buffers from QIODevice to appsrc gstreamer element: player->setMedia("gst-pipeline: appsrc ! ...", io_device); Also ported to gst 0.10. Change-Id: I1a84d22c0d5c56fe433d494413c5ab23da7c6bf3 Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| * | | Doc: Replace example file lists with links to code.qt.ioTopi Reinio2019-07-091-0/+1
| |/ / | | | | | | | | | | | | | | | Task-number: QTBUG-74391 Change-Id: I7047254fb8695feabd08eaaf02bee21a1b805917 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | | Eradicate all but one Q_FOREACH loopMarc Mutz2019-07-113-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Q_FOREACH is going to be deprecated, or at the very least banned from use in Qt code. All these are trivial in the sense that the loop body clearly doesn't modify the container over which we iterate, and that the container is const, or trivially marked as such. In one case, replaced Q_FOREACH + delete + clear() with qDeleteAll(qExchange()), in three others, replaced Qt containers with statically-known content with plain C arrays. Change-Id: I718821811370f0cfefac3893283572d39a7d957d Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | | Eradicate Java-style iterators and mark the module free of themMarc Mutz2019-07-041-8/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Java-style iterators are scheduled to be deprecated, or at the very least banned from use in Qt's own implementation. Ditto for QLinkedList. Change-Id: I5471c293a7a050b92db47f7aeac15dd05bd46650 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | | Fix API of QCameraExposure, QCameraFocus, QCameraImageProcessing for Qt for ↵Friedemann Kleint2019-07-043-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Python The classes inherit QObject, but make the destructor private, which makes it impossible to add Qt for Python bindings. Make destructors protected to fix this. This is arguably a BC break for compilers which have the accessibility mangled in the symbol, but, since the destructor was private, there cannot be any code using it. Task-number: QTBUG-74422 Task-number: PYSIDE-1041 Change-Id: Id23d73aea8aedf15caafa20c048a80efd3e880bd Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>