| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Change-Id: Ifea48894e96f1e3f1df53650b3b07cce18a30aea
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\
| |
| |
| | |
Change-Id: I91e8d902cd916ee16a2495da9bf40a34c6bc05d2
|
| |
| |
| |
| |
| |
| |
| |
| | |
Patch content originally proposed by Alex Reche and Olivier Le Roux.
Fixes: QTBUG-67985
Change-Id: I3ec80c566bf7c67c50e3e7485248412c40bdf169
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
| |\
| | |
| | |
| | | |
Change-Id: I7ca7fb6143ec296c16a37a7be236470dbd1742a7
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
.qmake.conf
Change-Id: Ic700bdddc5b4ae663af0daae54feb2420c8a1730
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
GetFrameRateList passes an unmanaged pointer to the caller which must be
manually freed with CoTaskMemFree. Additionally the Chromium project
notes that some drivers cause quirky return values which we would not
catch without stricter checks. See: https://chromium.googlesource.com/chromium/src/media/+/8cc93abd7339eeb9b7c2a12cca07b3dc245b2139/video/capture/win/video_capture_device_win.cc#484
Change-Id: I6aa4a6ea1ac0241e585e98cf9ff63240bacd3956
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
With newer MinGW versions we have to link against libamstrmid for the
symbols IID_IMFTopologyServiceLookupClient, IID_IMFVideoDeviceID and
IID_IMFVideoPresenter.
Fixes: QTBUG-70655
Change-Id: Ib203d991d2bd8cd63193a7319c156f30f0e8826b
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
MEDIASUBTYPE_RGB24 inverts Red and Blue channels, i.e. on Little-Endian: BGR
and thus Format_BGR24 should be used instead of Format_RGB24.
To reproduce the bug:
QCameraViewfinderSettings settings;
settings.setPixelFormat(QVideoFrame::Format_RGB24);
camera->setViewfinderSettings(settings);
If the camera supports MEDIASUBTYPE_RGB24 it will show Red and Blue
channels inverted.
*NOTE*
This fix causes ignoring MEDIASUBTYPE_RGB24 format and using
MEDUASUBTYPE_RGB32 instead.
Because the video surfaces currently do not support QVideoFrame::Format_BGR32.
So it fixes the issue with inverted colors by ignoring RGB24 media type.
If there is a need to use RGB24, it would require to implement custom
surface which supports QVideoFrame::Format_BGR24 and swap colors
manually.
Change-Id: I0d77694ef688a05dc52d13f991a5088e00f72867
Fixes: QTBUG-75959
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This one is not trivial in that it isn't clear, a priori, that the
loop body doesn't re-enter the class and ends up modifying
m_videoProbes.
But MFVideoProbeControl::bufferProbed() just schedules a deferred call
to QMediaVideoProbeControl::videoFrameProbed() (via QueuedConnection),
so this cannot happen, because we end the loop before we re-enter the
event loop (if any) on this thread. Reentrancy from a different thread,
OTOH, is not possible because we're holding m_videoProbeMutex while
looping.
Change-Id: I6c1e22cd01112f0b2650e056f0b7f4a392370b84
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
| |\| |
| | | |
| | | |
| | | | |
Change-Id: Ia427729f2b302854daa9f8259eae038498088b7e
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Doesn't seem to be used.
Task-number: QTBUG-76521
Change-Id: Ief874765cd7b43798de3fffd15a9f691e1ac078d
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Apply Fixits by Qt Creator.
Change-Id: Idbd52ceaac6ee02f23d05f5a9b1ab6d58298b6a5
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I4e696083c2ed78b374f2df64706ecb2297f122dd
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Task-number: QTBUG-76491
Change-Id: I7a22d6612848e25bb780d205c6cdbb314cd4762d
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
| |\| |
| | | |
| | | |
| | | | |
Change-Id: Ic3ac3515666576046ac1ec5342c5b06aadbc18ac
|
| | |\|
| | | |
| | | |
| | | | |
Change-Id: Ib819180a25ceedfb072362d55d30f94e40a44f9b
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Need to send the state if it has been applied.
Currently it happens when Recording is requested.
If Stopped is requested, the state will be changed in handleRecordingFinished callback.
Change-Id: I6911f2cebb2d1cc8a08eee17e7b91654b5d6e4c7
Fixes: QTBUG-75287
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Disentangle code of DirectShowPlayerService::requestControl().
Change-Id: I2e90d5c86acdbe2f20f421f43929e0e9c5580eaf
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It was deprecated by qtbase/ed99a591a83a399458f12341d0a1c0b3152f247a.
Change-Id: I87bf219c05a62e1deeb9d3df558e5084318a2a69
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Iadaae490ff88737cf8a73ef8024617f60773a631
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Apply some fixits by Qt Creator.
Change-Id: I20b62c70b5ed0e79ca735f1ab9b048023eb9dc7d
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| |\| |
| | | |
| | | |
| | | | |
Change-Id: Id1638836ea3faf16c4ba39119029522b2afbe803
|
| | |\|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/plugins/directshow/player/directshowplayerservice.cpp
Change-Id: I6b7edc312ecfadf84653ce24321ec55da41e131a
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Since the video output could be set after doRender(), we do not report
an error in this case.
But need to report the error when the video output has not been submitted at all.
Otherwise it hides the error and not possible to determine playback issues.
Added a fix to remember an error while rendering without the video
output and handle it if playing is requested.
That means, if it is required, the video output must be set before play() is called.
Not all medias require valid video output, but if there is an error, we
need to report about it.
Fixes tst_QMediaPlayerBackend::playlist()
Task-number: QTBUG-65574
Change-Id: I9faae19c08ad0273545bb7617ea3a11539084f1f
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>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
|/ / /
| | |
| | |
| | |
| | | |
Change-Id: I83986a47f3ba47b978eaea485aa0085124df8fbd
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: I82d63ba32a0c9f8b883d00ef1bd68df3a10da96c
|
| |\|
| | |
| | |
| | | |
Change-Id: I03225f5e980a69246b046351f7d7d8e84f102ca0
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
|\| |
| | |
| | |
| | | |
Change-Id: I1a8712e983332580235448fd03679303610edd24
|
| |\|
| | |
| | |
| | | |
Change-Id: Iedfcb12f51d26843d062d443d11eef5959d1c4bd
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Don't blindly stop the recording pipeline if it is unloading.
Ensure that we check to see if the pipeline is busy, even if
it is in Unloaded state.
Task-number: QTBUG-65398
Change-Id: Ieac72967311bdd3bafae60bc1d0da9d227a6c237
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: Idb05a117cf226919a34122b8b4156173120a128d
|
| |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
tests/auto/integration/qdeclarativevideooutput/tst_qdeclarativevideooutput.cpp
Done-with: Val Doroshchuk <valentyn.doroshchuk@qt.io>
Change-Id: I745dd948c1e98180115f85c17bef802351bbdb6b
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|