diff options
author | Val Doroshchuk <valentyn.doroshchuk@qt.io> | 2018-11-19 10:11:51 +0100 |
---|---|---|
committer | VaL Doroshchuk <valentyn.doroshchuk@qt.io> | 2018-11-27 07:45:14 +0000 |
commit | c459810caf72be43275e983b01cf97556ad55562 (patch) | |
tree | ee8002c6374e1c385886684364108401a419ca2b /src/plugins | |
parent | 2c974280aa8c40d29ec89bdc73bc6bf384c010c9 (diff) |
DirectShow: Display windows error string when camera fails
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>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/directshow/camera/dscamerasession.cpp | 9 | ||||
-rw-r--r-- | src/plugins/directshow/camera/dscamerasession.h | 2 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/plugins/directshow/camera/dscamerasession.cpp b/src/plugins/directshow/camera/dscamerasession.cpp index 8d0c72057..43cc9dbd1 100644 --- a/src/plugins/directshow/camera/dscamerasession.cpp +++ b/src/plugins/directshow/camera/dscamerasession.cpp @@ -502,7 +502,7 @@ failed: if (m_surface && m_surface->isActive()) m_surface->stop(); disconnectGraph(); - setError(QCamera::CameraError, errorString); + setError(QCamera::CameraError, errorString, hr); return false; } @@ -541,12 +541,13 @@ bool DSCameraSession::stopPreview() return true; failed: - setError(QCamera::CameraError, errorString); + setError(QCamera::CameraError, errorString, hr); return false; } -void DSCameraSession::setError(int error, const QString &errorString) +void DSCameraSession::setError(int error, const QString &errorString, HRESULT hr) { + qErrnoWarning(hr, "[0x%x] %s", hr, qPrintable(errorString)); emit cameraError(error, errorString); setStatus(QCamera::UnloadedStatus); } @@ -839,7 +840,7 @@ failed: SAFE_RELEASE(m_nullRendererFilter); SAFE_RELEASE(m_filterGraph); SAFE_RELEASE(m_graphBuilder); - setError(QCamera::CameraError, errorString); + setError(QCamera::CameraError, errorString, hr); return false; } diff --git a/src/plugins/directshow/camera/dscamerasession.h b/src/plugins/directshow/camera/dscamerasession.h index 361a0220e..91bd53766 100644 --- a/src/plugins/directshow/camera/dscamerasession.h +++ b/src/plugins/directshow/camera/dscamerasession.h @@ -173,7 +173,7 @@ private: void updateSourceCapabilities(); bool configurePreviewFormat(); void updateImageProcessingParametersInfos(); - void setError(int error, const QString &errorString); + void setError(int error, const QString &errorString, HRESULT hr); // These static functions are used for scaling of adjustable parameters, // which have the ranges from -1.0 to +1.0 in the QCameraImageProcessing API. |