| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sometimes it is needed to configure udpsrc element to play a stream,
means to set some caps to GstUDPSrc element.
But currently there are no any ways to pass such caps.
Added parsing of the requested url to find "udpsrc.caps" query item
and to use it as the caps for udpsrc source element.
It allows to show streams by passing caps within url.
E.g. if the stream is created using
$ gst-launch-1.0 v4l2src ! videoconvert ! video/x-raw,format=I420,width=800,height=600 ! \
jpegenc ! rtpjpegpay ! udpsink host=127.0.0.1 port=5001
it could be shown via QMediaPlayer like:
MediaPlayer {
source: "udp://127.0.0.1:5001/?udpsrc.caps=application/x-rtp,media=video,clock-rate=90000,encoding=JPEG,payload=26"
}
Change-Id: I6f9c20c6004a34bce5fd1d0073311b7c62a8010f
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
| |
Dump dot file on play only.
Change-Id: Ide7fe0cad56f06a89604cf40b59b858c9c9d09f2
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Called deleteLater() on the bus helper to ensure the cleanup is handled gracefully.
QGstreamerBusHelperPrivate::doProcessMessage is called on a message from gst,
which it calls QGstreamerPlayerSession::processBusMessage where new media is set
and current helper object is destroyed.
When for loop is ended in doProcessMessage, current object is freed and produces a crash.
Change-Id: Ic9cde97c284406450d4723f1f7f71fa1ea2c0648
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
As CoInitialize() may have been called by something else beforehand then
it should only call CoUnitialize() if it returns S_OK which indicates it
was not already called. That ensures it is only uninitalized if it did
the initialization.
Change-Id: I1b723e0b69fe5f9ff7c2c6ef083e9196f21812b2
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If wrong url is passed, no need to try it again. But report an error
instead.
Also there cannot be empty url, because if an url is empty, NoMedia
should be emitted.
Fixes tst_QMediaPlayerBackend::playlistObject()
Task-number: QTBUG-65574
Change-Id: I658b16cfe7b96c202715651d6b20d01a9af6c746
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If QPainterVideoSurface::setGLContext(QGLContext::currentContext()) is used
and no valid paint device has been provided to QGLContext, it fails to make the context current.
Thus there might be no available current context which might also produce crashes.
QGLContext::currentContext() creates QGLContext based on current QOpenGLContext instance,
and no paint device is available in QGLContext::device() in this case.
Currently QVideoWidget and QGraphicsVideoItem are effected.
It is relevant when a renderer calls currentContext->doneCurrent() before using the QPainterVideoSurface.
After this there is no any current context which could cause a crash, e.g. within compiling the shaders.
Task-number: QTBUG-74277
Change-Id: Ia28f4f6843a82a897399fd1ce2463e3b087b6437
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When new media is set to the player, updating of "show-preroll-frame" property from the video sink
is also requested:
g_object_set(G_OBJECT(m_videoSink), "show-preroll-frame", value, NULL);
This produces emitting of a signal:
g_signal_connect(G_OBJECT(sink), "notify::show-preroll-frame", G_CALLBACK(handleShowPrerollChange), sink);
Inside handleShowPrerollChange() the state of the video sink is requested with infinite timeout:
gst_element_get_state(GST_ELEMENT(sink), &state, NULL, GST_CLOCK_TIME_NONE);
In case if the video sink performed an ASYNC state change,
means changing of the state is pending and need to wait,
this function will block up for infinite timeout.
But probably changing of the state is requested (and should be performed) on the same thread
where it is waiting for this change, it produces a deadlock.
Changing timeout to 10ms to avoid this block.
Fixes: QTBUG-72468
Change-Id: I06235ccfb8f76423f65ed192d5e8de6e60723e72
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Due to unknown bug in IMFTransform->ProcessOutput() when after seeking
sample times are not set correctly to provided IMFSample.
This causes current playback position to be not respected in video samples.
Even if you seeked to higher/lower position, sample time is always counted
from beginning.
Which makes no sense to use this feature because video frame's sample times
are not related to current position.
To test it, need just seek to arbitrary position and check how startTime
is not correlated to new position.
Fixes tst_QMediaPlayerBackend::seekPauseSeek
Task-number: QTBUG-65574
Change-Id: I897d75c055347cdcca38a84dc18f91800d070c09
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The tests expect to see updated playback position together with QMediaPlayer::BufferedMedia.
But currently QMediaPlayer::BufferedMedia is emitted before updating the
position.
Removed updating the status if the graph is already loaded but a task is still pending.
Fixes tst_QMediaPlayerBackend::seekInStoppedState
Task-number: QTBUG-65574
Change-Id: I66d214312dbf31973a13b5154a52599aa517f38c
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes tst_QMediaPlayerBackend::playlistObject()
Actual (currentMediaSpy.count()): 2
Expected (1) : 1
.\tst_qmediaplayerbackend.cpp(1224) : failure location
Task-number: QTBUG-65574
Change-Id: Ia7cbcb4a22ee43df9e1efff065910b084bdbf00e
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently it is not able to start camera without viewfinder.
For this purpose there is QAndroidCameraDataVideoOutput with SurfaceView
in order to be able to start the camera preview.
Implemented dummy QAbstractVideoSurface to render to it when no video
output is provided before starting the preview.
Task-number: QTBUG-73582
Fixes: QTBUG-73237
Change-Id: Ic76d247b5d5352e8539ba61271484e56d3a40fbd
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The application should only have one Camera object active
at a time for a particular hardware camera.
Since there is no way to determine that the camera has been already opened by
the same application, added a fix to prevent opening the camera if it
was already opened and not released.
Task-number: QTBUG-73582
Change-Id: Ide9ddea0c32489d86a613846ecf2e91ef94a776c
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If eglfs is used, then there is valid current gl context
and it has OpenGL shader programs (QGLShaderProgram::hasOpenGLShaderPrograms).
This gl context makes QPainterVideoSurface to use QVideoSurfaceGlslPainter
instead of QVideoSurfaceGenericPainter.
QOpenGLCompositorBackingStore uses QImage as a QPaintDevice.
In this case QPainter::beginNativePainting does nothing because of QRasterPaintEngine.
Since QVideoSurfaceGlslPainter is supposed to work with a gl paint engine and not with a raster one,
this prevents rendering any video content.
To work this around, view->setViewport(new QOpenGLWidget) could be used,
where QOpenGL2PaintEngineEx will be taken into account.
If platform was not eglfs, QGLContext::currentContext() could be unavailable
which made QPainterVideoSurface to use QVideoSurfaceGenericPainter
and the video was rendered correctly.
QVideoSurfaceGenericPainter should be used when the paint engine is not gl based.
Task-number: QTBUG-57836
Change-Id: Id4839facddb2494ec5abf729ea80068eb5e2af1d
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In case of EOS the state of the pipeline currently is changed to GST_STATE_NULL,
which releases some resources and it might take some time to restart the playback.
If the media should be played few times, there could be a gap between EOS and new play which can be heard.
Suggesting to set the state to GST_STATE_PAUSED instead.
If there is a need to release resources, empty QMediaContent should be set to the media player.
Change-Id: Ifa5c886abfbea037fd395b7336a5590001d4a7f7
Fixes: QTBUG-75314
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently if the application is inactive,
the state is postponed to be set and processed when the app becomes active.
This also postpones stateChanged() signal and saving the state value,
while it should be set (but not processed) immediately as done in another backends.
Added a fix to store the state and emit stateChanged regardless of
activity of the application.
When the application becames available, the state will be processed.
In case of an error while opening the camera:
- UnloadedState is emitted
- CameraError
- UnloadedStatus
Change-Id: Ie376d29366168a6b15eccea884f385070f94fe35
Task-number: QTBUG-73582
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
pause() should reset position to the beginning after EOS.
Fixes tst_QMediaPlayerBackend::processEOS
Task-number: QTBUG-65574
Change-Id: I4802102bde657d7a3dde0b426c335b021207ae08
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
A frame must be presented until pause/play is called.
Fixes tst_QMediaPlayerBackend::seekPauseSeek
Task-number: QTBUG-65574
Change-Id: I6946c5a5977c44fed80abce364a4222845898016
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Currently if the device gets opened, also its volume is set to 100%.
The volume should be set only if it has been requested.
Change-Id: I9dc4ab29ad71f3ac6556c6dd32c7b8e5d69efab2
Fixes: QTBUG-75024
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
|
|
|
|
|
|
|
|
| |
android/media/AudioTrack::getMinBufferSize might return an error instead
of a size.
Task-number: QTBUG-73583
Change-Id: I52e2d214ab7065bcea9d983979bb0b83717428af
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the camera is ready for capture -> QMediaRecorder::LoadedStatus.
If CaptureVideo is changed to CaptureStillImage -> StoppedState and
UnloadedStatus.
If camera's status is StoppingStatus -> StoppedState and UnloadedStatus.
If camera's status is LoadingStatus -> LoadingStatus.
If recording is requested -> RecordingState and RecordingStatus.
If recording is audio-only -> immediately LoadedStatus, before start and
after stop.
Fixes tst_QCameraBackend::testVideoRecording
Task-number: QTBUG-73582
Change-Id: I976c4e3afab529e0949571c4002e9ceba74cac97
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DirectShowCameraZoomControl sets camera zoom level to 1x each time,
when camera goes into LoadedStatus (e.g. on stream stop), which is
inconveniant, specially if camera has physical remote, and zoom level
may be changed externally.
Disable this behavior, if zoom level was not requested explicitly
by zoomTo(...) function from client code.
Fixes: QTBUG-74180
Change-Id: I99ff76af04f80c630a0c397db5713e6706ebf175
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
Reviewed-by: Ihor Dutchak <ihor.youw@gmail.com>
|
|
|
|
|
|
|
|
| |
Fixes tst_QCameraBackend::testCaptureMode.
Change-Id: I2f6486102ebcbf7e1ab0feea8c13658772d5b90f
Fixes: QTBUG-73582
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Using the lowest supported resolution yields ugly results and has weird
side effects (green bars). If no resolution is explicitly given, we
should use the maximum supported solution for preview as well as
capture.
Task-number: QTBUG-72874
Change-Id: Ie0fae65180e66156c6de468f2cabb9122fe665ba
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@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>
(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>
|
|
|
|
|
|
|
|
| |
This fixes an compile failure introduced in commit 67c4ec55.
Fixes: QTBUG-74475
Change-Id: I0dabb72f8b5cdd75336b15515381ff9d9442788f
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When multiple pipelines are created, and one of these gets recreated,
it picks up the last set surface.
This is incorrect, as it needs a surface belonging to the current renderer.
This patch sets the surface before creating pipelines, retrieving it from the current renderer.
Task-number: QTBUG-73557
Change-Id: I0811f7262a0eca57e01361a55515351127520064
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-73740
Change-Id: I1de087b63f65bab39351d5446254a8d1832e88c3
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
|
|
|
|
|
| |
Fixes: QTBUG-73464
Change-Id: I5d1052dec14bbe6ee69b348352991d14d63b9c76
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a camera is going to be destroyed, a service plugin releases media service,
(which releases ds camera session) and might call CoUninitialize.
This leads to a crash when DirectShowSampleGrabber is destroyed after
releasing the camera.
Added a fix to release the sample grabber together with camera session.
Task-number: QTBUG-73461
Change-Id: I8e518d0242d983c8d2bb00c30ad87c7e8e1e2c93
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DeferredDelete events have implicitly higher priority,
which makes this event to be handled before MetaCall events.
See QSGSoftwareRenderThread::sync():
...
QCoreApplication::sendPostedEvents(nullptr, QEvent::DeferredDelete);
Where it processes deferred deletes and no meta calls will be delivered
even if they were requested before the deferred delete.
Task-number: QTBUG-67280
Change-Id: Iba23550d2cffb1cea1b4c2fe4c903078d9f2f046
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
| |
The comment contains information which makes it misleading to understand
how the components are passed.
Change-Id: I29cdb5eec1e8014fa7f0ca3f1a0f54258fdb431f
Reviewed-by: Tomasz Olszak <olszak.tomasz@gmail.com>
Reviewed-by: Christian Strømme <christian.stromme@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>
|
|
|
|
|
|
|
|
|
| |
This patch updates the QGstUtils class to use QRegularExpression in
place of QRegExp which is to be considered deprecated.
Fixes: QTBUG-72589
Change-Id: I67e189c48688b512cc76c884fd2a7e51e1b188f9
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|
|
|
|
|
|
|
| |
In case if container format, video and audio codec are not provided,
need to fetch default ones.
Change-Id: I616fabc7bf9ec7c7a08a4c5dacad87a1748209f3
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
This makes it possible to build the GStreamer backend on Windows.
Change-Id: I5b705524072d8bd89a7c9b834201b97e0d01d6cc
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|
|
|
|
|
|
| |
Results to inconsistent DLL linkage errors on Windows.
Change-Id: I0aebe05e40dbb4fac130c536849c68dd61aa12fe
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MSVC didn't like the #iffery that was done with GST_STATIC_CAPS(). The
build error was:
qtmultimedia\src\gsttools\qgstutils.cpp(1323): error C2121: '#':
invalid character: possibly the result of a macro expansion
qtmultimedia\src\gsttools\qgstutils.cpp(1323): error C2059: syntax
error: 'if'
qtmultimedia\src\gsttools\qgstutils.cpp(1323): error C2143: syntax
error: missing ';' before '{'
qtmultimedia\src\gsttools\qgstutils.cpp(1311): error C2143: syntax
error: missing ';' before '}'
qtmultimedia\src\gsttools\qgstutils.cpp(1325): error C2059: syntax
error: 'return'
qtmultimedia\src\gsttools\qgstutils.cpp(1326): error C2059: syntax
error: '}'
qtmultimedia\src\gsttools\qgstutils.cpp(1326): error C2143: syntax
error: missing ';' before '}'
qtmultimedia\src\gsttools\qgstutils.cpp(1329): error C2143: syntax
error: missing ';' before '{'
qtmultimedia\src\gsttools\qgstutils.cpp(1329): error C2447: '{':
missing function header (old-style formal list?)
Change-Id: Ic9ac64648aba396fc4ef433e73d5c72a8c1c3da1
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
According to
https://docs.microsoft.com/en-us/windows/desktop/medfound/metadata-properties-for-media-files
PKEY_Media_EncodingSettings is closed to description.
Task-number: QTBUG-72287
Change-Id: I2cafc4b922ffc8ad01db43f8dfb97097f8185501
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed an issue when buffers are sent using queued connection.
Thus all buffers were collected before they were handled.
Now only last buffer is kept.
Also moved handling of device lost timer to main thread.
Task-number: QTBUG-72012
Change-Id: I338587c5854739d6081c5cb502377e5779776417
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
If playback is not stopped but EndOfMedia is received, it would be still possible to
seek to previous position and start playback again which will cause empty
video output because the surface has been already stopped and should be
restarted.
Task-number: QTBUG-42057
Change-Id: I5ca496ba3af5c27c0ad61edb35d758e201061595
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since updates are disabled, and no paint events will be sent to
QVideoWidget, need to somehow repaint the video window.
When BeginPaint is called outside of the expose event, the window might
not be refreshed. So moved calling the repainting within the expose event.
Also added repainting when the display rect is changed to immediate
refreshing.
Task-number: QTBUG-71326
Change-Id: I7c29b3f8ad35e33590c7b138a5141546ce3c1a42
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][DirectShow] Do not convert QCamera video frames to RGB32
if provided QAbstractVideoSurface supports frame pixel format,
requested by QCameraViewfinderSettings.
Task-number: QTBUG-68768
Change-Id: I78d0aaf6c22c4bfee2b17f78a3709d7ba9a8b4fa
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Additionally to custom error messages it needs to show standard ones with
error codes.
Task-number: QTBUG-71851
Change-Id: I6504ec2417b0f686ab4e1a6902c4f00eeefcbbf2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This establishes compatibility with MinGW-w64 headers 6.0
where MFVideoNormalizedRect has been added to evr.h.
Task-number: QTBUG-70630
Change-Id: I49ac49bf9eda8ea281d9da799785e56373ae8f01
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
Reviewed-by: Marius Kittler <mariuskittler@gmx.de>
|