summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | gsttools: do not check pointer before calling free()Rolf Eike Beer2020-01-201-6/+3
| | | | | | | | | | | | | | | Change-Id: I6deb8d5a282ecfe5cacc884ddfb3d4dc3ef3106d Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | | AVF: Check supported surface's pixel formats to enable glVal Doroshchuk2020-01-141-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Supported formats might be changed, thus need to inform the renderer control about this. If gl textures are supported by the surface, the video frames will be rendered to FBO instead of QImage, next time when the update request will be received. Change-Id: I7750def3e943ea2680bb8b83853cb987ab554f00 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | Handle supportedFormatsChanged in QVideoSurfacesVal Doroshchuk2020-01-141-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | Need to proxy supportedFormatsChanged signal from internal surfaces, since it impacts supported formats, also GLContext property should be set to share gl contexts between renderers. Change-Id: I9774be4d79dcd09190769def7e6ffd11a85fcc86 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-01-142-3/+1
|\ \ \ | |/ / | | | | | | Change-Id: Ie511ad4ccac1b5bde6686bbe2c391dd175dd3274
| * | AVF: Set the stopped state before emitting the status after EOSVal Doroshchuk2020-01-131-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed a bug when the media status was changed and emitted, but the state was kept old, this prevented to start playing again in a loop if the loops were requested. This is a regression since 9dbdd5d. Fixes: QTBUG-81122 Change-Id: Id2c7d03a25cc22f7f45c6017d2da0af9bb52e528 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| * | AVF: Don't apply settings if the camera is not active yetVal Doroshchuk2020-01-091-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>
* | Call parent methods in QVideoSurfaces's start and stopVal Doroshchuk2020-01-131-1/+3
| | | | | | | | | | | | | | | | Added forgotten calls to parent's methods. To make current object "active". Change-Id: If31d751dc7d37b0b160bfb8eaad818f3843af65b Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-01-071-1/+2
|\ \ | |/ | | | | Change-Id: I2d9e9deb651a3602bef5feae30b147462bcb15a8
| * Fix the build with -no-guiLiang Qi2020-01-031-0/+1
| | | | | | | | | | | | Task-number: QTBUG-74602 Change-Id: If2e4c8ad9822999e9fe4c5d8dd820cc78e1e1924 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
| * 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>
* | gsttools: use nullptr instead of NULLRolf Eike Beer2020-01-0612-144/+144
| | | | | | | | | | Change-Id: I3b9b75b9f55bbb13bd5751a49b072102af675c4f Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | gsttools: use auto for variables assigned from qobject_cast<>Rolf Eike Beer2020-01-064-11/+9
| | | | | | | | | | Change-Id: Ie81bd5a419665756dbdac5dafddf50fdde61019f Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | Expose video surfaces in rendering componentsVaL Doroshchuk2020-01-0514-33/+243
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Currently QVideoWidget, QGraphicsVideoItem and QML Video Output tightly depend on QMediaPlayer, QMediaService etc. Since QMediaService is deprecated and will be removed from Qt6, its usage must be removed from rendering components. * Also it is a part of a task to make all components independent, e.g. without dependencies to another components, like the media player, or video producer. These video consumer components should be reusable without QMediaPlayer too, which today is not possible, and should have responsibility for a single part of the functionality. * It is a part of a task to allow users to decide how to render video, using either video surface or native windows. Introducing QVideoWidget::videoSurface() QGraphicsVideoItem::videoSurface() QDeclarativeVideoOutput::videoSurface() that create a surface, if necessary, and returns the underlying video surface which provides a possibility to render video frames without knowledge of any services and controls. Can be used like: QMediaPlayer->setVideoOutput(QVideoWidget->videoSurface()); or QMediaPlayer->setVideoOutput(QGraphicsVideoItem->videoSurface()); This allows QMediaPlayer to get video frames from a backend, without using QVideoWidget/QGraphicsVideoItem, and to present these frames to provided surface. Moreover, now it is possible to render video frames without QMediaPlayer: QVideoSurfaceFormat format(img.size(), QVideoFrame::Format_ARGB32); videoWidget->videoSurface()->start(format); videoWidget->videoSurface()->present(img); [ChangeLog] Introduced videoSurface property to QVideoWidget, QGraphicsVideoItem and QDeclarativeVideoOutput. Task-number: QTBUG-80431 Change-Id: I49641750537160832e29c297279e72b8288e974c Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-12-302-0/+36028
|\ \ | |/ | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I50c9bfe46654aa159f35bf18eea95e8a8d399d41
| * Add binary compatibility files for qtmultimedia 5.14 branchMilla Pohjanheimo2019-12-172-0/+36028
| | | | | | | | | | | | | | BC files built against 5.14.0 added. Change-Id: Ibf60167e1fcb47ad4ceda492c33f12c980f99a82 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
| * Bump versionDaniel Smith2019-12-161-1/+1
| | | | | | | | Change-Id: Id5c7f408cd3103bad70578049237010cbbcf2aeb
* | Fix Qt 6 buildSimon Hausmann2019-12-201-1/+1
| | | | | | | | | | | | | | Change-Id: I83986a47f3ba47b978eaea485aa0085124df8fbd Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> (cherry picked from commit 0e6171203731521fae5459e67420d965e46b7ed6) Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-12-143-1/+60
|\ \ | |/ | | | | Change-Id: Ie912379a82447106f7708d09992425da3734e825
| * Merge remote-tracking branch 'origin/5.14.0' into 5.14Qt Forward Merge Bot2019-12-132-0/+57
| |\ | | | | | | | | | Change-Id: I29d8f54569c08b66576ce65737753dc9c3d84ebf
| | * Fix build: don't let X11/Xlib.h's None interferev5.14.0-rc2v5.14.05.14.0Thiago Macieira2019-12-041-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mesa's EGL headers #include <X11/Xlib.h> In file included from /usr/include/X11/Xlib.h:44, from /usr/include/EGL/eglplatform.h:130, from /usr/include/EGL/egl.h:39, from qsgvideonode_egl.h:48, from .moc/moc_qsgvideonode_egl.cpp:10: qurl.h:135:9: error: expected identifier before numeric constant 135 | None = 0x0, | ^~~~ Similar to e16ac8b55c36586aa67b1d4ec5e1b4edf03cd06b (5.4). Change-Id: Ic96c456e54524e25b03ffffd15dcc08f16385cbb Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| | * Add changes file for Qt 5.14.0v5.14.0-rc1Antti Kokko2019-11-251-0/+54
| | | | | | | | | | | | | | | Change-Id: Ia0457a2d6e5cedc1aae9e980ccf82763147c0bcc Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| * | Don't load the specialist videonode plugins when using webglAndy Shaw2019-12-091-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the webgl platform is being used then we do not want to load the videonode plugins because this will cause it to potentially use a backend that is not going to be supported by WebGL. This is due to the fact that it will potentially use extensions to OpenGL (such as the imx6 ones). But since the rendering is not happening on the device, but in the browser then the standard backends will work fine in this case. Fixes: QTBUG-79181 Change-Id: I03021d4ec01d9447dd1ca3815d32a167392ac781 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* | | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-12-073-1/+13
|\ \ \ | |/ / | | | | | | Change-Id: Ic9ca37f9f5d047cb3addeece5bab7b71ae78ce19
| * | Make the code compatible with future versions of QNX libasoundJames McDonnell2019-12-022-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | Some changes are being made to improve the consistency of the API. Change-Id: Idb4b8ba5d73a5242c25d306dcc7c77e3654ac3b6 Reviewed-by: Dan Cape <dcape@qnx.com> 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>
* | DirectShow: Disable QVideoFrame::image() testVaL Doroshchuk2019-12-042-3/+3
| | | | | | | | | | | | Change-Id: I7afeb2d74e95f1e65335bda505d8762b68393ae4 Reviewed-by: Daniel Smith <Daniel.Smith@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | Disable tst_QMediaPlayerBackend for MSVC 2019VaL Doroshchuk2019-11-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | Since it is totally blacklisted for Windows long time ago, need to blacklist it as well for MSVC 2019, and enable it afterwards when fixed. Fixes: QTBUG-79288 Change-Id: I3f9af244b95da3fc58970c6676d3e74cc9ecfb8e Reviewed-by: Andy Shaw <andy.shaw@qt.io> (cherry picked from commit 74b644b4af46418dc5b4654e9e501226edfe9e02)
* | spectrum example: Fix warnings about deprecated QList<T>::toSet()Friedemann Kleint2019-11-251-2/+4
| | | | | | | | | | | | | | | | | | Use std::unique() to obtain a sorted, unique list, fixing: engine.cpp:572:49: warning: 'QSet<T> QList<T>::toSet() const [with T = int]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] engine.cpp:579:43: warning: 'QSet<T> QList<T>::toSet() const [with T = int]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations] Change-Id: I7bc1b5ed4f3bf56897cc1e187833c11cb8560500 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | Avoid initializing QFlags with 0 or nullptrFriedemann Kleint2019-11-257-46/+27
| | | | | | | | | | | | | | It is being deprecated. Change-Id: I26b871fe9b989972ab1d2c18de344dc9c9275e9f Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-11-2025-108/+249
|\ \ | |/ | | | | Change-Id: Ib250ceecd02291f752b7775f329f0f494c4aed38
| * Android: Remove usage of qt_androidRequestPermissionVal Doroshchuk2019-11-154-15/+13
| | | | | | | | | | | | | | Use specific function instead, e.g. qt_androidRequestCameraPermission. Change-Id: I925e4d8ac4f1993c073930a79453894dd516d769 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| * Android: Don't close camera when recording permission is askedVal Doroshchuk2019-11-157-9/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If camera permission is granted and recording is requested it also requires recording audio permission. If it was not granted before the popup will be shown to ask the user to grant the permission and the app goes to inactive state, which destroys the camera handlers. When the camera is loaded but the app requires additional permissions, it should not destroy the camera. Change-Id: Iee3662a7ac3381b0eb29190779b0116f9f64304f Fixes: QTBUG-79909 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| * Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-11-142-0/+38
| |\ | | | | | | | | | Change-Id: Ie351f3c36eecf9e83a5b6a55ec0aac27387b5656
| | * Android: Fix fetching video frame data from the GUI thread5.13Val Doroshchuk2019-11-122-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If QAbstractVideoSurface is not used on rendering thread added a way to pass shared opengl context via GLContext surface property. Camera and media players that are created in Qt Quick will usually have their rendering done on the render thread, but the callback for custom video surface(s) (or probes) will usually be handle on the GUI thread, so to make it convenient to for the user to access the frame data, which is rendered on request, we now set-up context sharing and render to a fbo on the calling thread, if needed. Task-number: QTBUG-69333 Change-Id: I4cc5c1f741c82376f1402a047b946b59281c9a4c Reviewed-by: Christian Strømme <christian.stromme@qt.io>
| * | Doc: Fix documentation warningsTopi Reinio2019-11-132-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.14Qt Forward Merge Bot2019-11-128-25/+36
| |\ \ | | |/ | | | | | | Change-Id: I5b99b3d05502e15373ebaedcad06d6ab4d25d387
| | * QGstreamerPlayerControl: do not touch m_mediaStatus if it is EndOfMediaRolf Eike Beer2019-11-111-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | It would be reset to this state at the end of updateMediaStatus() anyway, so simply leave it alone. Change-Id: I7fa24773ebb1dd43ecfa8d7eb28d6f8e7862fa75 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
| | * opensl: support android voice comm preset in order to trigger aecBrad Davis2019-11-113-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | OpenSL ES support acoustic echo cancellation via the SL_ANDROID_RECORDING_PRESET_VOICE_COMMUNICATION preset, but this isn't exposed through Qt's wrapping layer. This change exposes new Qt constants to enable the use of this feature Change-Id: Ie64a949313b5a5b35d24159d3549290893ce32dd Fixes: QTBUG-70368 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
| | * GStreamer: Fix crash when video sink is used when it has been destroyedVaL Doroshchuk2019-11-051-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When custom pipeline is requested, all playbin related elements must be cleared. Also when QMediaPlayer is destroying, it disables showing preroll frames, property of the video sink, which was already destroyed. Destroying of m_videoOutputBin decreases refcounter for m_videoSink, since the video sink is owned by m_videoOutputBin. Fixes: QTBUG-79753 Change-Id: I2fcbd19372caf46adf2ae1ed2e5a7d0ee70040ad Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| | * AVFMediaAsserWriter: remove deprecated declrationTimur Pocheptsov2019-11-053-20/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Interface in headers should not contain i-var declarations, these days it must be in implementation part. Also, replace quite suspicious 'load' with 'loadAquire' to pair 'storeRelease'. Since I have QT_USE_NAMESPACE in *.mm file, no need in ugly QT_PREPEND_NAMESPACE macro anymore. Change-Id: Ia19e3c5b68687030c97e8e8e982ae89627e909f9 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
| * | Merge remote-tracking branch 'origin/5.13' into 5.14v5.14.0-beta3Qt Forward Merge Bot2019-11-057-59/+129
| |\ \ | | |/ | | | | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I255dc22dc21d3629a41a8c2ae2076c48b594e626
| | * ALSA: Calculate buffer size based on min period timeVaL Doroshchuk2019-11-041-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>
| | * Qt Mumtimedia - fix build for iOSTimur Pocheptsov2019-11-011-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since RestrictedBool conversion operator was introduced, objective-C method calls require explicit .data() on our smart pointers. Fixes: QTBUG-79686 Change-Id: Ie32ebf0442cd56a01466aa58b89651d7c293de6d Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
| | * Merge remote-tracking branch 'origin/5.13.2' into 5.13Qt Forward Merge Bot2019-10-302-1/+69
| | |\ | | | | | | | | | | | | Change-Id: I6bd582b1d4dee508c0e694b806b43c85c55fddd4
| | | * Add changes file for Qt 5.13.2v5.13.25.13.2Antti Kokko2019-10-151-0/+68
| | | | | | | | | | | | | | | | | | | | Change-Id: I4cc304daa4098bd1209152bb84cae7ee93d92933 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
| | | * Bump versionFrederik Gladhorn2019-10-141-1/+1
| | | | | | | | | | | | | | | | Change-Id: Ic40941bd63720eb1d753abd457f5861782f99105
| | * | Build without OpenGL supportAndy Shaw2019-10-243-12/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is support for rendering video without OpenGL on most platforms although some features are unavailable as a result, so we can make sure that what is available can be used. Change-Id: I63938e8e4e8063fcc2064d0f9d8d5f10e0fb06f9 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
| | * | QMediaPlayList: use new style connect syntaxRolf Eike Beer2019-10-231-24/+24
| | | | | | | | | | | | | | | | | | | | Change-Id: Idf13b2f851b78a9134b0c22ec9333f28f5b265cf Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | | | GstCamera: Watch for zoom and max-zoom property changes in Gstreamer CameraBinMohammed Hassan2019-11-202-1/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Camerabin can signal a change in those properties and we need to communicate those back to the application. Change-Id: Iaa3ce57769c10460821126a467202a6a4139d040 Reviewed-by: Pekka Vuorela <pvuorela@iki.fi> Reviewed-by: Raine Mäkeläinen <raine.makelainen@jolla.com>
* | | | Introduce rendering to multiple surfacesVaL Doroshchuk2019-11-066-2/+221
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QAbstractVideoSurface is used to retrieve and render video frames in particular pixel format. I.e. a backend takes one video surface which asks to provide video frames in one of the supported formats returned from QAbstractVideoSurface::supportedPixelFormats(). So currently there is one source of the video frames and only one video output possible. Introducing QMediaPlayer::setVideoOutput(const QVector<QAbstractVideoSurface *> &) This func takes a list of surfaces, that support at least one shared pixel format, and presents video frames to all of them at the same time. Several surfaces, which do not have any shared pixel formats, will fail to work. Task-number: QTBUG-32939 Change-Id: Ifbdaf692755353fbd5bf3ad74baba1820e3d0237 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>