| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 80d46e3a5f64ff2456c40bdba63b6d5c69a32cdd.
Revert of commercial license headers is required for Qt 5.15.3
opensource release.
Task-number: QTBUG-91108
Change-Id: I5c64ffa120f916711e5cf01c828774f8456dec06
Reviewed-by: Akseli Salovaara <akseli.salovaara@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Updated header.COMM to files in tqtc-qtmultimedia. Examples,
tests or documentation files are not updated.
The commercial license header may contain some
additional lines so that its line count equals
with the earlier license header. Reaso for this
is that some autotests use hard coded line numbers
and a change in the line count causes failures in
tests.
Task-number: QTQAINFRA-4171
Change-Id: I86ebf7c3653b55983cefff246c0cb019cbcda8c4
Reviewed-by: Akseli Salovaara <akseli.salovaara@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The pin should be negotiated once and use PIN_CATEGORY_CAPTURE.
The same logic is implemented in chromium.
Change-Id: I89ac13c1a7e982c1011b2a872e853ee5bc2036b2
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
(cherry picked from commit bf82ab669c53c4b9abb724e197252a788323095e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|\
| |
| |
| | |
Change-Id: I9687c59d15cd816969f362d72b19f279a1a2d04e
|
| |
| |
| |
| |
| |
| |
| |
| | |
Added MEDIASUBTYPE_Y800 with GUID: {30303859-0000-0010-8000-00AA00389B71}
Fixes: QTBUG-83071
Change-Id: I2e51ae1d2ae62d4d4cd7f68eecc0605bdc8c7f3a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
Since QVideoFrame::pixelFormat's do not 100% match QImage::Format's,
introducing converstion function.
Returns an image based on current frame.
Converts data if needed to supported QImage format.
Change-Id: I3331578c01cf9c999a380efc4a83bf9eddb07901
(cherry picked from commit 93f966335e1ed8ed47b7e8b32452d43c2f8a7bb1)
Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|\
| |
| |
| | |
Change-Id: I329eeefafed87ff7467d21d5d099cf9897660167
|
| |
| |
| |
| |
| | |
Change-Id: I5c2dadfe1154961adcecf779126166aea4d32393
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ied89175c4b7f5df090deac174b1da1e8496ee533
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I7ca7fb6143ec296c16a37a7be236470dbd1742a7
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| | |
Disentangle code of DirectShowPlayerService::requestControl().
Change-Id: I2e90d5c86acdbe2f20f421f43929e0e9c5580eaf
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
|
|/
|
|
|
| |
Change-Id: Iadaae490ff88737cf8a73ef8024617f60773a631
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
[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>
|
|
|
|
|
| |
Change-Id: Ib2f799024b91131d33b9247dec167cae3e6adde9
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added camera image encoder control that
1. applies image encoder settings (resolution and codec) used to capture images
2. returns supported image codecs from
QImageWriter::supportedImageFormats
3. returns supported resolutions
Since DirectShow camera session uses QImage based on QVideoFrame
image encoder control returns viewfinder supported resolutions.
Not available if camera is not loaded.
Setting resolution via encoder control causes viewfinder resolution to be ignored.
Task-number: QTBUG-32743
Change-Id: I1de3ca9c6543937cb62f73cb64a81d23b0d5c4c9
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
| |
- Unindent the code or replace by switch ()
- Smaller fixups when reindenting (nullptr, use QStringView for
comparison against wchar_t)
Change-Id: I249cb00b9ebe375b089d8d53b10c2d16d5771680
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
| |
Replace by reinterpret_cast<>.
Change-Id: Iebcac7858d875e2d6f53db21489d86beb19ba947
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If being used camera has been disconnected, state and status will
remain like it is still active. Also no events are sent.
Previously to fix this the camera needed to be unloaded and loaded again manually.
IMediaEvent provides an ability to catch device removal notification
with EC_DEVICE_LOST event.
Since ISampleGrabber is used to get buffers.
Added a fix to check if no buffers received for some time
afterwards check for EC_DEVICE_LOST event.
In case if the device is lost, the camera should be unloaded.
Change-Id: I3a5edf00ce8ee25d8b06800fdad833a722bdba0d
Task-number: QTBUG-68035
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Setting camera image processing parameters fails if the graph
builder is not ready.
We avoid this race condition by having a list of pending parameter
changes which is applied when graph builder has been created.
Task-number: QTBUG-69143
Change-Id: I5702ea5a2dceacff333fcf8dce05372a0208b8d9
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a camera is not started successfully,
then an error() should be emitted.
After an error the camera's state will be QCamera::UnloadedState
and status will be QCamera::UnloadedStatus.
The error signal is handled when the camera is unable to set following states:
QCamera::UnloadedState, QCamera::LoadedState or QCamera::LoadingState.
Thus additionally to QCamera::start() an error can be emitted
even when QCamera::load(), QCamera::unload(), or QCamera::stop() is
called.
Task-number: QTBUG-51825
Change-Id: Ib5ea08ed7983ea49a7bf8c0321cc5266a68d9144
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This change makes it possible to use the QVideoProbe class
with the camera.
[ChangeLog][DirectShow] Added support for video probes in the camera.
Change-Id: Ib353e80e68ea2dcc5b33fd81863f4b6613257e45
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Adds controls for setting the capture destination and buffer format.
[ChangeLog][DirectShow] Added support for setting the capture
destination and format.
Change-Id: I7420ea5dce9bf1bef391b6ba3a1537bedfbcf52d
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
Change-Id: I5acdc7e0bd3729b80522dfff0f388cf2507fb111
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Media type MEDIASUBTYPE_RGB32 is 32 bytes per pixel (like 0x00RRGGBB).
When MDI subwindows are overlapping
bottom window with QImage::Format_RGB32 requires 0xffRRGGBB.
If "not used byte" is not 0xFF rendering will not be correct
(0x00 produces empty image).
Changed samples to ARGB32 to provide alpha channel, which is 0xFF in
most cases.
If alpha channel is not set to 0xFF, the bottom window will still be
rendered incorrectly.
Task-number: QTBUG-51405
Change-Id: I69f15d3835f901a04bf39b079394c6292b793610
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|/
|
|
|
| |
Change-Id: I3b7601b4a97f8a2b1d2da6ef134f1577846ba713
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Since the slot connected to the frameAvailable signal may be in another
thread there is a bigger risk of it being invalid by the time the slot
is invoked. Therefore we copy the data and emit with the copy to ensure
that we don't lose the data.
Task-number: QTBUG-61817
Change-Id: I2888661d8a7f97105a85f87b08cc9ec25f8ce8c7
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
| |
The interface is needed to implement Qt's camera control classes.
Change-Id: I468527dd1f5e9e7a0f8868f0b7addc3c069adf54
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
helpers\directshowmediatype.h:70:58: note: in expansion of macro 'Q_DECL_NOTHROW'
inline const AM_MEDIA_TYPE *const operator &() const Q_DECL_NOTHROW { return &mediaType; }
qtbase/src/corelib/global/qcompilerdetection.h:1143:26: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
# define Q_DECL_NOEXCEPT noexcept ^
qtbase/src/corelib/global/qcompilerdetection.h:1153:25: note: in expansion of macro 'Q_DECL_NOEXCEPT'
# define Q_DECL_NOTHROW Q_DECL_NOEXCEPT ^
helpers\directshowmediatype.h:71:59: note: in expansion of macro 'Q_DECL_NOTHROW'
inline const AM_MEDIA_TYPE *const operator ->() const Q_DECL_NOTHROW { return &mediaType; } ^
camera\dscamerasession.cpp:604:24: warning: unused variable 'cLSID_SampleGrabber' [-Wunused-variable]
static const CLSID cLSID_SampleGrabber = { 0xC1F400A0, 0x3F08, 0x11d3, { 0x9F, 0x0B, 0x00, 0x60, 0x08, 0x03, 0x9E, 0x37 } };
camera\dscamerasession.cpp:603:22: warning: unused variable 'iID_ISampleGrabber' [-Wunused-variable]
static const IID iID_ISampleGrabber = { 0x6B652FFF, 0x11FE, 0x4fce, { 0x92, 0xAD, 0x02, 0x66, 0xB5, 0xD7, 0xC7, 0x8F } };
^
helpers\directshowmediatype.cpp: In constructor 'DirectShowMediaType::DirectShowMediaType()':
helpers\directshowmediatype.cpp:79:57: warning: missing initializer for member '_AMMediaType::formattype' [-Wmissing-field-initializers]
: mediaType({ GUID_NULL, GUID_NULL, TRUE, FALSE, 1 })
helpers\directshowmediatype.cpp:79:57: warning: missing initializer for member '_AMMediaType::pUnk' [-Wmissing-field-initializers]
helpers\directshowmediatype.cpp:79:57: warning: missing initializer for member '_AMMediaType::cbFormat' [-Wmissing-field-initializers]
helpers\directshowmediatype.cpp:79:57: warning: missing initializer for member '_AMMediaType::pbFormat' [-Wmissing-field-initializers]
camera\dscamerasession.cpp:805:111: warning: missing initializer for member '_AMMediaType::pUnk' [-Wmissing-field-initializers]
static const AM_MEDIA_TYPE grabberFormat { MEDIATYPE_Video, MEDIASUBTYPE_RGB32, 0, 0, 0, FORMAT_VideoInfo };
camera\dscamerasession.cpp:805:111: warning: missing initializer for member '_AMMediaType::cbFormat' [-Wmissing-field-initializers]
camera\dscamerasession.cpp:805:111: warning: missing initializer for member '_AMMediaType::pbFormat' [-Wmissing-field-initializers]
camera\dscamerasession.cpp: In member function 'void DSCameraSession::presentFrame()':
camera\dscamerasession.cpp:585:52: warning: 'captureId' may be used uninitialized in this function [-Wmaybe-uninitialized]
emit imageCaptured(captureId, captureImage);
Change-Id: I2870c1489bd375d3d43a31742551dab220015660
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
|
|
|
|
|
|
|
| |
There's no need to have a separate implementation in the camera code, so
removing this one in favor of the new sample grabber.
Change-Id: I5b68d804788745b6ed3d3fceba295d1d99bb5915
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
|
|
|
|
|
|
| |
Centralized place for helper functions etc.
Change-Id: Ia4474d0681a37fc95a100a3766800141a8b1d900
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The DirectShowMediaType is now a thin data wrapper around AM_MEDIA_TYPE
and will for the most look and work the same way, with the exception
that it cleans up after itself. All utility functions are now static,
except clear() which, for convenience, is also provided as a non-static
member function.
In addition to the changes mentioned above, duplicated methods were
removed, conversion for ARGB32 was added, and an attempt to make
the usage of AM_MEDIA_TYPE and DirectShowMediaType was made more
consistent.
Change-Id: Iad32fb8eeabd9d4183e9bd10426cac3963e5d99a
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
|
|
|
|
|
|
|
|
| |
In commit 3fb3231a9 we added code to disconnect all filters in the
graph, that includes any filters we add our self, so there's no
need to have special handling for those.
Change-Id: Id601933b3ff749294cfa71a0cca99e7d25e94a39
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
|\
| |
| |
| | |
Change-Id: I022c07dab3ded6072f7c103e299822caaf40cf34
|
| |\
| | |
| | |
| | | |
Change-Id: I27d68b69f2ad15e930b6adab5b2ff583f4642fac
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Map MEDIASUBTYPE_MJPG to QVideoFrame::Format_Jpeg, which makes sure
that cameras that only support MJPEG are configured properly.
Task-number: QTBUG-55359
Change-Id: I732c56afc51109aba0231c8537f795e8d276c194
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: Ib8d05d6e21c7beb19f618cd1edc52d248b1e43b8
|
| |\|
| | |
| | |
| | | |
Change-Id: I3204cdf695f4b47730a88a7c41fc7a6de967b161
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Don't emit signals while mutexes are locked.
Task-number: QTBUG-41573
Change-Id: I287b031a579cbec1cd178501df4426ceff9e9142
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
Reviewed-by: Ruslan Vorobei <zvorobei@gmail.com>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Refactor out some of the filter and pin logic into the
DirectShowBaseFilter and DirectShowPin abstract classes.
This will avoid code duplication when implementing the probe
filter. The existing source filter (for qrc files) can also be
refactored to use these abstract classes.
Change-Id: Iaf141472dea82579ad085b3318624f9a57aa46d8
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I7de78c63b5f81620474c69e5c651202c553a70d7
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When disconnecting the graph we need to make sure that all the filters
in the graph are released, even the ones that are automatically added.
Since we can't know in advance which filters the graph consists of, we
need release them one by one.
Task-number: QTBUG-49281
Change-Id: Ifdf2fb6fe1c90ab85b47565c5fe82b6ebe55b183
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see
http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/
Updated license headers to use new LGPL header instead of LGPL21 one
(in those files which will be under LGPL v3)
Change-Id: I324f65c61171f36641472964d095d72e452afb3a
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/plugins/android/src/mediacapture/qandroidcamerasession.cpp
src/plugins/wmf/mftvideo.cpp
Change-Id: I78868b416ea4baec89ca3e2dc9eb4712db16d5fc
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We can simplify a code, do not need to call pVideoProcAmp->Get()
each time when we want to get current parameter value. It is
better to do this once from updateImageProcessingParametersInfos().
In this case we will return desired parameter from the local cache.
Change-Id: If33c3882230c9ae817071ace5b792dfe31685a7f
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
|