summaryrefslogtreecommitdiffstats
path: root/src/plugins/directshow/camera
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.8' into 5.9Liang Qi2017-03-101-4/+0
|\ | | | | | | | | | | | | Conflicts: src/plugins/gstreamer/camerabin/camerabincontainer.h Change-Id: I4942d41d69112335fe0c994002f1b32ef3aad051
| * Use QT_CONFIG macro to check for featuresLars Knoll2017-02-271-2/+0
| | | | | | | | | | | | | | And remove many custom defines. Change-Id: I658cc8430d1d99ed3c0aafe03a77adce76621a29 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
| * DirectShow: Port to new configure system (evr, wmsdk)Friedemann Kleint2017-02-031-2/+0
| | | | | | | | | | | | | | | | Replace old legacy defines by QT_CONFIG. Fixes warnings when using MinGW: qtmultimedia/src/multimedia/qtmultimedia-config.h:4:0: warning: "QT_NO_WMSDK" redefined Change-Id: Ifbfc2cea3bf5bfd06d94fd70e6ea4afb6d6fbb4b Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | DirectShow: Fix warnings of MinGW/gcc 5.3v5.9.0-alpha1Friedemann Kleint2017-02-061-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | DirectShow: Use the new sample grabber in DsCameraChristian Strømme2017-01-272-100/+22
| | | | | | | | | | | | | | | | 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>
* | DirectShow: Add utility classChristian Strømme2017-01-271-32/+3
| | | | | | | | | | | | | | Centralized place for helper functions etc. Change-Id: Ia4474d0681a37fc95a100a3766800141a8b1d900 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | DirectShow: Sanitize DirectShowMediaTypeChristian Strømme2017-01-273-101/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-12-122-3/+1
|\ \ | |/ | | | | | | | | | | Conflicts: src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp Change-Id: I7c30c2d13fdd07ee07e4449d5d3e256e988d3793
| * Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-11-261-2/+0
| |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/qnx/qnx.pro sync.profile Change-Id: I353a44578276264a9ffb80820d8c5a0babfa1638
| | * Merge remote-tracking branch 'origin/5.6' into 5.75.7Liang Qi2016-11-241-2/+0
| | |\ | | | | | | | | | | | | Change-Id: Ic43abb034fa0a65b86a6e3511d29b8231ced5ec2
| | | * DirectShow: Remove unused class and member in DSCameraServiceChristian Strømme2016-11-231-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The class DSVideoOutputControl doesn't exist anymore, and the member is not used anywhere. Change-Id: I9458822501b4669e5796b4dff0b187242134795c Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
| * | | Move qtmultimedia over to the new config systemLars Knoll2016-11-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the new configuration system to define external libraries, configure tests and features. Don't use pkg-config outside of the configuration step. And move all command line options over from qtbase, so that we can remove them from there in a second step. Change-Id: I1aa4b557a6aee17eeceb00602005a2d28b426a26 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | | | DirectShow: Remove manual filter and pin disconnection in DsCameraChristian Strømme2016-11-151-31/+1
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-09-191-0/+2
|\ \ \ | |/ / | | | | | | Change-Id: I022c07dab3ded6072f7c103e299822caaf40cf34
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-09-171-0/+2
| |\ \ | | |/ | | | | | | Change-Id: I27d68b69f2ad15e930b6adab5b2ff583f4642fac
| | * DirectShow: support MJPEG camerasYoann Lopes2016-09-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-08-171-8/+15
|\ \ \ | |/ / | | | | | | Change-Id: Ib8d05d6e21c7beb19f618cd1edc52d248b1e43b8
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-131-8/+15
| |\ \ | | |/ | | | | | | Change-Id: I3204cdf695f4b47730a88a7c41fc7a6de967b161
| | * DirectShow: fix possible deadlock when capturing camera imageYoann Lopes2016-08-121-8/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | DirectShow: refactor custom renderer filterYoann Lopes2016-07-063-4/+4
|/ / | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-081-3/+13
|\ \ | |/ | | | | Change-Id: I7de78c63b5f81620474c69e5c651202c553a70d7
| * DirectShow: Release all filters when disconnecting the graph.Christian Strømme2016-03-311-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Updated license headersAntti Kokko2016-01-1917-238/+340
| | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.6' into devChristian Strømme2016-01-157-2/+506
|\ \ | |/ | | | | | | | | | | | | Conflicts: src/plugins/android/src/mediacapture/qandroidcamerasession.cpp src/plugins/wmf/mftvideo.cpp Change-Id: I78868b416ea4baec89ca3e2dc9eb4712db16d5fc
| * DirectShow: Get current image processing parameter from the cacheDenis Shienkov2015-12-102-40/+18
| | | | | | | | | | | | | | | | | | | | 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>
| * DirectShow: Add WhiteBalancePreset and ColorTemperature for the cameraDenis Shienkov2015-12-102-26/+142
| | | | | | | | | | Change-Id: I9a646418d6177338735e1eb38967fd092e21e0cf Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
| * DirectShow: Implement basic QCameraImageProcessingControl interfaceDenis Shienkov2015-12-017-2/+412
| | | | | | | | | | | | | | | | This commit implements the contrast, saturation, brightness and sharpening adjustments, using DirectShow backend. Change-Id: I438595550ff804f2a20028b4bc020c566d309127 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | DirectShow plugin: replace foreach with range-based forAnton Kudryavtsev2016-01-151-4/+4
|/ | | | | Change-Id: Id1a0b4d2c3defe254e503079faa8b35eaaba8c08 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* Fix QCamera viewfinder capabilities functions..Yoann Lopes2015-08-181-1/+3
| | | | | | | | | | | | - Filtering the results for a specific pixel aspect ratio would return wrong values. - Correctly sort the frame rate ranges returned by supportedViewfinderFrameRateRanges(). Added missing auto-tests for all viewfinder capabilities functions. Change-Id: Idfb40d4139cc48a5996ce2ddd98131a2f5be76bb Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* Define QCamera::FrameRateRange as a struct.Yoann Lopes2015-06-111-3/+3
| | | | | | | | Instead of an alias for QPair<qreal, qreal>. Task-number: QTBUG-46563 Change-Id: I7e1ac68242810f7e5f7e161571a11f5de7850e29 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-04-153-31/+52
|\ | | | | | | | | | | | | | | Conflicts: src/multimedia/playback/playlistfileparser.cpp src/plugins/windowsaudio/qwindowsaudiodeviceinfo.cpp Change-Id: I52950def2b8283ae15797d05d4ead6a1256eba19
| * DirectShow: correctly update camera list.Yoann Lopes2015-04-142-30/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | 8923c0ff fixed the list not being updated after plugging/unplugging a camera from the system. However, it was only a partial fix affecting only QCameraInfo::availableCameras(). DSVideoDeviceControl was still internally keeping a list of cameras that was never updated, causing the QCamera constructor to not take into account new or removed cameras. Change-Id: Ie5e79c46002017b1e85bfc53c6391a2a747361a0 Task-number: QTBUG-39708 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * Fix compile issue when building with -no-widgetsAndy Shaw2015-04-071-1/+0
| | | | | | | | | | Change-Id: I49a9aa684b0dfbe0e3d9e576aad06d65d6c3ecdd Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | DirectShow: implemented QCameraViewfinderSettingsControl2.Yoann Lopes2015-02-267-55/+284
| | | | | | | | | | Change-Id: I42ed49676e2fbc7207d8fe4579ad1fc0d62df138 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* | Update copyright headersAntti Kokko2015-02-1213-91/+91
|/ | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: I1c6faa4f59f8eca54f01ef20941fa60161dd7872 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* Update license headers and add new license filesAntti Kokko2014-08-2413-245/+141
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 & LICENSE.GPLv2 - Removed LICENSE.GPL Change-Id: Ied06887225df341064c12bcc14c259ae74116f2e Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
* DirectShow: Refactor camera backend.Yoann Lopes2014-07-1112-1412/+590
| | | | | | | | | | | | | | | | | | | Almost entire rewrite of the camera backend. It doesn't provide new features but is more stable and behave as it should. - Correctly report camera state and status - Correctly report if the camera is ready to capture - Emit imageExposed() signal - Save captured images in an appropriate directory - Images can be captured even without a viewport - Better error handling Removed the custom QVideoWidgetControl as it doesn't provide anything more than the QVideoWidget's renderer control fallback. Task-number: QTBUG-33782 Change-Id: I9baf6f83e7c69619f20a101921f7865a1c90d5e4 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* New QCameraInfo class.Yoann Lopes2014-02-281-1/+1
| | | | | | | | | | | | | | | | | | | | The class allows to get the list of available cameras on the system as well as getting some static information about them such as their unique ID, display name, physical position and sensor orientation. This makes QCamera::availableDevices() and QCamera::deviceDescription() obsolete. This patch contains the API, documentation and auto-tests but not the actual implementation by each backend (except for retrieving the default camera device). [ChangeLog][QtMultimedia] Added new QCameraInfo class [ChangeLog][QtMultimedia] QCamera: availableDevices() and deviceDescription() are deprecated, use QCameraInfo instead Change-Id: I64fd65729ab26a789468979ed5444ee90bb82cd0 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-02-122-3/+39
|\ | | | | | | Change-Id: Ie93615076177662e75d46f3d13beeb88d424b4a6
| * Don't mirror the image from the camera unless it has been flippedAndy Shaw2014-02-032-3/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The camera itself can have a mode set that causes the image to be flipped so instead of always mirroring the image that is taken from the camera we check for the supported modes first and then check the mode and only mirror if it is set. Otherwise we assume that it does not need horizontally flipping but that it needs vertically flipping which seems to be the standard for cameras on Windows. [ChangeLog][QtMultimedia][Windows] Fixed the incorrect mirroring of the image from the camera Task-number: QTBUG-30365 Change-Id: I166b1f354e8d91c9a6c64f64164d782b52df98d8 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* | Replace win32-g++ with mingw scopeKai Koehne2014-02-071-1/+1
| | | | | | | | | | | | | | | | | | | | Commit 773dd01 in qtbase introduced a general mingw platform scope, which is cleaner and more flexible than matching the spec name. (see 278152fff for a similar commit in qtbase). Change-Id: Ib46b9e83f690b0b26933b73764c7d7d4b031d792 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* | Normalize signal & slot signatures in connectionThiago Macieira2014-02-031-4/+4
| | | | | | | | | | | | | | Profiling shows Qt Creator spends 2% of its load time normalizing Change-Id: I1a4bef16be79ced35c47da865153ebe1bee22f9c Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* | whitespace fixesOswald Buddenhagen2014-01-303-13/+13
|/ | | | | | | | remove trailing spaces & expand tabs. Change-Id: I05ef110abed90f13b47752760ffb4567a11a6a5e Reviewed-by: Yoann Lopes <yoann.lopes@digia.com> Reviewed-by: Tony Sarajärvi <tony.sarajarvi@digia.com>
* DirectShow: avoid unnecessary RGB32 -> BGR32 conversion.Yoann Lopes2013-07-191-1/+1
| | | | | | | | | Frames in the RGB32 format are actually using the BGR byte order, no need to do the conversion. Task-number: QTBUG-29206 Change-Id: I13527bd9dacc8330df78beb0965b31469c1d7a87 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* DirectShow: Don't create the widget and renderer controls until requested.Yoann Lopes2013-07-192-15/+31
| | | | | | Task-number: QTBUG-32282 Change-Id: If37ed4c35bcc2cc879f50d3b2ea3720b90603e9a Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Make directshow-plugin available.Friedemann Kleint2013-05-152-3/+6
| | | | | | | | | | | | | | | No longer include <qedit.h> in directshow-plugin, which no longer ships in newer SDKs. Ensure it only provides the camera service if the WMF-plugin is built by using a different .json-file. Adapt qcamerabackend-test to use widgets. Task-number: QTBUG-28047 Change-Id: I22ea441b9edb56ff55bc275dba37c01c77d8dd90 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-02-1916-16/+16
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/multimedia/doc/qtmultimedia.qdocconf src/plugins/blackberry/mediaplayer/bbmetadata.cpp src/plugins/blackberry/mediaplayer/bbmetadata.h tests/auto/unit/qpaintervideosurface/tst_qpaintervideosurface.cpp Change-Id: I447c297ea15a94d1d2feb0fb5f9edac8c5d4505a
| * make use of qtHaveModule()Oswald Buddenhagen2013-01-111-1/+1
| | | | | | | | | | | | | | Change-Id: I14da5455b7dd4681254e1652395df5f5c65746bd Reviewed-by: Tasuku Suzuki <stasuku@gmail.com> Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| * Update copyright year in Digia's license headersSergio Ahumada2013-01-1015-15/+15
| | | | | | | | | | | | Change-Id: Ia8c1c38aba1544603fada8c414cc856f365fd15b Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* | DSVideoWidgetControl: Fix constructor order.Friedemann Kleint2013-02-141-1/+2
| | | | | | | | | | Change-Id: I804427867a0f400750ef1df423c89fb4948bb0a3 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>