summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorVal Doroshchuk <valentyn.doroshchuk@qt.io>2018-11-19 10:11:51 +0100
committerVaL Doroshchuk <valentyn.doroshchuk@qt.io>2018-11-27 07:45:14 +0000
commitc459810caf72be43275e983b01cf97556ad55562 (patch)
treeee8002c6374e1c385886684364108401a419ca2b /src/plugins
parent2c974280aa8c40d29ec89bdc73bc6bf384c010c9 (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.cpp9
-rw-r--r--src/plugins/directshow/camera/dscamerasession.h2
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.