| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Plain load() / store() have been deprecated, so port away
to their straight replacements.
Change-Id: Id5d0cfc97336618e444126278630decf581f3b6c
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since uploading to gl texture is quite performance-wise operation
introduced integration of opengl plugin which can provide a way
to avoid uploading to texture on each draw on qt's side.
Which potentially fixes some performance issues especially on embedded devices.
Added glupload and glcolorconvert gst elements to pipeline.
For qml apps current opengl context is provided to the gst plugin to share opengl data with.
It allows at the end to just use gl textures that created and filled inside the gst.
For overlay apps, glimagesink element is added.
Requires gstreamer-gl-1.0 to be installed.
Since this plugin is almost always available, so enabling it by default will break behavior of current pipeline
and might introduce some side effects.
Thus also provided QT_GSTREAMER_USE_OPENGL_PLUGIN env var to explicitly enable OpenGL features from gst.
After this change video frames will be texture based.
But it is still possible to map frames to download their data.
In case if the video surface does not support gl textures,
glmemory will be anyway requested, which will lead to uploading data, downloading
and uploading it again to textures in scene graph video node.
Task-number: QTBUG-66162
Change-Id: I32044ba0bf0c0cf90434d72f8991ad00927e1380
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since QMediaContent can contain only one content
and media resources are already deprecated,
canonicalUrl and canonicalRequest are a bit confusing and outdated.
Deprecated and replaced by QMediaContent::request() which already contains the url.
Change-Id: I418006e112f49466b0129bf1e6e1ae629c714538
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
[ChangeLog] Added QVideoFrame::Format_YUV422P.
Change-Id: If7741db00cf0b628d7fc4b1cd3a6e424e0f8e2c0
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Headers of multimedia quick module should not be placed in separate dir.
Change-Id: Ie1f9df8339847ffbac8f22ac16ab0e613c46d037
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: I1d3e0dfb1759426171d8a8a93c8191cfb798b410
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- GstTools has some (internal) documentation, but was causing a number of
warnings with QDoc's clang parser - exclude it from the documentation
build.
- Remove direct links from example documentation to individual example
files; they no longer work.
- Fix navigation for QML types; The main QML types pages did not list
types for QtAudioEngiine.
- Use \QtMinorVersion macro to make the documented import versions
follow the minor Qt version.
- Fix \since usage to be consistent throughout.
- Fix linking issues for QML properties/methods
- Minor language fixes
Change-Id: I735cd13fa6dedd6bf06d6b6ef50ce2e0d69a545b
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix warnings like:
video/qvideosurfaceformat.cpp:522:47: warning: 'QVariant qVariantFromValue(const T&) [with T = QAbstractVideoBuffer::HandleType]' is deprecated: Use QVariant::fromValue() instead. [-Wdeprecated-declarations]
video/qvideosurfaceformat.cpp:524:48: warning: 'QVariant qVariantFromValue(const T&) [with T = QVideoFrame::PixelFormat]' is deprecated: Use QVariant::fromValue() instead. [-Wdeprecated-declarations]
video/qvideosurfaceformat.cpp:534:54: warning: 'QVariant qVariantFromValue(const T&) [with T = QVideoSurfaceFormat::Direction]' is deprecated: Use QVariant::fromValue() instead. [-Wdeprecated-declarations]
video/qvideosurfaceformat.cpp:536:46: warning: 'QVariant qVariantFromValue(const T&) [with T = double]' is deprecated: Use QVariant::fromValue() instead. [-Wdeprecated-declarations]
video/qvideosurfaceformat.cpp:538:53: warning: 'QVariant qVariantFromValue(const T&) [with T = QSize]' is deprecated: Use QVariant::fromValue() instead. [-Wdeprecated-declarations]
video/qvideosurfaceformat.cpp:542:52: warning: 'QVariant qVariantFromValue(const T&) [with T = QVideoSurfaceFormat::YCbCrColorSpace]' is deprecated: Use QVariant::fromValue() instead. [-Wdeprecated-declarations]
Task-number: QTBUG-74043
Change-Id: I95f3bba4e63d83d02183a76be41d3819e0f400d8
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
Change-Id: Ie0a7534d518cd5758119edc77d8275ac3da2037c
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since QCameraInfo uses deviceControl and infoControl to get info about
camera, it needs to clear these controls if the camera failed to find
a device by name.
Change-Id: I1404f70234f978fa4568b6c883a5676f61e08145
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
(cherry picked from commit 42932e1a9dfd6699763b336f552e46f9b1ff30c9)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, QSoundEffect logged a warning if the source could not be decoded,
but without mentioning the source it tried to decode. When using multiple
QSoundEffects in one application, adding the source to the warning will help
to find the one causing the decode error.
Change-Id: I4c6bbdfe4a62f650b64ab951bcc637febedae98e
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
Reviewed-by: André Hartmann <aha_1980@gmx.de>
|
|\|
| |
| |
| | |
Change-Id: Ia2f6f90c44bb360810124bcfab558661a2644880
|
| |
| |
| |
| |
| |
| |
| |
| | |
Since change 871a097d0c6e8203f82 QtMultimedia is registered with the
latest Qt minor version, but the documentation wasn't updated yet.
Change-Id: I58eb629c5a2851f83231891b2e219210d79c862c
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Made the QtAudioEngine import always available under the latest Qt minor version
import QtAudioEngine 1.13
for 5.13
Task-number: QTBUG-74031
Change-Id: I14f602a5c59a6a6906aeeda8644e64dae36312e3
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ie7982232af45fd09a46854c96d7c7d6672857a97
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Prevents
src/multimedia/playback/qmediacontent.cpp:286:30: warning: ‘QMediaResource QMediaContent::canonicalResource() const’ is deprecated [-Wdeprecated-declarations]
src/multimedia/playback/qmediacontent.cpp:299:30: warning: ‘QMediaResource QMediaContent::canonicalResource() const’ is deprecated [-Wdeprecated-declarations]
Change-Id: Ifd112f38dc300ea83785d52eac83a40cda2b492d
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I26440611372622174c5b077be21e5a22b8136e97
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When it is playing and close the window:
1. The player object will be destroyed first (all QString's).
2. Next parent QWidget will be destroyed with all children.
3. While destroying QMediaPlayer from Player object, the playback will be stopped.
4. The status will be changed and Player::statusChanged will be called.
The connection still exists.
And since all string members are already freed, it produces a crash.
Change-Id: I2c2fdca97f0ff4b300527b550ecc0c12b04e5b4e
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I8317956994f586fa2272d5633af91325d277998b
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Introduced possibility to set custom pipeline using url.
Now the pipeline should be set only via QMediaPlayer::setMedia using url
with scheme "gst-pipeline".
For example, "gst-pipeline: videotestsrc ! autovideosink"
Since setting the media should be done after renderer in QML,
hence a surface is ready to be used and "qtvideosink" is available in pipelines.
To use it with QVideoWidget, setting the pipeline should be done after passing video output.
Change-Id: Id43f8681069e4bca2eafb154df2c5d446a0ca498
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Returns video buffer if available.
Is useful when need to get an access to impl specific data.
Change-Id: I6b9855397db2396ed0a76835d083be0457721f9b
Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I233c45824f517c185cb245d8a7d77cab8551fc51
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
We don't need to have the headers of QtMMGstTools
in a separate directory of the QtMultimedia module.
Change-Id: If304ab5ee5741aec7cf7785352f5a571bc4ec240
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QCameraInfo::defaultCamera() should not return empty name.
QCamera() uses first found camera service.
QCamera(QCameraInfo::defaultCamera()) uses the service which supports
provided camera's name.
Change-Id: I7a18b111997a605881eb6ec9788cb6e1d324c011
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I29b411a517d24e89eaac944507abbe2c471abb5d
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since QCameraInfo uses deviceControl and infoControl to get info about
camera, it needs to clear these controls if the camera failed to find
a device by name.
Change-Id: I1404f70234f978fa4568b6c883a5676f61e08145
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Removed -mediaplayer-backend configure param.
It allows to build directshow media player together with wmf's one,
if the last is available.
It is useful to switch to another backend without rebuilding.
By default directshow media player will be used.
[ChangeLog][Platform Specific Changes][Windows] Removed
-mediaplayer-backend config param which allowed to build wmf
together with DirectShow.
Task-number: QTBUG-32783
Change-Id: I486a93d9493407af3793cfe338b35daab7c642db
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Added comma-separated env var to define preferred backend plugins in
descending order if multiple backends are available.
Also short names of plugins could be used, e.g. "gst" instead of
"gstreamermediaplayer", "av" instead of "avfoundationmediaplayer" etc.
[ChangleLog] Added QT_MULTIMEDIA_PREFERRED_PLUGINS to
specify preferred plugins if multiple backends are available.
Change-Id: Iae1a24f2a36d7d133c5771626e68e89f8273b1bf
Task-number: QTBUG-56400
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
src/multimedia/camera/qcamera.cpp
Change-Id: If06a4c6a7dde35d5b95abcc5213ff281dca9374e
|
| |
| |
| |
| |
| |
| |
| |
| | |
If no camera devices found with requested name, the object should be invalid.
Task-number: QTBUG-54901
Change-Id: I54037c5c7caad09da2df51eb0624eb0e88f12bf8
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Directshow or wmf now could be disabled by -no-directshow or -no-wmf
within configuring.
Change-Id: I5408f8b5ff0fcaa18da2b15df637eb04effecff1
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: Id1084fec084b972aaa1d2389ee56ee831a821172
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since bytes per line can vary and be more than width * bytes in pixel,
it should be respected in the conversion.
This issue could be observed with ANGLE and IDirect3DSurface9 surfaces.
Where IDirect3DSurface9::LockRect returns D3DLOCKED_RECT with Pitch
(number bytes in the row) higher than width * bytes in pixel.
Task-number: QTBUG-71610
Change-Id: Ic62c50382d9006b0f214626f34f2eb4fd70e8377
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Iaf74b2b0f03af46942beaa5aa1fc61296a66ec47
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When either QSoundEffect::loadedChanged or QSoundEffect::statusChanged is emitted
QSoundEffect::play() can be called which results to call QAudioOutput::start() twice.
Added a fix to call QAudioOutput::start() only if QAudioOutput::state() is QAudio::StoppedState.
Flow trace:
1. PrivateSoundSource::sampleReady()
2. QSoundEffectPrivate::setStatus(QSoundEffect::Ready)
and emits statusChanged() or loadedChanged()
3. If there is a connection to QSoundEffect::loadedChanged/statusChanged
and QSoundEffect::play() is called there.
4. QSoundEffect::play() calls QAudioOutput::start() because sample is ready
5. QAudioOutput::start() is called again within PrivateSoundSource::sampleReady()
when QSoundEffectPrivate::setStatus exited.
Change-Id: I7ad8e9126b6006e1972356c80a7fd2e5c6a5ea04
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-69968
Change-Id: I241978969b655b3e716fa9cf5a91fe17f266032f
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Added flushMode property to QML VideoOutput element to define
what should be shown when flush is requested.
Takes affect only for QDeclarativeVideoRendererBackend
and when QSGVideoItemSurface is already started.
Flushing (passing empty video frame to the surface) is usually performed
when EndOfMedia or playback is stopped.
Which caused disappearing the content and blinking if playlist is used.
Using this property now possible to define
what frame (last, first or empty) should be shown when playback is stopped or finished.
By default shows empty frame (clears the video output).
To show a frame it requires to keep QVideoFrame and thus its data.
Task-number: QTBUG-37301
Task-number: QTBUG-49446
Change-Id: I3be5309217b9f543da804e3b616dee9d97fba65f
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QMediaResource class is now deprecated and should not be used.
Task-number: QTBUG-28850
Change-Id: Ia0ed5937c548d842eb4bf686da2c24db8b100a9d
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The QSoundEffect can be forced to use a specific audio output device.
This is useful on a system with multiple output devices as individual
QSoundeffects can use separate output devices.
Due to way QAudioOutput (alternate implementation behind QSoundEffect)
is implemented, QAudioDeviceInfo is used as a method of defining
the output device to be used.
Task-number: QTBUG-63596
Change-Id: Ibfb9894fec914726faee4e31c42ab08832693cf6
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I600b0532f154dc885913f14a5d24261c0de93893
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-70465
Change-Id: I6af46cb8de0b40dc41aaa0b999faf68d102c7b48
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When mapping video frame, data will be downloaded to QImage from frame buffer
with QImage::Format_RGBX8888 which is XBGR32 in Little Endian.
Thus added new pixel format QVideoFrame::Format_ABGR32.
Changed QVideoFrame::Format_BGR32 to QVideoFrame::Format_ABGR32.
Task-number: QTBUG-69968
Change-Id: I0f58d1a5b5cbdb5ab48ee5ad4d75f9b62f516333
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I87da2a6655784bcaf76dd73992c8b874853b1fc7
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Added an ability to define custom pipeline.
Since new pipeline is used, playbin features will not work.
Registered "qtvideosink" gstreamer element to be used in pipelines.
In case if there is a need to render to QML VideoOutput element.
I.e. if a pipeline is "videotestsrc ! qtvideosink" then QGstVideoRendererSink
will be used as a sink and rendering will be done by one of QSGVideoNode's.
In this case there is a need to create a pipeline after video surface is ready.
Also added an ability to override default video sink and define custom one instead.
QGstreamerVideoRendererInterface::setVideoSink() provides functionality to override default one.
QGstreamerPlayerSession::rendererChanged() can be used to check if the renderer is ready
to create a pipeline or set custom video sink.
Task-number: QTBUG-39327
Change-Id: I635d3a07fb9a5dcf30ee63284a849b0ad3438536
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Gstreamer implementation is located in a plugin.
In case if there is a need to use some internal features
QGstreamerPlayerControl and QGstreamerPlayerSession have been moved
from plugin to QtMultimediaGstTools library.
It allows to request media player control from QMediaService
and use it as QGstreamerPlayerControl.
Change-Id: I8e45480c4cd718b90b90d14a42bc56f6f924eae5
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|/
|
|
|
|
|
|
| |
Removed usage of QMediaResource internally, since it is going to be deprecated.
Task-number: QTBUG-28850
Change-Id: I476ae11ac58215aa4df4a76abb0cec3aa44f206a
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
Change-Id: I8d0aa330c9e5b2031b40ca645356226e8ebb50c8
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It is possible to have a loading thread running, but with no network
manager.
In that case, calling deleteLater() on m_networkAccessManager results in
a warning: postEvent: Unexpected null receiver.
Fix this issue by checking whether the network manager exists before
calling deleteLater() on it.
Task-number: QTBUG-66910
Change-Id: I818a87a605b4e906dee47c6c815a6b8112b16829
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
| |
Because of issue QTBUG-53019, the performance of an application playing a
video on windows is sometimes just a few fps. The issue seems to
be related to EVR on some hardware, and appeared in commit c739752.
This patch allows building the qtmultimedia module without EVR.
Task-number: QTBUG-53019
Change-Id: I1166e633dd02e93047fa72b0ac156ae615ab67ec
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
|