diff options
Diffstat (limited to 'src/plugins/directshow/camera')
-rw-r--r-- | src/plugins/directshow/camera/dscameracontrol.cpp | 2 | ||||
-rw-r--r-- | src/plugins/directshow/camera/dscameracontrol.h | 6 | ||||
-rw-r--r-- | src/plugins/directshow/camera/dscameraservice.cpp | 6 | ||||
-rw-r--r-- | src/plugins/directshow/camera/dscameraservice.h | 6 | ||||
-rw-r--r-- | src/plugins/directshow/camera/dscamerasession.cpp | 101 | ||||
-rw-r--r-- | src/plugins/directshow/camera/dscamerasession.h | 37 | ||||
-rw-r--r-- | src/plugins/directshow/camera/dsvideodevicecontrol.cpp | 18 | ||||
-rw-r--r-- | src/plugins/directshow/camera/dsvideodevicecontrol.h | 4 | ||||
-rw-r--r-- | src/plugins/directshow/camera/dsvideorenderer.cpp | 1 | ||||
-rw-r--r-- | src/plugins/directshow/camera/dsvideorenderer.h | 4 |
10 files changed, 80 insertions, 105 deletions
diff --git a/src/plugins/directshow/camera/dscameracontrol.cpp b/src/plugins/directshow/camera/dscameracontrol.cpp index 67971d1b5..3f60ec848 100644 --- a/src/plugins/directshow/camera/dscameracontrol.cpp +++ b/src/plugins/directshow/camera/dscameracontrol.cpp @@ -47,8 +47,6 @@ QT_BEGIN_NAMESPACE DSCameraControl::DSCameraControl(QObject *parent) : QCameraControl(parent) - , m_state(QCamera::UnloadedState) - , m_captureMode(QCamera::CaptureStillImage) { m_session = qobject_cast<DSCameraSession*>(parent); connect(m_session, &DSCameraSession::statusChanged, this, diff --git a/src/plugins/directshow/camera/dscameracontrol.h b/src/plugins/directshow/camera/dscameracontrol.h index b9fb2766d..2087623d1 100644 --- a/src/plugins/directshow/camera/dscameracontrol.h +++ b/src/plugins/directshow/camera/dscameracontrol.h @@ -52,7 +52,7 @@ class DSCameraControl : public QCameraControl { Q_OBJECT public: - DSCameraControl(QObject *parent = 0); + DSCameraControl(QObject *parent = nullptr); ~DSCameraControl() override; QCamera::State state() const override { return m_state; } @@ -69,8 +69,8 @@ public: private: DSCameraSession *m_session; - QCamera::State m_state; - QCamera::CaptureModes m_captureMode; + QCamera::State m_state = QCamera::UnloadedState; + QCamera::CaptureModes m_captureMode = QCamera::CaptureStillImage; }; QT_END_NAMESPACE diff --git a/src/plugins/directshow/camera/dscameraservice.cpp b/src/plugins/directshow/camera/dscameraservice.cpp index 8115ef385..ff488cf09 100644 --- a/src/plugins/directshow/camera/dscameraservice.cpp +++ b/src/plugins/directshow/camera/dscameraservice.cpp @@ -62,14 +62,12 @@ DSCameraService::DSCameraService(QObject *parent): , m_session(new DSCameraSession(this)) , m_control(new DSCameraControl(m_session)) , m_videoDevice(new DSVideoDeviceControl(m_session)) - , m_videoRenderer(0) , m_imageCapture(new DSImageCaptureControl(m_session)) , m_viewfinderSettings(new DSCameraViewfinderSettingsControl(m_session)) , m_imageProcessingControl(new DSCameraImageProcessingControl(m_session)) , m_exposureControl(new DirectShowCameraExposureControl(m_session)) , m_captureDestinationControl(new DirectShowCameraCaptureDestinationControl(m_session)) , m_captureBufferFormatControl(new DirectShowCameraCaptureBufferFormatControl) - , m_videoProbeControl(nullptr) , m_zoomControl(new DirectShowCameraZoomControl(m_session)) , m_imageEncoderControl(new DirectShowCameraImageEncoderControl(m_session)) { @@ -140,14 +138,14 @@ QMediaControl* DSCameraService::requestControl(const char *name) if (qstrcmp(name, QImageEncoderControl_iid) == 0) return m_imageEncoderControl; - return 0; + return nullptr; } void DSCameraService::releaseControl(QMediaControl *control) { if (control == m_videoRenderer) { delete m_videoRenderer; - m_videoRenderer = 0; + m_videoRenderer = nullptr; return; } diff --git a/src/plugins/directshow/camera/dscameraservice.h b/src/plugins/directshow/camera/dscameraservice.h index 9a8f745f6..6ea85b725 100644 --- a/src/plugins/directshow/camera/dscameraservice.h +++ b/src/plugins/directshow/camera/dscameraservice.h @@ -64,7 +64,7 @@ class DSCameraService : public QMediaService Q_OBJECT public: - DSCameraService(QObject *parent = 0); + DSCameraService(QObject *parent = nullptr); ~DSCameraService() override; QMediaControl* requestControl(const char *name) override; @@ -74,14 +74,14 @@ private: DSCameraSession *m_session; DSCameraControl *m_control; DSVideoDeviceControl *m_videoDevice; - QMediaControl *m_videoRenderer; + QMediaControl *m_videoRenderer = nullptr; DSImageCaptureControl *m_imageCapture; DSCameraViewfinderSettingsControl *m_viewfinderSettings; DSCameraImageProcessingControl *m_imageProcessingControl; DirectShowCameraExposureControl *m_exposureControl; DirectShowCameraCaptureDestinationControl *m_captureDestinationControl; DirectShowCameraCaptureBufferFormatControl *m_captureBufferFormatControl; - DirectShowVideoProbeControl *m_videoProbeControl; + DirectShowVideoProbeControl *m_videoProbeControl = nullptr; DirectShowCameraZoomControl *m_zoomControl; DirectShowCameraImageEncoderControl *m_imageEncoderControl; }; diff --git a/src/plugins/directshow/camera/dscamerasession.cpp b/src/plugins/directshow/camera/dscamerasession.cpp index 5ab9f67d8..27cdd84db 100644 --- a/src/plugins/directshow/camera/dscamerasession.cpp +++ b/src/plugins/directshow/camera/dscamerasession.cpp @@ -58,23 +58,6 @@ QT_BEGIN_NAMESPACE DSCameraSession::DSCameraSession(QObject *parent) : QObject(parent) - , m_graphBuilder(nullptr) - , m_filterGraph(nullptr) - , m_sourceDeviceName(QLatin1String("default")) - , m_sourceFilter(nullptr) - , m_needsHorizontalMirroring(false) - , m_previewSampleGrabber(nullptr) - , m_nullRendererFilter(nullptr) - , m_previewStarted(false) - , m_surface(nullptr) - , m_previewPixelFormat(QVideoFrame::Format_Invalid) - , m_stride(-1) - , m_readyForCapture(false) - , m_imageIdCounter(0) - , m_currentImageId(-1) - , m_captureDestinations(QCameraImageCapture::CaptureToFile) - , m_videoProbeControl(nullptr) - , m_status(QCamera::UnloadedStatus) { connect(this, SIGNAL(statusChanged(QCamera::Status)), this, SLOT(updateReadyForCapture())); @@ -284,7 +267,7 @@ void DSCameraSession::setImageProcessingParameter( ImageProcessingParameterInfo>::iterator sourceValueInfo = m_imageProcessingParametersInfos.find(resultingParameter); - if (sourceValueInfo == m_imageProcessingParametersInfos.constEnd()) + if (sourceValueInfo == m_imageProcessingParametersInfos.end()) return; LONG sourceValue = 0; @@ -331,10 +314,10 @@ void DSCameraSession::setImageProcessingParameter( return; } - IAMVideoProcAmp *pVideoProcAmp = NULL; + IAMVideoProcAmp *pVideoProcAmp = nullptr; HRESULT hr = m_graphBuilder->FindInterface( - NULL, - NULL, + nullptr, + nullptr, m_sourceFilter, IID_IAMVideoProcAmp, reinterpret_cast<void**>(&pVideoProcAmp) @@ -464,7 +447,7 @@ bool DSCameraSession::startPreview() QString errorString; HRESULT hr = S_OK; - IMediaControl* pControl = 0; + IMediaControl* pControl = nullptr; if (!configurePreviewFormat()) { errorString = tr("Failed to configure preview format"); @@ -516,7 +499,7 @@ bool DSCameraSession::stopPreview() m_previewSampleGrabber->stop(); QString errorString; - IMediaControl* pControl = 0; + IMediaControl* pControl = nullptr; HRESULT hr = m_filterGraph->QueryInterface(IID_IMediaControl, reinterpret_cast<void**>(&pControl)); if (FAILED(hr)) { @@ -702,12 +685,12 @@ bool DSCameraSession::createFilterGraph() QString errorString; HRESULT hr; - IMoniker* pMoniker = NULL; - ICreateDevEnum* pDevEnum = NULL; - IEnumMoniker* pEnum = NULL; + IMoniker* pMoniker = nullptr; + ICreateDevEnum* pDevEnum = nullptr; + IEnumMoniker* pEnum = nullptr; // Create the filter graph - hr = CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC, + hr = CoCreateInstance(CLSID_FilterGraph,nullptr,CLSCTX_INPROC, IID_IGraphBuilder, reinterpret_cast<void**>(&m_filterGraph)); if (FAILED(hr)) { errorString = tr("Failed to create filter graph"); @@ -715,7 +698,7 @@ bool DSCameraSession::createFilterGraph() } // Create the capture graph builder - hr = CoCreateInstance(CLSID_CaptureGraphBuilder2, NULL, CLSCTX_INPROC, + hr = CoCreateInstance(CLSID_CaptureGraphBuilder2, nullptr, CLSCTX_INPROC, IID_ICaptureGraphBuilder2, reinterpret_cast<void**>(&m_graphBuilder)); if (FAILED(hr)) { @@ -731,7 +714,7 @@ bool DSCameraSession::createFilterGraph() } // Find the Capture device - hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL, + hr = CoCreateInstance(CLSID_SystemDeviceEnum, nullptr, CLSCTX_INPROC_SERVER, IID_ICreateDevEnum, reinterpret_cast<void**>(&pDevEnum)); if (SUCCEEDED(hr)) { @@ -740,13 +723,13 @@ bool DSCameraSession::createFilterGraph() pDevEnum->Release(); if (S_OK == hr) { pEnum->Reset(); - IMalloc *mallocInterface = 0; + IMalloc *mallocInterface = nullptr; CoGetMalloc(1, (LPMALLOC*)&mallocInterface); //go through and find all video capture devices - while (pEnum->Next(1, &pMoniker, NULL) == S_OK) { + while (pEnum->Next(1, &pMoniker, nullptr) == S_OK) { - BSTR strName = 0; - hr = pMoniker->GetDisplayName(NULL, NULL, &strName); + BSTR strName = nullptr; + hr = pMoniker->GetDisplayName(nullptr, nullptr, &strName); if (SUCCEEDED(hr)) { QString output = QString::fromWCharArray(strName); mallocInterface->Free(strName); @@ -762,14 +745,14 @@ bool DSCameraSession::createFilterGraph() pMoniker->Release(); } mallocInterface->Release(); - if (NULL == m_sourceFilter) + if (nullptr == m_sourceFilter) { if (m_sourceDeviceName.contains(QLatin1String("default"))) { pEnum->Reset(); // still have to loop to discard bind to storage failure case - while (pEnum->Next(1, &pMoniker, NULL) == S_OK) { - IPropertyBag *pPropBag = 0; + while (pEnum->Next(1, &pMoniker, nullptr) == S_OK) { + IPropertyBag *pPropBag = nullptr; hr = pMoniker->BindToStorage(nullptr, nullptr, IID_IPropertyBag, reinterpret_cast<void**>(&pPropBag)); @@ -780,17 +763,13 @@ bool DSCameraSession::createFilterGraph() // No need to get the description, just grab it - hr = pMoniker->BindToObject(0, 0, IID_IBaseFilter, + hr = pMoniker->BindToObject(nullptr, nullptr, IID_IBaseFilter, reinterpret_cast<void**>(&m_sourceFilter)); pPropBag->Release(); pMoniker->Release(); - if (SUCCEEDED(hr)) { + if (SUCCEEDED(hr)) break; // done, stop looping through - } - else - { - qWarning() << "Object bind failed"; - } + qWarning("Object bind failed"); } } } @@ -813,7 +792,7 @@ bool DSCameraSession::createFilterGraph() // Null renderer. Input connected to the sample grabber's output. Simply // discard the samples it receives. - hr = CoCreateInstance(cLSID_NullRenderer, NULL, CLSCTX_INPROC, + hr = CoCreateInstance(cLSID_NullRenderer, nullptr, CLSCTX_INPROC, IID_IBaseFilter, (void**)&m_nullRendererFilter); if (FAILED(hr)) { errorString = tr("Failed to create null renderer"); @@ -898,7 +877,7 @@ bool DSCameraSession::configurePreviewFormat() m_stride = DirectShowMediaType::bytesPerLine(m_previewSurfaceFormat); HRESULT hr; - IAMStreamConfig* pConfig = 0; + IAMStreamConfig* pConfig = nullptr; hr = m_graphBuilder->FindInterface(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video, m_sourceFilter, IID_IAMStreamConfig, reinterpret_cast<void**>(&pConfig)); @@ -931,10 +910,10 @@ void DSCameraSession::updateImageProcessingParametersInfos() return; } - IAMVideoProcAmp *pVideoProcAmp = NULL; + IAMVideoProcAmp *pVideoProcAmp = nullptr; const HRESULT hr = m_graphBuilder->FindInterface( - NULL, - NULL, + nullptr, + nullptr, m_sourceFilter, IID_IAMVideoProcAmp, reinterpret_cast<void**>(&pVideoProcAmp) @@ -1041,10 +1020,10 @@ void DSCameraSession::disconnectGraph() { // To avoid increasing the memory usage every time the graph is re-connected it's // important that all filters are released; also the ones added by the "Intelligent Connect". - IEnumFilters *enumFilters = NULL; + IEnumFilters *enumFilters = nullptr; if (SUCCEEDED(m_filterGraph->EnumFilters(&enumFilters))) { - IBaseFilter *filter = NULL; - while (enumFilters->Next(1, &filter, NULL) == S_OK) { + IBaseFilter *filter = nullptr; + while (enumFilters->Next(1, &filter, nullptr) == S_OK) { m_filterGraph->RemoveFilter(filter); enumFilters->Reset(); filter->Release(); @@ -1061,24 +1040,24 @@ static bool qt_frameRateRangeGreaterThan(const QCamera::FrameRateRange &r1, cons void DSCameraSession::updateSourceCapabilities() { HRESULT hr; - AM_MEDIA_TYPE *pmt = NULL; - VIDEOINFOHEADER *pvi = NULL; + AM_MEDIA_TYPE *pmt = nullptr; + VIDEOINFOHEADER *pvi = nullptr; VIDEO_STREAM_CONFIG_CAPS scc; - IAMStreamConfig* pConfig = 0; + IAMStreamConfig* pConfig = nullptr; m_supportedViewfinderSettings.clear(); m_needsHorizontalMirroring = false; m_supportedFormats.clear(); m_imageProcessingParametersInfos.clear(); - IAMVideoControl *pVideoControl = 0; + IAMVideoControl *pVideoControl = nullptr; hr = m_graphBuilder->FindInterface(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video, m_sourceFilter, IID_IAMVideoControl, reinterpret_cast<void**>(&pVideoControl)); if (FAILED(hr)) { qWarning() << "Failed to get the video control"; } else { - IPin *pPin = 0; + IPin *pPin = nullptr; if (!DirectShowUtils::getPin(m_sourceFilter, PINDIR_OUTPUT, &pPin, &hr)) { qWarning() << "Failed to get the pin for the video control"; } else { @@ -1130,15 +1109,15 @@ void DSCameraSession::updateSourceCapabilities() QList<QCamera::FrameRateRange> frameRateRanges; if (pVideoControl) { - IPin *pPin = 0; + IPin *pPin = nullptr; if (!DirectShowUtils::getPin(m_sourceFilter, PINDIR_OUTPUT, &pPin, &hr)) { qWarning() << "Failed to get the pin for the video control"; } else { long listSize = 0; - LONGLONG *frameRates = 0; + LONGLONG *frameRates = nullptr; SIZE size = { resolution.width(), resolution.height() }; - if (SUCCEEDED(pVideoControl->GetFrameRateList(pPin, iIndex, size, - &listSize, &frameRates))) { + hr = pVideoControl->GetFrameRateList(pPin, iIndex, size, &listSize, &frameRates); + if (hr == S_OK && listSize > 0 && frameRates) { for (long i = 0; i < listSize; ++i) { qreal fr = qreal(10000000) / frameRates[i]; frameRateRanges.append(QCamera::FrameRateRange(fr, fr)); @@ -1147,6 +1126,8 @@ void DSCameraSession::updateSourceCapabilities() // Make sure higher frame rates come first std::sort(frameRateRanges.begin(), frameRateRanges.end(), qt_frameRateRangeGreaterThan); } + + CoTaskMemFree(frameRates); pPin->Release(); } } diff --git a/src/plugins/directshow/camera/dscamerasession.h b/src/plugins/directshow/camera/dscamerasession.h index 18fc0cca7..5e7d026c2 100644 --- a/src/plugins/directshow/camera/dscamerasession.h +++ b/src/plugins/directshow/camera/dscamerasession.h @@ -84,7 +84,7 @@ class DSCameraSession : public QObject { Q_OBJECT public: - DSCameraSession(QObject *parent = 0); + DSCameraSession(QObject *parent = nullptr); ~DSCameraSession() override; QCamera::Status status() const { return m_status; } @@ -185,49 +185,48 @@ private: QMutex m_presentMutex; QMutex m_captureMutex; - // Capture Graph - ICaptureGraphBuilder2* m_graphBuilder; - IGraphBuilder* m_filterGraph; + ICaptureGraphBuilder2* m_graphBuilder = nullptr; + IGraphBuilder* m_filterGraph = nullptr; // Source (camera) - QString m_sourceDeviceName; - IBaseFilter* m_sourceFilter; - bool m_needsHorizontalMirroring; + QString m_sourceDeviceName = QLatin1String("default"); + IBaseFilter* m_sourceFilter = nullptr; + bool m_needsHorizontalMirroring = false; QList<DirectShowMediaType> m_supportedFormats; QList<QCameraViewfinderSettings> m_supportedViewfinderSettings; DirectShowMediaType m_sourceFormat; QMap<QCameraImageProcessingControl::ProcessingParameter, ImageProcessingParameterInfo> m_imageProcessingParametersInfos; // Preview - DirectShowSampleGrabber *m_previewSampleGrabber; - IBaseFilter *m_nullRendererFilter; + DirectShowSampleGrabber *m_previewSampleGrabber = nullptr; + IBaseFilter *m_nullRendererFilter = nullptr; QVideoFrame m_currentFrame; - bool m_previewStarted; - QAbstractVideoSurface* m_surface; + bool m_previewStarted = false; + QAbstractVideoSurface* m_surface = nullptr; QVideoSurfaceFormat m_previewSurfaceFormat; - QVideoFrame::PixelFormat m_previewPixelFormat; + QVideoFrame::PixelFormat m_previewPixelFormat = QVideoFrame::Format_RGB32; QSize m_previewSize; - int m_stride; + int m_stride = -1; QCameraViewfinderSettings m_viewfinderSettings; QCameraViewfinderSettings m_actualViewfinderSettings; // Image capture QString m_imageCaptureFileName; QMediaStorageLocation m_fileNameGenerator; - bool m_readyForCapture; - int m_imageIdCounter; - int m_currentImageId; + bool m_readyForCapture = false; + int m_imageIdCounter = 0; + int m_currentImageId = -1; QVideoFrame m_capturedFrame; - QCameraImageCapture::CaptureDestinations m_captureDestinations; + QCameraImageCapture::CaptureDestinations m_captureDestinations = QCameraImageCapture::CaptureToFile; // Video probe QMutex m_probeMutex; - DirectShowVideoProbeControl *m_videoProbeControl; + DirectShowVideoProbeControl *m_videoProbeControl = nullptr; QImageEncoderSettings m_imageEncoderSettings; // Internal state - QCamera::Status m_status; + QCamera::Status m_status = QCamera::UnloadedStatus; QTimer m_deviceLostEventTimer; QMap<QCameraImageProcessingControl::ProcessingParameter, QVariant> m_pendingImageProcessingParametrs; diff --git a/src/plugins/directshow/camera/dsvideodevicecontrol.cpp b/src/plugins/directshow/camera/dsvideodevicecontrol.cpp index 2c1fab764..0f08154f1 100644 --- a/src/plugins/directshow/camera/dsvideodevicecontrol.cpp +++ b/src/plugins/directshow/camera/dsvideodevicecontrol.cpp @@ -129,10 +129,10 @@ void DSVideoDeviceControl::updateDevices() deviceList->clear(); - ICreateDevEnum* pDevEnum = NULL; - IEnumMoniker* pEnum = NULL; + ICreateDevEnum* pDevEnum = nullptr; + IEnumMoniker* pEnum = nullptr; // Create the System device enumerator - HRESULT hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL, + HRESULT hr = CoCreateInstance(CLSID_SystemDeviceEnum, nullptr, CLSCTX_INPROC_SERVER, IID_ICreateDevEnum, reinterpret_cast<void**>(&pDevEnum)); if (SUCCEEDED(hr)) { @@ -142,12 +142,12 @@ void DSVideoDeviceControl::updateDevices() if (S_OK == hr) { pEnum->Reset(); // go through and find all video capture devices - IMoniker* pMoniker = NULL; - IMalloc *mallocInterface = 0; + IMoniker* pMoniker = nullptr; + IMalloc *mallocInterface = nullptr; CoGetMalloc(1, (LPMALLOC*)&mallocInterface); - while (pEnum->Next(1, &pMoniker, NULL) == S_OK) { - BSTR strName = 0; - hr = pMoniker->GetDisplayName(NULL, NULL, &strName); + while (pEnum->Next(1, &pMoniker, nullptr) == S_OK) { + BSTR strName = nullptr; + hr = pMoniker->GetDisplayName(nullptr, nullptr, &strName); if (SUCCEEDED(hr)) { QString output(QString::fromWCharArray(strName)); mallocInterface->Free(strName); @@ -162,7 +162,7 @@ void DSVideoDeviceControl::updateDevices() // Find the description VARIANT varName; varName.vt = VT_BSTR; - hr = pPropBag->Read(L"FriendlyName", &varName, 0); + hr = pPropBag->Read(L"FriendlyName", &varName, nullptr); if (SUCCEEDED(hr)) { output = QString::fromWCharArray(varName.bstrVal); } diff --git a/src/plugins/directshow/camera/dsvideodevicecontrol.h b/src/plugins/directshow/camera/dsvideodevicecontrol.h index 7a7a0af1e..24a5b61a1 100644 --- a/src/plugins/directshow/camera/dsvideodevicecontrol.h +++ b/src/plugins/directshow/camera/dsvideodevicecontrol.h @@ -48,13 +48,13 @@ class DSCameraSession; //QTM_USE_NAMESPACE -typedef QPair<QByteArray, QString> DSVideoDeviceInfo; +using DSVideoDeviceInfo = QPair<QByteArray, QString>; class DSVideoDeviceControl : public QVideoDeviceSelectorControl { Q_OBJECT public: - DSVideoDeviceControl(QObject *parent = 0); + DSVideoDeviceControl(QObject *parent = nullptr); int deviceCount() const override; QString deviceName(int index) const override; diff --git a/src/plugins/directshow/camera/dsvideorenderer.cpp b/src/plugins/directshow/camera/dsvideorenderer.cpp index bf0aa2684..cde63af65 100644 --- a/src/plugins/directshow/camera/dsvideorenderer.cpp +++ b/src/plugins/directshow/camera/dsvideorenderer.cpp @@ -45,7 +45,6 @@ QT_BEGIN_NAMESPACE DSVideoRendererControl::DSVideoRendererControl(DSCameraSession* session, QObject *parent) :QVideoRendererControl(parent), - m_surface(0), m_session(session) { } diff --git a/src/plugins/directshow/camera/dsvideorenderer.h b/src/plugins/directshow/camera/dsvideorenderer.h index 3a4570b4c..a6a1f8103 100644 --- a/src/plugins/directshow/camera/dsvideorenderer.h +++ b/src/plugins/directshow/camera/dsvideorenderer.h @@ -50,7 +50,7 @@ class DSVideoRendererControl : public QVideoRendererControl { Q_OBJECT public: - DSVideoRendererControl(DSCameraSession* session, QObject *parent = 0); + DSVideoRendererControl(DSCameraSession* session, QObject *parent = nullptr); ~DSVideoRendererControl() override; QAbstractVideoSurface *surface() const override; @@ -59,7 +59,7 @@ public: void setSession(DSCameraSession* session); private: - QAbstractVideoSurface* m_surface; + QAbstractVideoSurface* m_surface = nullptr; DSCameraSession* m_session; }; |