summaryrefslogtreecommitdiffstats
path: root/src/plugins/directshow
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-09-06 16:18:05 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-09-06 16:18:05 +0200
commit858e9b66e53440317bb8d41d7c342f7d28f13788 (patch)
tree1e4d8c2835fcecb60540af96a9667aadce35c766 /src/plugins/directshow
parent72536fa39c71b32f963322a8aa0c1dee320102fc (diff)
parent871a097d0c6e8203f82b398e21dcfd8151bdae27 (diff)
Merge remote-tracking branch 'origin/5.12' into dev
Diffstat (limited to 'src/plugins/directshow')
-rw-r--r--src/plugins/directshow/camera/directshowcameraexposurecontrol.cpp18
-rw-r--r--src/plugins/directshow/camera/dscameracontrol.cpp4
-rw-r--r--src/plugins/directshow/camera/dscameracontrol.h19
-rw-r--r--src/plugins/directshow/camera/dscameraimageprocessingcontrol.cpp4
-rw-r--r--src/plugins/directshow/camera/dscameraimageprocessingcontrol.h11
-rw-r--r--src/plugins/directshow/camera/dscameraservice.h6
-rw-r--r--src/plugins/directshow/camera/dscamerasession.cpp52
-rw-r--r--src/plugins/directshow/camera/dscamerasession.h30
-rw-r--r--src/plugins/directshow/camera/dscameraviewfindersettingscontrol.h6
-rw-r--r--src/plugins/directshow/camera/dsimagecapturecontrol.cpp4
-rw-r--r--src/plugins/directshow/camera/dsimagecapturecontrol.h12
-rw-r--r--src/plugins/directshow/camera/dsvideodevicecontrol.cpp3
-rw-r--r--src/plugins/directshow/camera/dsvideodevicecontrol.h12
-rw-r--r--src/plugins/directshow/camera/dsvideorenderer.cpp4
-rw-r--r--src/plugins/directshow/camera/dsvideorenderer.h9
-rw-r--r--src/plugins/directshow/common/directshowaudioprobecontrol.h2
-rw-r--r--src/plugins/directshow/common/directshowbasefilter.cpp75
-rw-r--r--src/plugins/directshow/common/directshowbasefilter.h26
-rw-r--r--src/plugins/directshow/common/directshoweventloop.cpp1
-rw-r--r--src/plugins/directshow/common/directshoweventloop.h4
-rw-r--r--src/plugins/directshow/common/directshowmediatype.cpp35
-rw-r--r--src/plugins/directshow/common/directshowmediatype.h4
-rw-r--r--src/plugins/directshow/common/directshowmediatypeenum.cpp34
-rw-r--r--src/plugins/directshow/common/directshowpin.cpp109
-rw-r--r--src/plugins/directshow/common/directshowpin.h57
-rw-r--r--src/plugins/directshow/common/directshowpinenum.cpp35
-rw-r--r--src/plugins/directshow/common/directshowsamplegrabber.cpp13
-rw-r--r--src/plugins/directshow/common/directshowvideobuffer.h8
-rw-r--r--src/plugins/directshow/dsserviceplugin.cpp7
-rw-r--r--src/plugins/directshow/dsserviceplugin.h12
-rw-r--r--src/plugins/directshow/player/directshowaudioendpointcontrol.h12
-rw-r--r--src/plugins/directshow/player/directshowioreader.cpp218
-rw-r--r--src/plugins/directshow/player/directshowioreader.h27
-rw-r--r--src/plugins/directshow/player/directshowiosource.cpp218
-rw-r--r--src/plugins/directshow/player/directshowiosource.h64
-rw-r--r--src/plugins/directshow/player/directshowmetadatacontrol.cpp96
-rw-r--r--src/plugins/directshow/player/directshowmetadatacontrol.h10
-rw-r--r--src/plugins/directshow/player/directshowplayercontrol.h48
-rw-r--r--src/plugins/directshow/player/directshowplayerservice.cpp13
-rw-r--r--src/plugins/directshow/player/directshowplayerservice.h8
-rw-r--r--src/plugins/directshow/player/directshowvideorenderercontrol.h6
-rw-r--r--src/plugins/directshow/player/videosurfacefilter.cpp32
-rw-r--r--src/plugins/directshow/player/vmr9videowindowcontrol.h38
43 files changed, 639 insertions, 767 deletions
diff --git a/src/plugins/directshow/camera/directshowcameraexposurecontrol.cpp b/src/plugins/directshow/camera/directshowcameraexposurecontrol.cpp
index 7ece366ea..6f138450c 100644
--- a/src/plugins/directshow/camera/directshowcameraexposurecontrol.cpp
+++ b/src/plugins/directshow/camera/directshowcameraexposurecontrol.cpp
@@ -68,13 +68,16 @@ DirectShowCameraExposureControl::DirectShowCameraExposureControl(DSCameraSession
bool DirectShowCameraExposureControl::isParameterSupported(QCameraExposureControl::ExposureParameter parameter) const
{
- if (parameter == ShutterSpeed)
- return (m_shutterSpeedValues.caps & CameraControl_Flags_Manual);
- if (parameter == Aperture)
+ switch (parameter) {
+ case QCameraExposureControl::Aperture:
return (m_apertureValues.caps & CameraControl_Flags_Manual);
- if (parameter == ExposureMode)
+ case QCameraExposureControl::ShutterSpeed:
+ return (m_shutterSpeedValues.caps & CameraControl_Flags_Manual);
+ case QCameraExposureControl::ExposureMode:
return true;
-
+ default:
+ break;
+ }
return false;
}
@@ -156,10 +159,9 @@ bool DirectShowCameraExposureControl::setValue(QCameraExposureControl::ExposureP
if (parameter == ShutterSpeed) {
m_requestedShutterSpeed = newValue;
return setShutterSpeed(cameraControl, m_requestedShutterSpeed);
- } else {
- m_requestedAperture = newValue;
- return setAperture(cameraControl, m_requestedAperture);
}
+ m_requestedAperture = newValue;
+ return setAperture(cameraControl, m_requestedAperture);
}
if (parameter == ExposureMode) {
diff --git a/src/plugins/directshow/camera/dscameracontrol.cpp b/src/plugins/directshow/camera/dscameracontrol.cpp
index 7a2b46a2c..8dc0d4136 100644
--- a/src/plugins/directshow/camera/dscameracontrol.cpp
+++ b/src/plugins/directshow/camera/dscameracontrol.cpp
@@ -61,9 +61,7 @@ DSCameraControl::DSCameraControl(QObject *parent)
this, &DSCameraControl::error);
}
-DSCameraControl::~DSCameraControl()
-{
-}
+DSCameraControl::~DSCameraControl() = default;
void DSCameraControl::setState(QCamera::State state)
{
diff --git a/src/plugins/directshow/camera/dscameracontrol.h b/src/plugins/directshow/camera/dscameracontrol.h
index 2f50db560..b9fb2766d 100644
--- a/src/plugins/directshow/camera/dscameracontrol.h
+++ b/src/plugins/directshow/camera/dscameracontrol.h
@@ -45,7 +45,6 @@
QT_BEGIN_NAMESPACE
-class DSCameraService;
class DSCameraSession;
@@ -54,22 +53,22 @@ class DSCameraControl : public QCameraControl
Q_OBJECT
public:
DSCameraControl(QObject *parent = 0);
- ~DSCameraControl();
+ ~DSCameraControl() override;
- QCamera::State state() const { return m_state; }
+ QCamera::State state() const override { return m_state; }
- QCamera::CaptureModes captureMode() const { return m_captureMode; }
- void setCaptureMode(QCamera::CaptureModes mode);
+ QCamera::CaptureModes captureMode() const override { return m_captureMode; }
+ void setCaptureMode(QCamera::CaptureModes mode) override;
- void setState(QCamera::State state);
+ void setState(QCamera::State state) override;
- QCamera::Status status() const;
- bool isCaptureModeSupported(QCamera::CaptureModes mode) const;
- bool canChangeProperty(PropertyChangeType /* changeType */, QCamera::Status /* status */) const {return false; }
+ QCamera::Status status() const override;
+ bool isCaptureModeSupported(QCamera::CaptureModes mode) const override;
+ bool canChangeProperty(PropertyChangeType, QCamera::Status) const override
+ { return false; }
private:
DSCameraSession *m_session;
- DSCameraService *m_service;
QCamera::State m_state;
QCamera::CaptureModes m_captureMode;
};
diff --git a/src/plugins/directshow/camera/dscameraimageprocessingcontrol.cpp b/src/plugins/directshow/camera/dscameraimageprocessingcontrol.cpp
index cbecb8b86..6d0f45ae9 100644
--- a/src/plugins/directshow/camera/dscameraimageprocessingcontrol.cpp
+++ b/src/plugins/directshow/camera/dscameraimageprocessingcontrol.cpp
@@ -48,9 +48,7 @@ DSCameraImageProcessingControl::DSCameraImageProcessingControl(DSCameraSession *
{
}
-DSCameraImageProcessingControl::~DSCameraImageProcessingControl()
-{
-}
+DSCameraImageProcessingControl::~DSCameraImageProcessingControl() = default;
bool DSCameraImageProcessingControl::isParameterSupported(
QCameraImageProcessingControl::ProcessingParameter parameter) const
diff --git a/src/plugins/directshow/camera/dscameraimageprocessingcontrol.h b/src/plugins/directshow/camera/dscameraimageprocessingcontrol.h
index 86ecce720..48f1b6b2c 100644
--- a/src/plugins/directshow/camera/dscameraimageprocessingcontrol.h
+++ b/src/plugins/directshow/camera/dscameraimageprocessingcontrol.h
@@ -53,12 +53,13 @@ class DSCameraImageProcessingControl : public QCameraImageProcessingControl
public:
DSCameraImageProcessingControl(DSCameraSession *session);
- virtual ~DSCameraImageProcessingControl();
+ ~DSCameraImageProcessingControl() override;
- bool isParameterSupported(ProcessingParameter) const;
- bool isParameterValueSupported(ProcessingParameter parameter, const QVariant &value) const;
- QVariant parameter(ProcessingParameter parameter) const;
- void setParameter(ProcessingParameter parameter, const QVariant &value);
+ bool isParameterSupported(ProcessingParameter) const override;
+ bool isParameterValueSupported(ProcessingParameter parameter,
+ const QVariant &value) const override;
+ QVariant parameter(ProcessingParameter parameter) const override;
+ void setParameter(ProcessingParameter parameter, const QVariant &value) override;
private:
DSCameraSession *m_session;
diff --git a/src/plugins/directshow/camera/dscameraservice.h b/src/plugins/directshow/camera/dscameraservice.h
index f444eeb51..2e45edcce 100644
--- a/src/plugins/directshow/camera/dscameraservice.h
+++ b/src/plugins/directshow/camera/dscameraservice.h
@@ -64,10 +64,10 @@ class DSCameraService : public QMediaService
public:
DSCameraService(QObject *parent = 0);
- ~DSCameraService();
+ ~DSCameraService() override;
- virtual QMediaControl* requestControl(const char *name);
- virtual void releaseControl(QMediaControl *control);
+ QMediaControl* requestControl(const char *name) override;
+ void releaseControl(QMediaControl *control) override;
private:
DSCameraSession *m_session;
diff --git a/src/plugins/directshow/camera/dscamerasession.cpp b/src/plugins/directshow/camera/dscamerasession.cpp
index c309359ed..bf81262d6 100644
--- a/src/plugins/directshow/camera/dscamerasession.cpp
+++ b/src/plugins/directshow/camera/dscamerasession.cpp
@@ -130,30 +130,28 @@ void DSCameraSession::setViewfinderSettings(const QCameraViewfinderSettings &set
qreal DSCameraSession::scaledImageProcessingParameterValue(
const ImageProcessingParameterInfo &sourceValueInfo)
{
- if (sourceValueInfo.currentValue == sourceValueInfo.defaultValue) {
+ if (sourceValueInfo.currentValue == sourceValueInfo.defaultValue)
return 0.0f;
- } else if (sourceValueInfo.currentValue < sourceValueInfo.defaultValue) {
+ if (sourceValueInfo.currentValue < sourceValueInfo.defaultValue) {
return ((sourceValueInfo.currentValue - sourceValueInfo.minimumValue)
/ qreal(sourceValueInfo.defaultValue - sourceValueInfo.minimumValue))
+ (-1.0f);
- } else {
- return ((sourceValueInfo.currentValue - sourceValueInfo.defaultValue)
- / qreal(sourceValueInfo.maximumValue - sourceValueInfo.defaultValue));
}
+ return ((sourceValueInfo.currentValue - sourceValueInfo.defaultValue)
+ / qreal(sourceValueInfo.maximumValue - sourceValueInfo.defaultValue));
}
qint32 DSCameraSession::sourceImageProcessingParameterValue(
qreal scaledValue, const ImageProcessingParameterInfo &valueRange)
{
- if (qFuzzyIsNull(scaledValue)) {
+ if (qFuzzyIsNull(scaledValue))
return valueRange.defaultValue;
- } else if (scaledValue < 0.0f) {
+ if (scaledValue < 0.0f) {
return ((scaledValue - (-1.0f)) * (valueRange.defaultValue - valueRange.minimumValue))
+ valueRange.minimumValue;
- } else {
- return (scaledValue * (valueRange.maximumValue - valueRange.defaultValue))
- + valueRange.defaultValue;
}
+ return (scaledValue * (valueRange.maximumValue - valueRange.defaultValue))
+ + valueRange.defaultValue;
}
static QCameraImageProcessingControl::ProcessingParameter searchRelatedResultingParameter(
@@ -482,7 +480,7 @@ bool DSCameraSession::startPreview()
if (m_surface)
m_surface->start(m_previewSurfaceFormat);
- hr = m_filterGraph->QueryInterface(IID_IMediaControl, (void**)&pControl);
+ hr = m_filterGraph->QueryInterface(IID_IMediaControl, reinterpret_cast<void**>(&pControl));
if (FAILED(hr)) {
errorString = tr("Failed to get stream control");
goto failed;
@@ -520,7 +518,8 @@ bool DSCameraSession::stopPreview()
QString errorString;
IMediaControl* pControl = 0;
- HRESULT hr = m_filterGraph->QueryInterface(IID_IMediaControl, (void**)&pControl);
+ HRESULT hr = m_filterGraph->QueryInterface(IID_IMediaControl,
+ reinterpret_cast<void**>(&pControl));
if (FAILED(hr)) {
errorString = tr("Failed to get stream control");
goto failed;
@@ -714,7 +713,7 @@ bool DSCameraSession::createFilterGraph()
// Create the filter graph
hr = CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC,
- IID_IGraphBuilder, (void**)&m_filterGraph);
+ IID_IGraphBuilder, reinterpret_cast<void**>(*&m_filterGraph));
if (FAILED(hr)) {
errorString = tr("Failed to create filter graph");
goto failed;
@@ -722,7 +721,8 @@ bool DSCameraSession::createFilterGraph()
// Create the capture graph builder
hr = CoCreateInstance(CLSID_CaptureGraphBuilder2, NULL, CLSCTX_INPROC,
- IID_ICaptureGraphBuilder2, (void**)&m_graphBuilder);
+ IID_ICaptureGraphBuilder2,
+ reinterpret_cast<void**>(&m_graphBuilder));
if (FAILED(hr)) {
errorString = tr("Failed to create graph builder");
goto failed;
@@ -756,7 +756,8 @@ bool DSCameraSession::createFilterGraph()
QString output = QString::fromWCharArray(strName);
mallocInterface->Free(strName);
if (m_sourceDeviceName.contains(output)) {
- hr = pMoniker->BindToObject(0, 0, IID_IBaseFilter, (void**)&m_sourceFilter);
+ hr = pMoniker->BindToObject(nullptr, nullptr, IID_IBaseFilter,
+ reinterpret_cast<void**>(&m_sourceFilter));
if (SUCCEEDED(hr)) {
pMoniker->Release();
break;
@@ -775,7 +776,8 @@ bool DSCameraSession::createFilterGraph()
while (pEnum->Next(1, &pMoniker, NULL) == S_OK) {
IPropertyBag *pPropBag = 0;
- hr = pMoniker->BindToStorage(0, 0, IID_IPropertyBag, (void**)(&pPropBag));
+ hr = pMoniker->BindToStorage(nullptr, nullptr, IID_IPropertyBag,
+ reinterpret_cast<void**>(&pPropBag));
if (FAILED(hr)) {
pMoniker->Release();
continue; // Don't panic yet
@@ -783,7 +785,8 @@ bool DSCameraSession::createFilterGraph()
// No need to get the description, just grab it
- hr = pMoniker->BindToObject(0, 0, IID_IBaseFilter, (void**)&m_sourceFilter);
+ hr = pMoniker->BindToObject(0, 0, IID_IBaseFilter,
+ reinterpret_cast<void**>(&m_sourceFilter));
pPropBag->Release();
pMoniker->Release();
if (SUCCEEDED(hr)) {
@@ -887,10 +890,9 @@ bool DSCameraSession::configurePreviewFormat()
HRESULT hr;
IAMStreamConfig* pConfig = 0;
- hr = m_graphBuilder->FindInterface(&PIN_CATEGORY_CAPTURE,
- &MEDIATYPE_Video,
- m_sourceFilter,
- IID_IAMStreamConfig, (void**)&pConfig);
+ hr = m_graphBuilder->FindInterface(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video,
+ m_sourceFilter, IID_IAMStreamConfig,
+ reinterpret_cast<void**>(&pConfig));
if (FAILED(hr)) {
qWarning() << "Failed to get config for capture device";
return false;
@@ -1064,8 +1066,8 @@ void DSCameraSession::updateSourceCapabilities()
IAMVideoControl *pVideoControl = 0;
hr = m_graphBuilder->FindInterface(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video,
- m_sourceFilter,
- IID_IAMVideoControl, (void**)&pVideoControl);
+ m_sourceFilter, IID_IAMVideoControl,
+ reinterpret_cast<void**>(&pVideoControl));
if (FAILED(hr)) {
qWarning() << "Failed to get the video control";
} else {
@@ -1091,8 +1093,8 @@ void DSCameraSession::updateSourceCapabilities()
}
hr = m_graphBuilder->FindInterface(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video,
- m_sourceFilter,
- IID_IAMStreamConfig, (void**)&pConfig);
+ m_sourceFilter, IID_IAMStreamConfig,
+ reinterpret_cast<void**>(&pConfig));
if (FAILED(hr)) {
qWarning() << "failed to get config on capture device";
return;
diff --git a/src/plugins/directshow/camera/dscamerasession.h b/src/plugins/directshow/camera/dscamerasession.h
index 433db8994..ac861ae58 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();
+ ~DSCameraSession() override;
QCamera::Status status() const { return m_status; }
@@ -145,25 +145,15 @@ private Q_SLOTS:
void updateReadyForCapture();
private:
- struct ImageProcessingParameterInfo {
- ImageProcessingParameterInfo()
- : minimumValue(0)
- , maximumValue(0)
- , defaultValue(0)
- , currentValue(0)
- , capsFlags(0)
- , hasBeenExplicitlySet(false)
- , videoProcAmpProperty(VideoProcAmp_Brightness)
- {
- }
-
- LONG minimumValue;
- LONG maximumValue;
- LONG defaultValue;
- LONG currentValue;
- LONG capsFlags;
- bool hasBeenExplicitlySet;
- VideoProcAmpProperty videoProcAmpProperty;
+ struct ImageProcessingParameterInfo
+ {
+ LONG minimumValue = 0;
+ LONG maximumValue = 0;
+ LONG defaultValue = 0;
+ LONG currentValue = 0;
+ LONG capsFlags = 0;
+ bool hasBeenExplicitlySet = false;
+ VideoProcAmpProperty videoProcAmpProperty = VideoProcAmp_Brightness;
};
void setStatus(QCamera::Status status);
diff --git a/src/plugins/directshow/camera/dscameraviewfindersettingscontrol.h b/src/plugins/directshow/camera/dscameraviewfindersettingscontrol.h
index 5ab3c2d93..a2b646edf 100644
--- a/src/plugins/directshow/camera/dscameraviewfindersettingscontrol.h
+++ b/src/plugins/directshow/camera/dscameraviewfindersettingscontrol.h
@@ -51,10 +51,10 @@ class DSCameraViewfinderSettingsControl : public QCameraViewfinderSettingsContro
public:
DSCameraViewfinderSettingsControl(DSCameraSession *session);
- QList<QCameraViewfinderSettings> supportedViewfinderSettings() const;
+ QList<QCameraViewfinderSettings> supportedViewfinderSettings() const override;
- QCameraViewfinderSettings viewfinderSettings() const;
- void setViewfinderSettings(const QCameraViewfinderSettings &settings);
+ QCameraViewfinderSettings viewfinderSettings() const override;
+ void setViewfinderSettings(const QCameraViewfinderSettings &settings) override;
private:
DSCameraSession *m_session;
diff --git a/src/plugins/directshow/camera/dsimagecapturecontrol.cpp b/src/plugins/directshow/camera/dsimagecapturecontrol.cpp
index c92ce98e1..2a6a794d5 100644
--- a/src/plugins/directshow/camera/dsimagecapturecontrol.cpp
+++ b/src/plugins/directshow/camera/dsimagecapturecontrol.cpp
@@ -61,9 +61,7 @@ DSImageCaptureControl::DSImageCaptureControl(DSCameraSession *session)
this, &DSImageCaptureControl::imageAvailable);
}
-DSImageCaptureControl::~DSImageCaptureControl()
-{
-}
+DSImageCaptureControl::~DSImageCaptureControl() = default;
bool DSImageCaptureControl::isReadyForCapture() const
{
diff --git a/src/plugins/directshow/camera/dsimagecapturecontrol.h b/src/plugins/directshow/camera/dsimagecapturecontrol.h
index 38b832dc4..c619de1a1 100644
--- a/src/plugins/directshow/camera/dsimagecapturecontrol.h
+++ b/src/plugins/directshow/camera/dsimagecapturecontrol.h
@@ -50,15 +50,15 @@ class DSImageCaptureControl : public QCameraImageCaptureControl
Q_OBJECT
public:
DSImageCaptureControl(DSCameraSession *session);
- ~DSImageCaptureControl();
+ ~DSImageCaptureControl() override;
- bool isReadyForCapture() const;
- int capture(const QString &fileName);
+ bool isReadyForCapture() const override;
+ int capture(const QString &fileName) override;
- QCameraImageCapture::DriveMode driveMode() const;
- void setDriveMode(QCameraImageCapture::DriveMode mode);
+ QCameraImageCapture::DriveMode driveMode() const override;
+ void setDriveMode(QCameraImageCapture::DriveMode mode) override;
- void cancelCapture() {}
+ void cancelCapture() override {}
private:
DSCameraSession *m_session;
diff --git a/src/plugins/directshow/camera/dsvideodevicecontrol.cpp b/src/plugins/directshow/camera/dsvideodevicecontrol.cpp
index 26410fc3a..2c1fab764 100644
--- a/src/plugins/directshow/camera/dsvideodevicecontrol.cpp
+++ b/src/plugins/directshow/camera/dsvideodevicecontrol.cpp
@@ -156,7 +156,8 @@ void DSVideoDeviceControl::updateDevices()
devInfo.first = output.toUtf8();
IPropertyBag *pPropBag;
- hr = pMoniker->BindToStorage(0, 0, IID_IPropertyBag, (void**)(&pPropBag));
+ hr = pMoniker->BindToStorage(nullptr, nullptr, IID_IPropertyBag,
+ reinterpret_cast<void**>(&pPropBag));
if (SUCCEEDED(hr)) {
// Find the description
VARIANT varName;
diff --git a/src/plugins/directshow/camera/dsvideodevicecontrol.h b/src/plugins/directshow/camera/dsvideodevicecontrol.h
index 09f46aff0..7a7a0af1e 100644
--- a/src/plugins/directshow/camera/dsvideodevicecontrol.h
+++ b/src/plugins/directshow/camera/dsvideodevicecontrol.h
@@ -56,16 +56,16 @@ class DSVideoDeviceControl : public QVideoDeviceSelectorControl
public:
DSVideoDeviceControl(QObject *parent = 0);
- int deviceCount() const;
- QString deviceName(int index) const;
- QString deviceDescription(int index) const;
- int defaultDevice() const;
- int selectedDevice() const;
+ int deviceCount() const override;
+ QString deviceName(int index) const override;
+ QString deviceDescription(int index) const override;
+ int defaultDevice() const override;
+ int selectedDevice() const override;
static const QList<DSVideoDeviceInfo> &availableDevices();
public Q_SLOTS:
- void setSelectedDevice(int index);
+ void setSelectedDevice(int index) override;
private:
static void updateDevices();
diff --git a/src/plugins/directshow/camera/dsvideorenderer.cpp b/src/plugins/directshow/camera/dsvideorenderer.cpp
index 4eacb5456..bf0aa2684 100644
--- a/src/plugins/directshow/camera/dsvideorenderer.cpp
+++ b/src/plugins/directshow/camera/dsvideorenderer.cpp
@@ -50,9 +50,7 @@ DSVideoRendererControl::DSVideoRendererControl(DSCameraSession* session, QObject
{
}
-DSVideoRendererControl::~DSVideoRendererControl()
-{
-}
+DSVideoRendererControl::~DSVideoRendererControl() = default;
QAbstractVideoSurface* DSVideoRendererControl::surface() const
{
diff --git a/src/plugins/directshow/camera/dsvideorenderer.h b/src/plugins/directshow/camera/dsvideorenderer.h
index 7618f0ca6..3a4570b4c 100644
--- a/src/plugins/directshow/camera/dsvideorenderer.h
+++ b/src/plugins/directshow/camera/dsvideorenderer.h
@@ -43,8 +43,6 @@
#include <qvideorenderercontrol.h>
#include "dscamerasession.h"
-class CameraFormatConverter;
-
QT_BEGIN_NAMESPACE
@@ -53,17 +51,16 @@ class DSVideoRendererControl : public QVideoRendererControl
Q_OBJECT
public:
DSVideoRendererControl(DSCameraSession* session, QObject *parent = 0);
- ~DSVideoRendererControl();
+ ~DSVideoRendererControl() override;
- QAbstractVideoSurface *surface() const;
- void setSurface(QAbstractVideoSurface *surface);
+ QAbstractVideoSurface *surface() const override;
+ void setSurface(QAbstractVideoSurface *surface) override;
void setSession(DSCameraSession* session);
private:
QAbstractVideoSurface* m_surface;
DSCameraSession* m_session;
- CameraFormatConverter* converter;
};
QT_END_NAMESPACE
diff --git a/src/plugins/directshow/common/directshowaudioprobecontrol.h b/src/plugins/directshow/common/directshowaudioprobecontrol.h
index 553bd1178..034e958fd 100644
--- a/src/plugins/directshow/common/directshowaudioprobecontrol.h
+++ b/src/plugins/directshow/common/directshowaudioprobecontrol.h
@@ -51,7 +51,7 @@ class DirectShowAudioProbeControl : public QMediaAudioProbeControl
Q_OBJECT
public:
explicit DirectShowAudioProbeControl(QObject *p = nullptr);
- ~DirectShowAudioProbeControl();
+ ~DirectShowAudioProbeControl() override;
bool ref() { return m_ref.ref(); }
bool deref() { return m_ref.deref(); }
diff --git a/src/plugins/directshow/common/directshowbasefilter.cpp b/src/plugins/directshow/common/directshowbasefilter.cpp
index 1e45eea51..2792dc3c6 100644
--- a/src/plugins/directshow/common/directshowbasefilter.cpp
+++ b/src/plugins/directshow/common/directshowbasefilter.cpp
@@ -172,51 +172,43 @@ HRESULT DirectShowBaseFilter::SetSyncSource(IReferenceClock *pClock)
HRESULT DirectShowBaseFilter::GetSyncSource(IReferenceClock **ppClock)
{
- if (!ppClock) {
+ if (!ppClock)
return E_POINTER;
- } else {
- if (!m_clock) {
- *ppClock = 0;
-
- return S_FALSE;
- } else {
- m_clock->AddRef();
- *ppClock = m_clock;
-
- return S_OK;
- }
+ if (!m_clock) {
+ *ppClock = nullptr;
+ return S_FALSE;
}
+ m_clock->AddRef();
+ *ppClock = m_clock;
+ return S_OK;
}
HRESULT DirectShowBaseFilter::EnumPins(IEnumPins **ppEnum)
{
- if (!ppEnum) {
+ if (!ppEnum)
return E_POINTER;
- } else {
- *ppEnum = new DirectShowPinEnum(this);
- return S_OK;
- }
+ *ppEnum = new DirectShowPinEnum(this);
+ return S_OK;
}
HRESULT DirectShowBaseFilter::FindPin(LPCWSTR Id, IPin **ppPin)
{
- if (!ppPin || !Id) {
+ if (!ppPin || !Id)
return E_POINTER;
- } else {
- QMutexLocker locker(&m_mutex);
- const QList<DirectShowPin *> pinList = pins();
- for (DirectShowPin *pin : pinList) {
- if (QString::fromWCharArray(Id) == pin->name()) {
- pin->AddRef();
- *ppPin = pin;
- return S_OK;
- }
- }
- *ppPin = 0;
- return VFW_E_NOT_FOUND;
+ QMutexLocker locker(&m_mutex);
+ const QList<DirectShowPin *> pinList = pins();
+ for (DirectShowPin *pin : pinList) {
+ if (pin->name() == QStringView(Id)) {
+ pin->AddRef();
+ *ppPin = pin;
+ return S_OK;
+ }
}
+
+ *ppPin = 0;
+ return VFW_E_NOT_FOUND;
}
HRESULT DirectShowBaseFilter::JoinFilterGraph(IFilterGraph *pGraph, LPCWSTR pName)
@@ -237,24 +229,23 @@ HRESULT DirectShowBaseFilter::JoinFilterGraph(IFilterGraph *pGraph, LPCWSTR pNam
HRESULT DirectShowBaseFilter::QueryFilterInfo(FILTER_INFO *pInfo)
{
- if (!pInfo) {
+ if (!pInfo)
return E_POINTER;
- } else {
- QString name = m_filterName;
- if (name.length() >= MAX_FILTER_NAME)
- name.truncate(MAX_FILTER_NAME - 1);
+ QString name = m_filterName;
- int length = name.toWCharArray(pInfo->achName);
- pInfo->achName[length] = '\0';
+ if (name.length() >= MAX_FILTER_NAME)
+ name.truncate(MAX_FILTER_NAME - 1);
- if (m_graph)
- m_graph->AddRef();
+ int length = name.toWCharArray(pInfo->achName);
+ pInfo->achName[length] = '\0';
- pInfo->pGraph = m_graph;
+ if (m_graph)
+ m_graph->AddRef();
- return S_OK;
- }
+ pInfo->pGraph = m_graph;
+
+ return S_OK;
}
HRESULT DirectShowBaseFilter::QueryVendorInfo(LPWSTR *pVendorInfo)
diff --git a/src/plugins/directshow/common/directshowbasefilter.h b/src/plugins/directshow/common/directshowbasefilter.h
index 21ca648eb..fe78f96b2 100644
--- a/src/plugins/directshow/common/directshowbasefilter.h
+++ b/src/plugins/directshow/common/directshowbasefilter.h
@@ -48,7 +48,7 @@ class DirectShowBaseFilter : public IBaseFilter
{
public:
DirectShowBaseFilter();
- ~DirectShowBaseFilter();
+ virtual ~DirectShowBaseFilter();
FILTER_STATE state() const { return m_state; }
HRESULT NotifyEvent(long eventCode, LONG_PTR eventParam1, LONG_PTR eventParam2);
@@ -56,26 +56,26 @@ public:
virtual QList<DirectShowPin *> pins() = 0;
// IPersist
- STDMETHODIMP GetClassID(CLSID *pClassID);
+ STDMETHODIMP GetClassID(CLSID *pClassID) override;
// IMediaFilter
- STDMETHODIMP Run(REFERENCE_TIME tStart);
- STDMETHODIMP Pause();
- STDMETHODIMP Stop();
+ STDMETHODIMP Run(REFERENCE_TIME tStart) override;
+ STDMETHODIMP Pause() override;
+ STDMETHODIMP Stop() override;
- STDMETHODIMP GetState(DWORD dwMilliSecsTimeout, FILTER_STATE *pState);
+ STDMETHODIMP GetState(DWORD dwMilliSecsTimeout, FILTER_STATE *pState) override;
- STDMETHODIMP SetSyncSource(IReferenceClock *pClock);
- STDMETHODIMP GetSyncSource(IReferenceClock **ppClock);
+ STDMETHODIMP SetSyncSource(IReferenceClock *pClock) override;
+ STDMETHODIMP GetSyncSource(IReferenceClock **ppClock) override;
// IBaseFilter
- STDMETHODIMP EnumPins(IEnumPins **ppEnum);
- STDMETHODIMP FindPin(LPCWSTR Id, IPin **ppPin);
+ STDMETHODIMP EnumPins(IEnumPins **ppEnum) override;
+ STDMETHODIMP FindPin(LPCWSTR Id, IPin **ppPin) override;
- STDMETHODIMP JoinFilterGraph(IFilterGraph *pGraph, LPCWSTR pName);
+ STDMETHODIMP JoinFilterGraph(IFilterGraph *pGraph, LPCWSTR pName) override;
- STDMETHODIMP QueryFilterInfo(FILTER_INFO *pInfo);
- STDMETHODIMP QueryVendorInfo(LPWSTR *pVendorInfo);
+ STDMETHODIMP QueryFilterInfo(FILTER_INFO *pInfo) override;
+ STDMETHODIMP QueryVendorInfo(LPWSTR *pVendorInfo) override;
protected:
QMutex m_mutex;
diff --git a/src/plugins/directshow/common/directshoweventloop.cpp b/src/plugins/directshow/common/directshoweventloop.cpp
index ef85c0429..fbc7b8cee 100644
--- a/src/plugins/directshow/common/directshoweventloop.cpp
+++ b/src/plugins/directshow/common/directshoweventloop.cpp
@@ -46,6 +46,7 @@ QT_BEGIN_NAMESPACE
class DirectShowPostedEvent
{
+ Q_DISABLE_COPY(DirectShowPostedEvent)
public:
DirectShowPostedEvent(QObject *receiver, QEvent *event)
: receiver(receiver)
diff --git a/src/plugins/directshow/common/directshoweventloop.h b/src/plugins/directshow/common/directshoweventloop.h
index 609e53134..a29274b7b 100644
--- a/src/plugins/directshow/common/directshoweventloop.h
+++ b/src/plugins/directshow/common/directshoweventloop.h
@@ -55,7 +55,7 @@ class DirectShowEventLoop : public QObject
Q_OBJECT
public:
DirectShowEventLoop(QObject *parent = 0);
- ~DirectShowEventLoop();
+ ~DirectShowEventLoop() override;
void wait(QMutex *mutex);
void wake();
@@ -63,7 +63,7 @@ public:
void postEvent(QObject *object, QEvent *event);
protected:
- void customEvent(QEvent *event);
+ void customEvent(QEvent *event) override;
private:
void processEvents();
diff --git a/src/plugins/directshow/common/directshowmediatype.cpp b/src/plugins/directshow/common/directshowmediatype.cpp
index 65882806c..fe86e0204 100644
--- a/src/plugins/directshow/common/directshowmediatype.cpp
+++ b/src/plugins/directshow/common/directshowmediatype.cpp
@@ -98,7 +98,7 @@ DirectShowMediaType::DirectShowMediaType(const DirectShowMediaType &other)
copy(&mediaType, &other.mediaType);
}
-DirectShowMediaType::DirectShowMediaType(DirectShowMediaType &&other)
+DirectShowMediaType::DirectShowMediaType(DirectShowMediaType &&other) noexcept
: DirectShowMediaType()
{
move(&mediaType, other.mediaType);
@@ -110,7 +110,7 @@ DirectShowMediaType &DirectShowMediaType::operator=(const DirectShowMediaType &o
return *this;
}
-DirectShowMediaType &DirectShowMediaType::operator=(DirectShowMediaType &&other)
+DirectShowMediaType &DirectShowMediaType::operator=(DirectShowMediaType &&other) noexcept
{
move(&mediaType, other.mediaType);
return *this;
@@ -222,11 +222,10 @@ void DirectShowMediaType::clear(AM_MEDIA_TYPE &type)
GUID DirectShowMediaType::convertPixelFormat(QVideoFrame::PixelFormat format)
{
- const int count = sizeof(qt_typeLookup) / sizeof(TypeLookup);
-
- for (int i = 0; i < count; ++i)
- if (qt_typeLookup[i].pixelFormat == format)
- return qt_typeLookup[i].mediaType;
+ for (const auto &lookupType : qt_typeLookup) {
+ if (lookupType.pixelFormat == format)
+ return lookupType.mediaType;
+ }
return MEDIASUBTYPE_None;
}
@@ -236,16 +235,14 @@ QVideoSurfaceFormat DirectShowMediaType::videoFormatFromType(const AM_MEDIA_TYPE
if (!type)
return QVideoSurfaceFormat();
- const int count = sizeof(qt_typeLookup) / sizeof(TypeLookup);
-
- for (int i = 0; i < count; ++i) {
- if (IsEqualGUID(qt_typeLookup[i].mediaType, type->subtype) && type->cbFormat > 0) {
+ for (const auto &lookupType : qt_typeLookup) {
+ if (IsEqualGUID(lookupType.mediaType, type->subtype) && type->cbFormat > 0) {
if (IsEqualGUID(type->formattype, FORMAT_VideoInfo)) {
VIDEOINFOHEADER *header = reinterpret_cast<VIDEOINFOHEADER *>(type->pbFormat);
QVideoSurfaceFormat format(
QSize(header->bmiHeader.biWidth, qAbs(header->bmiHeader.biHeight)),
- qt_typeLookup[i].pixelFormat);
+ lookupType.pixelFormat);
if (header->AvgTimePerFrame > 0)
format.setFrameRate(10000 /header->AvgTimePerFrame);
@@ -253,12 +250,13 @@ QVideoSurfaceFormat DirectShowMediaType::videoFormatFromType(const AM_MEDIA_TYPE
format.setScanLineDirection(scanLineDirection(format.pixelFormat(), header->bmiHeader));
return format;
- } else if (IsEqualGUID(type->formattype, FORMAT_VideoInfo2)) {
+ }
+ if (IsEqualGUID(type->formattype, FORMAT_VideoInfo2)) {
VIDEOINFOHEADER2 *header = reinterpret_cast<VIDEOINFOHEADER2 *>(type->pbFormat);
QVideoSurfaceFormat format(
QSize(header->bmiHeader.biWidth, qAbs(header->bmiHeader.biHeight)),
- qt_typeLookup[i].pixelFormat);
+ lookupType.pixelFormat);
if (header->AvgTimePerFrame > 0)
format.setFrameRate(10000 / header->AvgTimePerFrame);
@@ -277,12 +275,9 @@ QVideoFrame::PixelFormat DirectShowMediaType::pixelFormatFromType(const AM_MEDIA
if (!type)
return QVideoFrame::Format_Invalid;
- const int count = sizeof(qt_typeLookup) / sizeof(TypeLookup);
-
- for (int i = 0; i < count; ++i) {
- if (IsEqualGUID(qt_typeLookup[i].mediaType, type->subtype)) {
- return qt_typeLookup[i].pixelFormat;
- }
+ for (const auto &lookupType : qt_typeLookup) {
+ if (IsEqualGUID(lookupType.mediaType, type->subtype))
+ return lookupType.pixelFormat;
}
return QVideoFrame::Format_Invalid;
diff --git a/src/plugins/directshow/common/directshowmediatype.h b/src/plugins/directshow/common/directshowmediatype.h
index 7f495f3b2..ee44329a5 100644
--- a/src/plugins/directshow/common/directshowmediatype.h
+++ b/src/plugins/directshow/common/directshowmediatype.h
@@ -54,13 +54,13 @@ class DirectShowMediaType
public:
DirectShowMediaType();
DirectShowMediaType(const DirectShowMediaType &other);
- DirectShowMediaType(DirectShowMediaType &&other);
+ DirectShowMediaType(DirectShowMediaType &&other) noexcept;
explicit DirectShowMediaType(const AM_MEDIA_TYPE &type);
explicit DirectShowMediaType(AM_MEDIA_TYPE &&type);
~DirectShowMediaType() { clear(mediaType); }
DirectShowMediaType &operator =(const DirectShowMediaType &other);
- DirectShowMediaType &operator =(DirectShowMediaType &&other);
+ DirectShowMediaType &operator =(DirectShowMediaType &&other) noexcept;
void clear() { clear(mediaType); }
diff --git a/src/plugins/directshow/common/directshowmediatypeenum.cpp b/src/plugins/directshow/common/directshowmediatypeenum.cpp
index a6afcd5f1..10623a246 100644
--- a/src/plugins/directshow/common/directshowmediatypeenum.cpp
+++ b/src/plugins/directshow/common/directshowmediatypeenum.cpp
@@ -78,21 +78,20 @@ HRESULT DirectShowMediaTypeEnum::QueryInterface(REFIID riid, void **ppv)
HRESULT DirectShowMediaTypeEnum::Next(ULONG cMediaTypes, AM_MEDIA_TYPE **ppMediaTypes, ULONG *pcFetched)
{
- if (ppMediaTypes && (pcFetched || cMediaTypes == 1)) {
- ULONG count = qBound<ULONG>(0, cMediaTypes, m_mediaTypes.count() - m_index);
-
- for (ULONG i = 0; i < count; ++i, ++m_index) {
- ppMediaTypes[i] = reinterpret_cast<AM_MEDIA_TYPE *>(CoTaskMemAlloc(sizeof(AM_MEDIA_TYPE)));
- DirectShowMediaType::copyToUninitialized(ppMediaTypes[i], &m_mediaTypes.at(m_index));
- }
+ if (!ppMediaTypes || (!pcFetched && cMediaTypes != 1))
+ return E_POINTER;
- if (pcFetched)
- *pcFetched = count;
+ ULONG count = qBound<ULONG>(0, cMediaTypes, m_mediaTypes.count() - m_index);
- return count == cMediaTypes ? S_OK : S_FALSE;
- } else {
- return E_POINTER;
+ for (ULONG i = 0; i < count; ++i, ++m_index) {
+ ppMediaTypes[i] = reinterpret_cast<AM_MEDIA_TYPE *>(CoTaskMemAlloc(sizeof(AM_MEDIA_TYPE)));
+ DirectShowMediaType::copyToUninitialized(ppMediaTypes[i], &m_mediaTypes.at(m_index));
}
+
+ if (pcFetched)
+ *pcFetched = count;
+
+ return count == cMediaTypes ? S_OK : S_FALSE;
}
HRESULT DirectShowMediaTypeEnum::Skip(ULONG cMediaTypes)
@@ -109,14 +108,9 @@ HRESULT DirectShowMediaTypeEnum::Reset()
HRESULT DirectShowMediaTypeEnum::Clone(IEnumMediaTypes **ppEnum)
{
- if (ppEnum) {
- if (m_pin)
- *ppEnum = new DirectShowMediaTypeEnum(m_pin);
- else
- *ppEnum = new DirectShowMediaTypeEnum(m_mediaTypes);
- return S_OK;
- } else {
+ if (!ppEnum)
return E_POINTER;
- }
+ *ppEnum = m_pin ? new DirectShowMediaTypeEnum(m_pin) : new DirectShowMediaTypeEnum(m_mediaTypes);
+ return S_OK;
}
diff --git a/src/plugins/directshow/common/directshowpin.cpp b/src/plugins/directshow/common/directshowpin.cpp
index 65b54b8e9..508a9b21d 100644
--- a/src/plugins/directshow/common/directshowpin.cpp
+++ b/src/plugins/directshow/common/directshowpin.cpp
@@ -56,10 +56,7 @@ DirectShowPin::DirectShowPin(DirectShowBaseFilter *filter, const QString &name,
{
}
-DirectShowPin::~DirectShowPin()
-{
-
-}
+DirectShowPin::~DirectShowPin() = default;
HRESULT DirectShowPin::Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt)
{
@@ -233,70 +230,60 @@ HRESULT DirectShowPin::Disconnect()
HRESULT DirectShowPin::ConnectedTo(IPin **ppPin)
{
- if (!ppPin) {
+ if (!ppPin)
return E_POINTER;
- } else {
- QMutexLocker locker(&m_mutex);
-
- if (!m_peerPin) {
- *ppPin = 0;
- return VFW_E_NOT_CONNECTED;
- } else {
- m_peerPin->AddRef();
- *ppPin = m_peerPin;
- return S_OK;
- }
+
+ QMutexLocker locker(&m_mutex);
+ if (!m_peerPin) {
+ *ppPin = 0;
+ return VFW_E_NOT_CONNECTED;
}
+ m_peerPin->AddRef();
+ *ppPin = m_peerPin;
+ return S_OK;
}
HRESULT DirectShowPin::ConnectionMediaType(AM_MEDIA_TYPE *pmt)
{
- if (!pmt) {
+ if (!pmt)
return E_POINTER;
- } else {
- QMutexLocker locker(&m_mutex);
- if (!m_peerPin) {
- DirectShowMediaType::init(pmt);
- return VFW_E_NOT_CONNECTED;
- } else {
- DirectShowMediaType::copy(pmt, &m_mediaType);
- return S_OK;
- }
+ QMutexLocker locker(&m_mutex);
+ if (!m_peerPin) {
+ DirectShowMediaType::init(pmt);
+ return VFW_E_NOT_CONNECTED;
}
+ DirectShowMediaType::copy(pmt, &m_mediaType);
+ return S_OK;
}
HRESULT DirectShowPin::QueryPinInfo(PIN_INFO *pInfo)
{
- if (!pInfo) {
+ if (!pInfo)
return E_POINTER;
- } else {
- pInfo->pFilter = m_filter;
- if (m_filter) {
- m_filter->AddRef();
- }
- pInfo->dir = m_direction;
- QString name = m_name;
- if (name.length() >= MAX_PIN_NAME)
- name.truncate(MAX_PIN_NAME - 1);
- int length = name.toWCharArray(pInfo->achName);
- pInfo->achName[length] = '\0';
+ pInfo->pFilter = m_filter;
+ if (m_filter)
+ m_filter->AddRef();
+ pInfo->dir = m_direction;
- return S_OK;
- }
+ QString name = m_name;
+ if (name.length() >= MAX_PIN_NAME)
+ name.truncate(MAX_PIN_NAME - 1);
+ int length = name.toWCharArray(pInfo->achName);
+ pInfo->achName[length] = '\0';
+
+ return S_OK;
}
HRESULT DirectShowPin::QueryId(LPWSTR *Id)
{
- if (!Id) {
+ if (!Id)
return E_POINTER;
- } else {
- const int bytes = (m_name.length() + 1) * 2;
- *Id = static_cast<LPWSTR>(::CoTaskMemAlloc(bytes));
- ::memcpy(*Id, m_name.utf16(), bytes);
- return S_OK;
- }
+ const int bytes = (m_name.length() + 1) * 2;
+ *Id = static_cast<LPWSTR>(::CoTaskMemAlloc(bytes));
+ ::memcpy(*Id, m_name.utf16(), bytes);
+ return S_OK;
}
HRESULT DirectShowPin::QueryAccept(const AM_MEDIA_TYPE *pmt)
@@ -312,12 +299,10 @@ HRESULT DirectShowPin::QueryAccept(const AM_MEDIA_TYPE *pmt)
HRESULT DirectShowPin::EnumMediaTypes(IEnumMediaTypes **ppEnum)
{
- if (!ppEnum) {
+ if (!ppEnum)
return E_POINTER;
- } else {
- *ppEnum = new DirectShowMediaTypeEnum(this);
- return S_OK;
- }
+ *ppEnum = new DirectShowMediaTypeEnum(this);
+ return S_OK;
}
HRESULT DirectShowPin::QueryInternalConnections(IPin **apPin, ULONG *nPin)
@@ -352,12 +337,10 @@ HRESULT DirectShowPin::NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, d
HRESULT DirectShowPin::QueryDirection(PIN_DIRECTION *pPinDir)
{
- if (!pPinDir) {
+ if (!pPinDir)
return E_POINTER;
- } else {
- *pPinDir = m_direction;
- return S_OK;
- }
+ *pPinDir = m_direction;
+ return S_OK;
}
QList<DirectShowMediaType> DirectShowPin::supportedMediaTypes()
@@ -403,9 +386,7 @@ DirectShowOutputPin::DirectShowOutputPin(DirectShowBaseFilter *filter, const QSt
}
-DirectShowOutputPin::~DirectShowOutputPin()
-{
-}
+DirectShowOutputPin::~DirectShowOutputPin() = default;
HRESULT DirectShowOutputPin::completeConnection(IPin *pin)
{
@@ -511,10 +492,7 @@ DirectShowInputPin::DirectShowInputPin(DirectShowBaseFilter *filter, const QStri
ZeroMemory(&m_sampleProperties, sizeof(m_sampleProperties));
}
-DirectShowInputPin::~DirectShowInputPin()
-{
-
-}
+DirectShowInputPin::~DirectShowInputPin() = default;
HRESULT DirectShowInputPin::connectionEnded()
{
@@ -630,7 +608,8 @@ HRESULT DirectShowInputPin::Receive(IMediaSample *pSample)
IMediaSample2 *sample2;
if (SUCCEEDED(pSample->QueryInterface(IID_PPV_ARGS(&sample2)))) {
- hr = sample2->GetProperties(sizeof(m_sampleProperties), (PBYTE)&m_sampleProperties);
+ hr = sample2->GetProperties(sizeof(m_sampleProperties),
+ reinterpret_cast<PBYTE>(&m_sampleProperties));
sample2->Release();
if (FAILED(hr))
return hr;
diff --git a/src/plugins/directshow/common/directshowpin.h b/src/plugins/directshow/common/directshowpin.h
index 9598cf525..5e513d002 100644
--- a/src/plugins/directshow/common/directshowpin.h
+++ b/src/plugins/directshow/common/directshowpin.h
@@ -68,30 +68,30 @@ public:
virtual HRESULT setActive(bool active);
// IPin
- STDMETHODIMP Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt);
- STDMETHODIMP ReceiveConnection(IPin *pConnector, const AM_MEDIA_TYPE *pmt);
- STDMETHODIMP Disconnect();
- STDMETHODIMP ConnectedTo(IPin **ppPin);
+ STDMETHODIMP Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt) override;
+ STDMETHODIMP ReceiveConnection(IPin *pConnector, const AM_MEDIA_TYPE *pmt) override;
+ STDMETHODIMP Disconnect() override;
+ STDMETHODIMP ConnectedTo(IPin **ppPin) override;
- STDMETHODIMP ConnectionMediaType(AM_MEDIA_TYPE *pmt);
+ STDMETHODIMP ConnectionMediaType(AM_MEDIA_TYPE *pmt) override;
- STDMETHODIMP QueryPinInfo(PIN_INFO *pInfo);
- STDMETHODIMP QueryId(LPWSTR *Id);
+ STDMETHODIMP QueryPinInfo(PIN_INFO *pInfo) override;
+ STDMETHODIMP QueryId(LPWSTR *Id) override;
- STDMETHODIMP QueryAccept(const AM_MEDIA_TYPE *pmt);
+ STDMETHODIMP QueryAccept(const AM_MEDIA_TYPE *pmt) override;
- STDMETHODIMP EnumMediaTypes(IEnumMediaTypes **ppEnum);
+ STDMETHODIMP EnumMediaTypes(IEnumMediaTypes **ppEnum) override;
- STDMETHODIMP QueryInternalConnections(IPin **apPin, ULONG *nPin);
+ STDMETHODIMP QueryInternalConnections(IPin **apPin, ULONG *nPin) override;
- STDMETHODIMP EndOfStream();
+ STDMETHODIMP EndOfStream() override;
- STDMETHODIMP BeginFlush();
- STDMETHODIMP EndFlush();
+ STDMETHODIMP BeginFlush() override;
+ STDMETHODIMP EndFlush() override;
- STDMETHODIMP NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate);
+ STDMETHODIMP NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate) override;
- STDMETHODIMP QueryDirection(PIN_DIRECTION *pPinDir);
+ STDMETHODIMP QueryDirection(PIN_DIRECTION *pPinDir) override;
protected:
DirectShowPin(DirectShowBaseFilter *filter, const QString &name, PIN_DIRECTION direction);
@@ -140,27 +140,28 @@ class DirectShowInputPin : public DirectShowPin
, public IMemInputPin
{
public:
- virtual ~DirectShowInputPin();
+ ~DirectShowInputPin() override;
const AM_SAMPLE2_PROPERTIES *currentSampleProperties() const { return &m_sampleProperties; }
// DirectShowPin
- HRESULT connectionEnded();
- HRESULT setActive(bool active);
+ HRESULT connectionEnded() override;
+ HRESULT setActive(bool active) override;
// IPin
- STDMETHODIMP EndOfStream();
- STDMETHODIMP BeginFlush();
- STDMETHODIMP EndFlush();
+ STDMETHODIMP EndOfStream() override;
+ STDMETHODIMP BeginFlush() override;
+ STDMETHODIMP EndFlush() override;
// IMemInputPin
- STDMETHODIMP GetAllocator(IMemAllocator **ppAllocator);
- STDMETHODIMP NotifyAllocator(IMemAllocator *pAllocator, BOOL bReadOnly);
- STDMETHODIMP GetAllocatorRequirements(ALLOCATOR_PROPERTIES *pProps);
-
- STDMETHODIMP Receive(IMediaSample *pSample);
- STDMETHODIMP ReceiveMultiple(IMediaSample **pSamples, long nSamples, long *nSamplesProcessed);
- STDMETHODIMP ReceiveCanBlock();
+ STDMETHODIMP GetAllocator(IMemAllocator **ppAllocator) override;
+ STDMETHODIMP NotifyAllocator(IMemAllocator *pAllocator, BOOL bReadOnly) override;
+ STDMETHODIMP GetAllocatorRequirements(ALLOCATOR_PROPERTIES *pProps) override;
+
+ STDMETHODIMP Receive(IMediaSample *pSample) override;
+ STDMETHODIMP ReceiveMultiple(IMediaSample **pSamples, long nSamples,
+ long *nSamplesProcessed) override;
+ STDMETHODIMP ReceiveCanBlock() override;
protected:
DirectShowInputPin(DirectShowBaseFilter *filter, const QString &name);
diff --git a/src/plugins/directshow/common/directshowpinenum.cpp b/src/plugins/directshow/common/directshowpinenum.cpp
index e0ab58d19..20fa93d6e 100644
--- a/src/plugins/directshow/common/directshowpinenum.cpp
+++ b/src/plugins/directshow/common/directshowpinenum.cpp
@@ -87,21 +87,20 @@ HRESULT DirectShowPinEnum::QueryInterface(REFIID riid, void **ppv)
HRESULT DirectShowPinEnum::Next(ULONG cPins, IPin **ppPins, ULONG *pcFetched)
{
- if (ppPins && (pcFetched || cPins == 1)) {
- ULONG count = qBound<ULONG>(0, cPins, m_pins.count() - m_index);
-
- for (ULONG i = 0; i < count; ++i, ++m_index) {
- ppPins[i] = m_pins.at(m_index);
- ppPins[i]->AddRef();
- }
+ if (!ppPins || (!pcFetched && cPins != 1))
+ return E_POINTER;
- if (pcFetched)
- *pcFetched = count;
+ ULONG count = qBound<ULONG>(0, cPins, m_pins.count() - m_index);
- return count == cPins ? S_OK : S_FALSE;
- } else {
- return E_POINTER;
+ for (ULONG i = 0; i < count; ++i, ++m_index) {
+ ppPins[i] = m_pins.at(m_index);
+ ppPins[i]->AddRef();
}
+
+ if (pcFetched)
+ *pcFetched = count;
+
+ return count == cPins ? S_OK : S_FALSE;
}
HRESULT DirectShowPinEnum::Skip(ULONG cPins)
@@ -120,16 +119,10 @@ HRESULT DirectShowPinEnum::Reset()
HRESULT DirectShowPinEnum::Clone(IEnumPins **ppEnum)
{
- if (ppEnum) {
- if (m_filter)
- *ppEnum = new DirectShowPinEnum(m_filter);
- else
- *ppEnum = new DirectShowPinEnum(m_pins);
-
- return S_OK;
- } else {
+ if (!ppEnum)
return E_POINTER;
- }
+ *ppEnum = m_filter ? new DirectShowPinEnum(m_filter) : new DirectShowPinEnum(m_pins);
+ return S_OK;
}
QT_END_NAMESPACE
diff --git a/src/plugins/directshow/common/directshowsamplegrabber.cpp b/src/plugins/directshow/common/directshowsamplegrabber.cpp
index fb95370ca..fec59b538 100644
--- a/src/plugins/directshow/common/directshowsamplegrabber.cpp
+++ b/src/plugins/directshow/common/directshowsamplegrabber.cpp
@@ -51,20 +51,21 @@ static const CLSID cLSID_SampleGrabber = { 0xC1F400A0, 0x3F08, 0x11d3, { 0x9F, 0
class SampleGrabberCallbackPrivate : public ISampleGrabberCB
{
+ Q_DISABLE_COPY(SampleGrabberCallbackPrivate)
public:
explicit SampleGrabberCallbackPrivate(DirectShowSampleGrabber *grabber)
: m_ref(1)
, m_grabber(grabber)
{ }
- virtual ~SampleGrabberCallbackPrivate() { }
+ virtual ~SampleGrabberCallbackPrivate() = default;
- STDMETHODIMP_(ULONG) AddRef()
+ STDMETHODIMP_(ULONG) AddRef() override
{
return InterlockedIncrement(&m_ref);
}
- STDMETHODIMP_(ULONG) Release()
+ STDMETHODIMP_(ULONG) Release() override
{
ULONG ref = InterlockedDecrement(&m_ref);
if (ref == 0)
@@ -72,7 +73,7 @@ public:
return ref;
}
- STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject)
+ STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject) override
{
if (NULL == ppvObject)
return E_POINTER;
@@ -89,7 +90,7 @@ public:
return E_NOTIMPL;
}
- STDMETHODIMP SampleCB(double time, IMediaSample *mediaSample)
+ STDMETHODIMP SampleCB(double time, IMediaSample *mediaSample) override
{
if (m_grabber)
Q_EMIT m_grabber->sampleAvailable(time, mediaSample);
@@ -97,7 +98,7 @@ public:
return S_OK;
}
- STDMETHODIMP BufferCB(double time, BYTE *buffer, long bufferLen)
+ STDMETHODIMP BufferCB(double time, BYTE *buffer, long bufferLen) override
{
if (m_grabber) {
// Deep copy, the data might be modified or freed after the callback returns
diff --git a/src/plugins/directshow/common/directshowvideobuffer.h b/src/plugins/directshow/common/directshowvideobuffer.h
index 85e02b53d..a85a3ca34 100644
--- a/src/plugins/directshow/common/directshowvideobuffer.h
+++ b/src/plugins/directshow/common/directshowvideobuffer.h
@@ -50,14 +50,14 @@ class DirectShowVideoBuffer : public QAbstractVideoBuffer
{
public:
DirectShowVideoBuffer(IMediaSample *sample, int bytesPerLine);
- ~DirectShowVideoBuffer();
+ ~DirectShowVideoBuffer() override;
IMediaSample *sample() { return m_sample; }
- uchar *map(MapMode mode, int *numBytes, int *bytesPerLine);
- void unmap();
+ uchar *map(MapMode mode, int *numBytes, int *bytesPerLine) override;
+ void unmap() override;
- MapMode mapMode() const;
+ MapMode mapMode() const override;
private:
IMediaSample *m_sample;
diff --git a/src/plugins/directshow/dsserviceplugin.cpp b/src/plugins/directshow/dsserviceplugin.cpp
index cb4f0cdf9..64b30f561 100644
--- a/src/plugins/directshow/dsserviceplugin.cpp
+++ b/src/plugins/directshow/dsserviceplugin.cpp
@@ -114,10 +114,9 @@ void DSServicePlugin::release(QMediaService *service)
QMediaServiceProviderHint::Features DSServicePlugin::supportedFeatures(
const QByteArray &service) const
{
- if (service == Q_MEDIASERVICE_MEDIAPLAYER)
- return QMediaServiceProviderHint::StreamPlayback | QMediaServiceProviderHint::VideoSurface;
- else
- return QMediaServiceProviderHint::Features();
+ return service == Q_MEDIASERVICE_MEDIAPLAYER
+ ? (QMediaServiceProviderHint::StreamPlayback | QMediaServiceProviderHint::VideoSurface)
+ : QMediaServiceProviderHint::Features();
}
QByteArray DSServicePlugin::defaultDevice(const QByteArray &service) const
diff --git a/src/plugins/directshow/dsserviceplugin.h b/src/plugins/directshow/dsserviceplugin.h
index f57262e37..2e87058c3 100644
--- a/src/plugins/directshow/dsserviceplugin.h
+++ b/src/plugins/directshow/dsserviceplugin.h
@@ -64,14 +64,14 @@ class DSServicePlugin
#endif
public:
- QMediaService* create(QString const& key);
- void release(QMediaService *service);
+ QMediaService* create(QString const& key) override;
+ void release(QMediaService *service) override;
- QMediaServiceProviderHint::Features supportedFeatures(const QByteArray &service) const;
+ QMediaServiceProviderHint::Features supportedFeatures(const QByteArray &service) const override;
- QByteArray defaultDevice(const QByteArray &service) const;
- QList<QByteArray> devices(const QByteArray &service) const;
- QString deviceDescription(const QByteArray &service, const QByteArray &device);
+ QByteArray defaultDevice(const QByteArray &service) const override;
+ QList<QByteArray> devices(const QByteArray &service) const override;
+ QString deviceDescription(const QByteArray &service, const QByteArray &device) override;
};
QT_END_NAMESPACE
diff --git a/src/plugins/directshow/player/directshowaudioendpointcontrol.h b/src/plugins/directshow/player/directshowaudioendpointcontrol.h
index e0e6a1545..b6f8a6724 100644
--- a/src/plugins/directshow/player/directshowaudioendpointcontrol.h
+++ b/src/plugins/directshow/player/directshowaudioendpointcontrol.h
@@ -53,16 +53,16 @@ class DirectShowAudioEndpointControl : public QAudioOutputSelectorControl
Q_OBJECT
public:
DirectShowAudioEndpointControl(DirectShowPlayerService *service, QObject *parent = 0);
- ~DirectShowAudioEndpointControl();
+ ~DirectShowAudioEndpointControl() override;
- QList<QString> availableOutputs() const;
+ QList<QString> availableOutputs() const override;
- QString outputDescription(const QString &name) const;
+ QString outputDescription(const QString &name) const override;
- QString defaultOutput() const;
- QString activeOutput() const;
+ QString defaultOutput() const override;
+ QString activeOutput() const override;
- void setActiveOutput(const QString& name);
+ void setActiveOutput(const QString& name) override;
private:
void updateEndpoints();
diff --git a/src/plugins/directshow/player/directshowioreader.cpp b/src/plugins/directshow/player/directshowioreader.cpp
index 7f3303633..3482cee02 100644
--- a/src/plugins/directshow/player/directshowioreader.cpp
+++ b/src/plugins/directshow/player/directshowioreader.cpp
@@ -123,76 +123,65 @@ ULONG DirectShowIOReader::Release()
HRESULT DirectShowIOReader::RequestAllocator(
IMemAllocator *pPreferred, ALLOCATOR_PROPERTIES *pProps, IMemAllocator **ppActual)
{
- if (!ppActual || !pProps) {
+ if (!ppActual || !pProps)
return E_POINTER;
- } else {
- ALLOCATOR_PROPERTIES actualProperties;
- if (pProps->cbAlign == 0)
- pProps->cbAlign = 1;
+ ALLOCATOR_PROPERTIES actualProperties;
- if (pPreferred && pPreferred->SetProperties(pProps, &actualProperties) == S_OK) {
- pPreferred->AddRef();
+ if (pProps->cbAlign == 0)
+ pProps->cbAlign = 1;
- *ppActual = pPreferred;
+ if (pPreferred && pPreferred->SetProperties(pProps, &actualProperties) == S_OK) {
+ pPreferred->AddRef();
- m_source->setAllocator(*ppActual);
+ *ppActual = pPreferred;
+ m_source->setAllocator(*ppActual);
+ return S_OK;
+ }
+ *ppActual = com_new<IMemAllocator>(CLSID_MemoryAllocator);
+ if (*ppActual) {
+ if ((*ppActual)->SetProperties(pProps, &actualProperties) == S_OK) {
+ m_source->setAllocator(*ppActual);
return S_OK;
- } else {
- *ppActual = com_new<IMemAllocator>(CLSID_MemoryAllocator);
-
- if (*ppActual) {
- if ((*ppActual)->SetProperties(pProps, &actualProperties) != S_OK) {
- (*ppActual)->Release();
- } else {
- m_source->setAllocator(*ppActual);
-
- return S_OK;
- }
- }
}
- ppActual = 0;
-
- return E_FAIL;
+ (*ppActual)->Release();
}
+ ppActual = nullptr;
+ return E_FAIL;
}
HRESULT DirectShowIOReader::Request(IMediaSample *pSample, DWORD_PTR dwUser)
{
QMutexLocker locker(&m_mutex);
- if (!pSample) {
+ if (!pSample)
return E_POINTER;
- } else if (m_flushing) {
+ if (m_flushing)
return VFW_E_WRONG_STATE;
- } else {
- REFERENCE_TIME startTime = 0;
- REFERENCE_TIME endTime = 0;
- BYTE *buffer;
- if (pSample->GetTime(&startTime, &endTime) != S_OK
- || pSample->GetPointer(&buffer) != S_OK) {
- return VFW_E_SAMPLE_TIME_NOT_SET;
- } else {
- LONGLONG position = startTime / 10000000;
- LONG length = (endTime - startTime) / 10000000;
-
- DirectShowSampleRequest *request = new DirectShowSampleRequest(
- pSample, dwUser, position, length, buffer);
+ REFERENCE_TIME startTime = 0;
+ REFERENCE_TIME endTime = 0;
+ BYTE *buffer;
- if (m_pendingTail) {
- m_pendingTail->next = request;
- } else {
- m_pendingHead = request;
+ if (pSample->GetTime(&startTime, &endTime) != S_OK
+ || pSample->GetPointer(&buffer) != S_OK) {
+ return VFW_E_SAMPLE_TIME_NOT_SET;
+ }
+ LONGLONG position = startTime / 10000000;
+ LONG length = (endTime - startTime) / 10000000;
- m_loop->postEvent(this, new QEvent(QEvent::User));
- }
- m_pendingTail = request;
+ auto request = new DirectShowSampleRequest(pSample, dwUser, position, length, buffer);
- return S_OK;
- }
+ if (m_pendingTail) {
+ m_pendingTail->next = request;
+ } else {
+ m_pendingHead = request;
+ m_loop->postEvent(this, new QEvent(QEvent::User));
}
+ m_pendingTail = request;
+
+ return S_OK;
}
HRESULT DirectShowIOReader::WaitForNext(
@@ -220,7 +209,8 @@ HRESULT DirectShowIOReader::WaitForNext(
delete request;
return hr;
- } else if (m_flushing) {
+ }
+ if (m_flushing) {
*ppSample = 0;
*pdwUser = 0;
@@ -236,90 +226,80 @@ HRESULT DirectShowIOReader::WaitForNext(
HRESULT DirectShowIOReader::SyncReadAligned(IMediaSample *pSample)
{
- if (!pSample) {
+ if (!pSample)
return E_POINTER;
- } else {
- REFERENCE_TIME startTime = 0;
- REFERENCE_TIME endTime = 0;
- BYTE *buffer;
- if (pSample->GetTime(&startTime, &endTime) != S_OK
- || pSample->GetPointer(&buffer) != S_OK) {
- return VFW_E_SAMPLE_TIME_NOT_SET;
- } else {
- LONGLONG position = startTime / 10000000;
- LONG length = (endTime - startTime) / 10000000;
+ REFERENCE_TIME startTime = 0;
+ REFERENCE_TIME endTime = 0;
+ BYTE *buffer;
- QMutexLocker locker(&m_mutex);
+ if (pSample->GetTime(&startTime, &endTime) != S_OK
+ || pSample->GetPointer(&buffer) != S_OK) {
+ return VFW_E_SAMPLE_TIME_NOT_SET;
+ }
+ LONGLONG position = startTime / 10000000;
+ LONG length = (endTime - startTime) / 10000000;
- if (thread() == QThread::currentThread()) {
- qint64 bytesRead = 0;
+ QMutexLocker locker(&m_mutex);
- HRESULT hr = blockingRead(position, length, buffer, &bytesRead);
+ if (thread() == QThread::currentThread()) {
+ qint64 bytesRead = 0;
- if (SUCCEEDED(hr))
- pSample->SetActualDataLength(bytesRead);
+ HRESULT hr = blockingRead(position, length, buffer, &bytesRead);
+ if (SUCCEEDED(hr))
+ pSample->SetActualDataLength(bytesRead);
- return hr;
- } else {
- m_synchronousPosition = position;
- m_synchronousLength = length;
- m_synchronousBuffer = buffer;
+ return hr;
+ }
+ m_synchronousPosition = position;
+ m_synchronousLength = length;
+ m_synchronousBuffer = buffer;
- m_loop->postEvent(this, new QEvent(QEvent::User));
+ m_loop->postEvent(this, new QEvent(QEvent::User));
- m_wait.wait(&m_mutex);
+ m_wait.wait(&m_mutex);
- m_synchronousBuffer = 0;
+ m_synchronousBuffer = nullptr;
- if (SUCCEEDED(m_synchronousResult))
- pSample->SetActualDataLength(m_synchronousBytesRead);
+ if (SUCCEEDED(m_synchronousResult))
+ pSample->SetActualDataLength(m_synchronousBytesRead);
- return m_synchronousResult;
- }
- }
- }
+ return m_synchronousResult;
}
HRESULT DirectShowIOReader::SyncRead(LONGLONG llPosition, LONG lLength, BYTE *pBuffer)
{
- if (!pBuffer) {
+ if (!pBuffer)
return E_POINTER;
- } else {
- if (thread() == QThread::currentThread()) {
- qint64 bytesRead;
- return blockingRead(llPosition, lLength, pBuffer, &bytesRead);
- } else {
- QMutexLocker locker(&m_mutex);
+ if (thread() == QThread::currentThread()) {
+ qint64 bytesRead;
+ return blockingRead(llPosition, lLength, pBuffer, &bytesRead);
+ }
+ QMutexLocker locker(&m_mutex);
- m_synchronousPosition = llPosition;
- m_synchronousLength = lLength;
- m_synchronousBuffer = pBuffer;
+ m_synchronousPosition = llPosition;
+ m_synchronousLength = lLength;
+ m_synchronousBuffer = pBuffer;
- m_loop->postEvent(this, new QEvent(QEvent::User));
+ m_loop->postEvent(this, new QEvent(QEvent::User));
- m_wait.wait(&m_mutex);
+ m_wait.wait(&m_mutex);
- m_synchronousBuffer = 0;
+ m_synchronousBuffer = nullptr;
- return m_synchronousResult;
- }
- }
+ return m_synchronousResult;
}
HRESULT DirectShowIOReader::Length(LONGLONG *pTotal, LONGLONG *pAvailable)
{
- if (!pTotal || !pAvailable) {
+ if (!pTotal || !pAvailable)
return E_POINTER;
- } else {
- QMutexLocker locker(&m_mutex);
- *pTotal = m_totalLength;
- *pAvailable = m_availableLength;
-
- return S_OK;
- }
+ QMutexLocker locker(&m_mutex);
+ *pTotal = m_totalLength;
+ *pAvailable = m_availableLength;
+ return S_OK;
}
@@ -432,9 +412,8 @@ HRESULT DirectShowIOReader::blockingRead(
::memset(buffer + *bytesRead, 0, length - *bytesRead);
return S_FALSE;
- } else {
- return S_OK;
}
+ return S_OK;
}
bool DirectShowIOReader::nonBlockingRead(
@@ -447,30 +426,29 @@ bool DirectShowIOReader::nonBlockingRead(
*result = S_FALSE;
return true;
- } else if (m_device->bytesAvailable() + m_device->pos() >= maxSize) {
+ }
+ if (m_device->bytesAvailable() + m_device->pos() >= maxSize) {
if (m_device->pos() != position && !m_device->seek(position)) {
*bytesRead = 0;
*result = S_FALSE;
return true;
- } else {
- const qint64 maxBytes = qMin<qint64>(length, m_device->bytesAvailable());
-
- *bytesRead = m_device->read(reinterpret_cast<char *>(buffer), maxBytes);
+ }
+ const qint64 maxBytes = qMin<qint64>(length, m_device->bytesAvailable());
- if (*bytesRead != length) {
- ::memset(buffer + *bytesRead, 0, length - *bytesRead);
+ *bytesRead = m_device->read(reinterpret_cast<char *>(buffer), maxBytes);
- *result = S_FALSE;
- } else {
- *result = S_OK;
- }
+ if (*bytesRead != length) {
+ ::memset(buffer + *bytesRead, 0, length - *bytesRead);
- return true;
+ *result = S_FALSE;
+ } else {
+ *result = S_OK;
}
- } else {
- return false;
+
+ return true;
}
+ return false;
}
void DirectShowIOReader::flushRequests()
diff --git a/src/plugins/directshow/player/directshowioreader.h b/src/plugins/directshow/player/directshowioreader.h
index 2d62c0b95..550990648 100644
--- a/src/plugins/directshow/player/directshowioreader.h
+++ b/src/plugins/directshow/player/directshowioreader.h
@@ -58,33 +58,34 @@ class DirectShowIOReader : public QObject, public IAsyncReader
Q_OBJECT
public:
DirectShowIOReader(QIODevice *device, DirectShowIOSource *source, DirectShowEventLoop *loop);
- ~DirectShowIOReader();
+ ~DirectShowIOReader() override;
// IUnknown
- HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject);
- ULONG STDMETHODCALLTYPE AddRef();
- ULONG STDMETHODCALLTYPE Release();
+ HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject) override;
+ ULONG STDMETHODCALLTYPE AddRef() override;
+ ULONG STDMETHODCALLTYPE Release() override;
// IAsyncReader
HRESULT STDMETHODCALLTYPE RequestAllocator(
- IMemAllocator *pPreferred, ALLOCATOR_PROPERTIES *pProps, IMemAllocator **ppActual);
+ IMemAllocator *pPreferred, ALLOCATOR_PROPERTIES *pProps,
+ IMemAllocator **ppActual) override;
- HRESULT STDMETHODCALLTYPE Request(IMediaSample *pSample, DWORD_PTR dwUser);
+ HRESULT STDMETHODCALLTYPE Request(IMediaSample *pSample, DWORD_PTR dwUser) override;
HRESULT STDMETHODCALLTYPE WaitForNext(
- DWORD dwTimeout, IMediaSample **ppSample, DWORD_PTR *pdwUser);
+ DWORD dwTimeout, IMediaSample **ppSample, DWORD_PTR *pdwUser) override;
- HRESULT STDMETHODCALLTYPE SyncReadAligned(IMediaSample *pSample);
+ HRESULT STDMETHODCALLTYPE SyncReadAligned(IMediaSample *pSample) override;
- HRESULT STDMETHODCALLTYPE SyncRead(LONGLONG llPosition, LONG lLength, BYTE *pBuffer);
+ HRESULT STDMETHODCALLTYPE SyncRead(LONGLONG llPosition, LONG lLength, BYTE *pBuffer) override;
- HRESULT STDMETHODCALLTYPE Length(LONGLONG *pTotal, LONGLONG *pAvailable);
+ HRESULT STDMETHODCALLTYPE Length(LONGLONG *pTotal, LONGLONG *pAvailable) override;
- HRESULT STDMETHODCALLTYPE BeginFlush();
- HRESULT STDMETHODCALLTYPE EndFlush();
+ HRESULT STDMETHODCALLTYPE BeginFlush() override;
+ HRESULT STDMETHODCALLTYPE EndFlush() override;
protected:
- void customEvent(QEvent *event);
+ void customEvent(QEvent *event) override;
private Q_SLOTS:
void readyRead();
diff --git a/src/plugins/directshow/player/directshowiosource.cpp b/src/plugins/directshow/player/directshowiosource.cpp
index b3aa3fab9..31e9a1300 100644
--- a/src/plugins/directshow/player/directshowiosource.cpp
+++ b/src/plugins/directshow/player/directshowiosource.cpp
@@ -99,8 +99,8 @@ DirectShowIOSource::DirectShowIOSource(DirectShowEventLoop *loop)
static const int count = sizeof(directshow_subtypes) / sizeof(GUID);
- for (int i = 0; i < count; ++i) {
- type.subtype = directshow_subtypes[i];
+ for (const auto &directshowSubtype : directshow_subtypes) {
+ type.subtype = directshowSubtype;
m_supportedMediaTypes.append(DirectShowMediaType(type));
}
}
@@ -140,12 +140,11 @@ HRESULT DirectShowIOSource::QueryInterface(REFIID riid, void **ppvObject)
static const GUID iid_IAmFilterMiscFlags = {
0x2dd74950, 0xa890, 0x11d1, {0xab, 0xe8, 0x00, 0xa0, 0xc9, 0x05, 0xf3, 0x75}};
- if (!ppvObject) {
+ if (!ppvObject)
return E_POINTER;
- } else if (riid == IID_IUnknown
- || riid == IID_IPersist
- || riid == IID_IMediaFilter
- || riid == IID_IBaseFilter) {
+
+ if (riid == IID_IUnknown || riid == IID_IPersist || riid == IID_IMediaFilter
+ || riid == IID_IBaseFilter) {
*ppvObject = static_cast<IBaseFilter *>(this);
} else if (riid == iid_IAmFilterMiscFlags) {
*ppvObject = static_cast<IAMFilterMiscFlags *>(this);
@@ -222,15 +221,12 @@ HRESULT DirectShowIOSource::GetState(DWORD dwMilliSecsTimeout, FILTER_STATE *pSt
{
Q_UNUSED(dwMilliSecsTimeout);
- if (!pState) {
+ if (!pState)
return E_POINTER;
- } else {
- QMutexLocker locker(&m_mutex);
-
- *pState = m_state;
- return S_OK;
- }
+ QMutexLocker locker(&m_mutex);
+ *pState = m_state;
+ return S_OK;
}
HRESULT DirectShowIOSource::SetSyncSource(IReferenceClock *pClock)
@@ -250,53 +246,41 @@ HRESULT DirectShowIOSource::SetSyncSource(IReferenceClock *pClock)
HRESULT DirectShowIOSource::GetSyncSource(IReferenceClock **ppClock)
{
- if (!ppClock) {
+ if (!ppClock)
return E_POINTER;
- } else {
- if (!m_clock) {
- *ppClock = 0;
-
- return S_FALSE;
- } else {
- m_clock->AddRef();
- *ppClock = m_clock;
-
- return S_OK;
- }
+ if (!m_clock) {
+ *ppClock = nullptr;
+ return S_FALSE;
}
+ m_clock->AddRef();
+ *ppClock = m_clock;
+ return S_OK;
}
// IBaseFilter
HRESULT DirectShowIOSource::EnumPins(IEnumPins **ppEnum)
{
- if (!ppEnum) {
+ if (!ppEnum)
return E_POINTER;
- } else {
- *ppEnum = new DirectShowPinEnum(QList<IPin *>() << this);
- return S_OK;
- }
+ *ppEnum = new DirectShowPinEnum(QList<IPin *>() << this);
+ return S_OK;
}
HRESULT DirectShowIOSource::FindPin(LPCWSTR Id, IPin **ppPin)
{
- if (!ppPin || !Id) {
+ if (!ppPin || !Id)
return E_POINTER;
- } else {
- QMutexLocker locker(&m_mutex);
- if (QString::fromWCharArray(Id) == m_pinId) {
- AddRef();
-
- *ppPin = this;
- return S_OK;
- } else {
- *ppPin = 0;
-
- return VFW_E_NOT_FOUND;
- }
+ QMutexLocker locker(&m_mutex);
+ if (m_pinId == QStringView(Id)) {
+ AddRef();
+ *ppPin = this;
+ return S_OK;
}
+ *ppPin = nullptr;
+ return VFW_E_NOT_FOUND;
}
HRESULT DirectShowIOSource::JoinFilterGraph(IFilterGraph *pGraph, LPCWSTR pName)
@@ -311,24 +295,22 @@ HRESULT DirectShowIOSource::JoinFilterGraph(IFilterGraph *pGraph, LPCWSTR pName)
HRESULT DirectShowIOSource::QueryFilterInfo(FILTER_INFO *pInfo)
{
- if (!pInfo) {
+ if (!pInfo)
return E_POINTER;
- } else {
- QString name = m_filterName;
- if (name.length() >= MAX_FILTER_NAME)
- name.truncate(MAX_FILTER_NAME - 1);
+ QString name = m_filterName;
+ if (name.length() >= MAX_FILTER_NAME)
+ name.truncate(MAX_FILTER_NAME - 1);
- int length = name.toWCharArray(pInfo->achName);
- pInfo->achName[length] = '\0';
+ int length = name.toWCharArray(pInfo->achName);
+ pInfo->achName[length] = '\0';
- if (m_graph)
- m_graph->AddRef();
+ if (m_graph)
+ m_graph->AddRef();
- pInfo->pGraph = m_graph;
+ pInfo->pGraph = m_graph;
- return S_OK;
- }
+ return S_OK;
}
HRESULT DirectShowIOSource::QueryVendorInfo(LPWSTR *pVendorInfo)
@@ -424,121 +406,96 @@ HRESULT DirectShowIOSource::Disconnect()
{
QMutexLocker locker(&m_mutex);
- if (!m_peerPin) {
+ if (!m_peerPin)
return S_FALSE;
- } else if (m_state != State_Stopped) {
+ if (m_state != State_Stopped)
return VFW_E_NOT_STOPPED;
- } else {
- HRESULT hr = m_peerPin->Disconnect();
- if (!SUCCEEDED(hr))
- return hr;
+ HRESULT hr = m_peerPin->Disconnect();
+ if (!SUCCEEDED(hr))
+ return hr;
- if (m_allocator) {
- m_allocator->Release();
- m_allocator = 0;
- }
+ if (m_allocator) {
+ m_allocator->Release();
+ m_allocator = nullptr;
+ }
- m_peerPin->Release();
- m_peerPin = 0;
+ m_peerPin->Release();
+ m_peerPin = nullptr;
- return S_OK;
- }
+ return S_OK;
}
HRESULT DirectShowIOSource::ConnectedTo(IPin **ppPin)
{
- if (!ppPin) {
+ if (!ppPin)
return E_POINTER;
- } else {
- QMutexLocker locker(&m_mutex);
- if (!m_peerPin) {
- *ppPin = 0;
-
- return VFW_E_NOT_CONNECTED;
- } else {
- m_peerPin->AddRef();
-
- *ppPin = m_peerPin;
-
- return S_OK;
- }
+ QMutexLocker locker(&m_mutex);
+ if (!m_peerPin) {
+ *ppPin = nullptr;
+ return VFW_E_NOT_CONNECTED;
}
+ m_peerPin->AddRef();
+ *ppPin = m_peerPin;
+ return S_OK;
}
HRESULT DirectShowIOSource::ConnectionMediaType(AM_MEDIA_TYPE *pmt)
{
- if (!pmt) {
+ if (!pmt)
return E_POINTER;
- } else {
- QMutexLocker locker(&m_mutex);
-
- if (!m_peerPin) {
- pmt = 0;
- return VFW_E_NOT_CONNECTED;
- } else {
- DirectShowMediaType::copy(pmt, &m_connectionMediaType);
-
- return S_OK;
- }
+ QMutexLocker locker(&m_mutex);
+ if (!m_peerPin) {
+ pmt = nullptr;
+ return VFW_E_NOT_CONNECTED;
}
+ DirectShowMediaType::copy(pmt, &m_connectionMediaType);
+ return S_OK;
}
HRESULT DirectShowIOSource::QueryPinInfo(PIN_INFO *pInfo)
{
- if (!pInfo) {
+ if (!pInfo)
return E_POINTER;
- } else {
- AddRef();
- pInfo->pFilter = this;
- pInfo->dir = PINDIR_OUTPUT;
+ AddRef();
- const int bytes = qMin(MAX_FILTER_NAME, (m_pinId.length() + 1) * 2);
+ pInfo->pFilter = this;
+ pInfo->dir = PINDIR_OUTPUT;
- ::memcpy(pInfo->achName, m_pinId.utf16(), bytes);
+ const int bytes = qMin(MAX_FILTER_NAME, (m_pinId.length() + 1) * 2);
- return S_OK;
- }
+ ::memcpy(pInfo->achName, m_pinId.utf16(), bytes);
+
+ return S_OK;
}
HRESULT DirectShowIOSource::QueryId(LPWSTR *Id)
{
- if (!Id) {
+ if (!Id)
return E_POINTER;
- } else {
- const int bytes = (m_pinId.length() + 1) * 2;
-
- *Id = static_cast<LPWSTR>(::CoTaskMemAlloc(bytes));
-
- ::memcpy(*Id, m_pinId.utf16(), bytes);
- return S_OK;
- }
+ const int bytes = (m_pinId.length() + 1) * 2;
+ *Id = static_cast<LPWSTR>(::CoTaskMemAlloc(bytes));
+ ::memcpy(*Id, m_pinId.utf16(), bytes);
+ return S_OK;
}
HRESULT DirectShowIOSource::QueryAccept(const AM_MEDIA_TYPE *pmt)
{
- if (!pmt) {
+ if (!pmt)
return E_POINTER;
- } else if (pmt->majortype == MEDIATYPE_Stream) {
- return S_OK;
- } else {
- return S_FALSE;
- }
+ return pmt->majortype == MEDIATYPE_Stream ? S_OK : S_FALSE;
}
HRESULT DirectShowIOSource::EnumMediaTypes(IEnumMediaTypes **ppEnum)
{
- if (!ppEnum) {
+ if (!ppEnum)
return E_POINTER;
- } else {
- *ppEnum = new DirectShowMediaTypeEnum(m_supportedMediaTypes);
-
- return S_OK;
- }
+ *ppEnum = new DirectShowMediaTypeEnum(m_supportedMediaTypes);
+ return S_OK;
}
HRESULT DirectShowIOSource::QueryInternalConnections(IPin **apPin, ULONG *nPin)
@@ -575,13 +532,10 @@ HRESULT DirectShowIOSource::NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tSt
HRESULT DirectShowIOSource::QueryDirection(PIN_DIRECTION *pPinDir)
{
- if (!pPinDir) {
+ if (!pPinDir)
return E_POINTER;
- } else {
- *pPinDir = PINDIR_OUTPUT;
-
- return S_OK;
- }
+ *pPinDir = PINDIR_OUTPUT;
+ return S_OK;
}
QT_END_NAMESPACE
diff --git a/src/plugins/directshow/player/directshowiosource.h b/src/plugins/directshow/player/directshowiosource.h
index 43df6c34f..02639de7c 100644
--- a/src/plugins/directshow/player/directshowiosource.h
+++ b/src/plugins/directshow/player/directshowiosource.h
@@ -53,6 +53,7 @@ class DirectShowIOSource
, public IAMFilterMiscFlags
, public IPin
{
+ Q_DISABLE_COPY(DirectShowIOSource)
public:
DirectShowIOSource(DirectShowEventLoop *loop);
virtual ~DirectShowIOSource();
@@ -61,60 +62,61 @@ public:
void setAllocator(IMemAllocator *allocator);
// IUnknown
- HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject);
- ULONG STDMETHODCALLTYPE AddRef();
- ULONG STDMETHODCALLTYPE Release();
+ HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject) override;
+ ULONG STDMETHODCALLTYPE AddRef() override;
+ ULONG STDMETHODCALLTYPE Release() override;
// IPersist
- HRESULT STDMETHODCALLTYPE GetClassID(CLSID *pClassID);
+ HRESULT STDMETHODCALLTYPE GetClassID(CLSID *pClassID) override;
// IMediaFilter
- HRESULT STDMETHODCALLTYPE Run(REFERENCE_TIME tStart);
- HRESULT STDMETHODCALLTYPE Pause();
- HRESULT STDMETHODCALLTYPE Stop();
+ HRESULT STDMETHODCALLTYPE Run(REFERENCE_TIME tStart) override;
+ HRESULT STDMETHODCALLTYPE Pause() override;
+ HRESULT STDMETHODCALLTYPE Stop() override;
- HRESULT STDMETHODCALLTYPE GetState(DWORD dwMilliSecsTimeout, FILTER_STATE *pState);
+ HRESULT STDMETHODCALLTYPE GetState(DWORD dwMilliSecsTimeout, FILTER_STATE *pState) override;
- HRESULT STDMETHODCALLTYPE SetSyncSource(IReferenceClock *pClock);
- HRESULT STDMETHODCALLTYPE GetSyncSource(IReferenceClock **ppClock);
+ HRESULT STDMETHODCALLTYPE SetSyncSource(IReferenceClock *pClock) override;
+ HRESULT STDMETHODCALLTYPE GetSyncSource(IReferenceClock **ppClock) override;
// IBaseFilter
- HRESULT STDMETHODCALLTYPE EnumPins(IEnumPins **ppEnum);
- HRESULT STDMETHODCALLTYPE FindPin(LPCWSTR Id, IPin **ppPin);
+ HRESULT STDMETHODCALLTYPE EnumPins(IEnumPins **ppEnum) override;
+ HRESULT STDMETHODCALLTYPE FindPin(LPCWSTR Id, IPin **ppPin) override;
- HRESULT STDMETHODCALLTYPE JoinFilterGraph(IFilterGraph *pGraph, LPCWSTR pName);
+ HRESULT STDMETHODCALLTYPE JoinFilterGraph(IFilterGraph *pGraph, LPCWSTR pName) override;
- HRESULT STDMETHODCALLTYPE QueryFilterInfo(FILTER_INFO *pInfo);
- HRESULT STDMETHODCALLTYPE QueryVendorInfo(LPWSTR *pVendorInfo);
+ HRESULT STDMETHODCALLTYPE QueryFilterInfo(FILTER_INFO *pInfo) override;
+ HRESULT STDMETHODCALLTYPE QueryVendorInfo(LPWSTR *pVendorInfo) override;
// IAMFilterMiscFlags
- ULONG STDMETHODCALLTYPE GetMiscFlags();
+ ULONG STDMETHODCALLTYPE GetMiscFlags() override;
// IPin
- HRESULT STDMETHODCALLTYPE Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt);
- HRESULT STDMETHODCALLTYPE ReceiveConnection(IPin *pConnector, const AM_MEDIA_TYPE *pmt);
- HRESULT STDMETHODCALLTYPE Disconnect();
- HRESULT STDMETHODCALLTYPE ConnectedTo(IPin **ppPin);
+ HRESULT STDMETHODCALLTYPE Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt) override;
+ HRESULT STDMETHODCALLTYPE ReceiveConnection(IPin *pConnector, const AM_MEDIA_TYPE *pmt) override;
+ HRESULT STDMETHODCALLTYPE Disconnect() override;
+ HRESULT STDMETHODCALLTYPE ConnectedTo(IPin **ppPin) override;
- HRESULT STDMETHODCALLTYPE ConnectionMediaType(AM_MEDIA_TYPE *pmt);
+ HRESULT STDMETHODCALLTYPE ConnectionMediaType(AM_MEDIA_TYPE *pmt) override;
- HRESULT STDMETHODCALLTYPE QueryPinInfo(PIN_INFO *pInfo);
- HRESULT STDMETHODCALLTYPE QueryId(LPWSTR *Id);
+ HRESULT STDMETHODCALLTYPE QueryPinInfo(PIN_INFO *pInfo) override;
+ HRESULT STDMETHODCALLTYPE QueryId(LPWSTR *Id) override;
- HRESULT STDMETHODCALLTYPE QueryAccept(const AM_MEDIA_TYPE *pmt);
+ HRESULT STDMETHODCALLTYPE QueryAccept(const AM_MEDIA_TYPE *pmt) override;
- HRESULT STDMETHODCALLTYPE EnumMediaTypes(IEnumMediaTypes **ppEnum);
+ HRESULT STDMETHODCALLTYPE EnumMediaTypes(IEnumMediaTypes **ppEnum) override;
- HRESULT STDMETHODCALLTYPE QueryInternalConnections(IPin **apPin, ULONG *nPin);
+ HRESULT STDMETHODCALLTYPE QueryInternalConnections(IPin **apPin, ULONG *nPin) override;
- HRESULT STDMETHODCALLTYPE EndOfStream();
+ HRESULT STDMETHODCALLTYPE EndOfStream() override;
- HRESULT STDMETHODCALLTYPE BeginFlush();
- HRESULT STDMETHODCALLTYPE EndFlush();
+ HRESULT STDMETHODCALLTYPE BeginFlush() override;
+ HRESULT STDMETHODCALLTYPE EndFlush() override;
- HRESULT STDMETHODCALLTYPE NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate);
+ HRESULT STDMETHODCALLTYPE NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop,
+ double dRate) override;
- HRESULT STDMETHODCALLTYPE QueryDirection(PIN_DIRECTION *pPinDir);
+ HRESULT STDMETHODCALLTYPE QueryDirection(PIN_DIRECTION *pPinDir) override;
private:
volatile LONG m_ref;
diff --git a/src/plugins/directshow/player/directshowmetadatacontrol.cpp b/src/plugins/directshow/player/directshowmetadatacontrol.cpp
index 84f990830..90d2b3e7d 100644
--- a/src/plugins/directshow/player/directshowmetadatacontrol.cpp
+++ b/src/plugins/directshow/player/directshowmetadatacontrol.cpp
@@ -113,101 +113,99 @@ static QString nameForGUIDString(const QString &guid)
// Audio formats
if (guid == "{00001610-0000-0010-8000-00AA00389B71}" || guid == "{000000FF-0000-0010-8000-00AA00389B71}")
return QStringLiteral("MPEG AAC Audio");
- else if (guid == "{00001600-0000-0010-8000-00AA00389B71}")
+ if (guid == "{00001600-0000-0010-8000-00AA00389B71}")
return QStringLiteral("MPEG ADTS AAC Audio");
- else if (guid == "{00000092-0000-0010-8000-00AA00389B71}")
+ if (guid == "{00000092-0000-0010-8000-00AA00389B71}")
return QStringLiteral("Dolby AC-3 SPDIF");
- else if (guid == "{E06D802C-DB46-11CF-B4D1-00805F6CBBEA}" || guid == "{00002000-0000-0010-8000-00AA00389B71}")
+ if (guid == "{E06D802C-DB46-11CF-B4D1-00805F6CBBEA}" || guid == "{00002000-0000-0010-8000-00AA00389B71}")
return QStringLiteral("Dolby AC-3");
- else if (guid == "{A7FB87AF-2D02-42FB-A4D4-05CD93843BDD}")
+ if (guid == "{A7FB87AF-2D02-42FB-A4D4-05CD93843BDD}")
return QStringLiteral("Dolby Digital Plus");
- else if (guid == "{00000009-0000-0010-8000-00AA00389B71}")
+ if (guid == "{00000009-0000-0010-8000-00AA00389B71}")
return QStringLiteral("DRM");
- else if (guid == "{00000008-0000-0010-8000-00AA00389B71}")
+ if (guid == "{00000008-0000-0010-8000-00AA00389B71}")
return QStringLiteral("Digital Theater Systems Audio (DTS)");
- else if (guid == "{00000003-0000-0010-8000-00AA00389B71}")
+ if (guid == "{00000003-0000-0010-8000-00AA00389B71}")
return QStringLiteral("IEEE Float Audio");
- else if (guid == "{00000055-0000-0010-8000-00AA00389B71}")
+ if (guid == "{00000055-0000-0010-8000-00AA00389B71}")
return QStringLiteral("MPEG Audio Layer-3 (MP3)");
- else if (guid == "{00000050-0000-0010-8000-00AA00389B71}")
+ if (guid == "{00000050-0000-0010-8000-00AA00389B71}")
return QStringLiteral("MPEG-1 Audio");
- else if (guid == "{2E6D7033-767A-494D-B478-F29D25DC9037}")
+ if (guid == "{2E6D7033-767A-494D-B478-F29D25DC9037}")
return QStringLiteral("MPEG Audio Layer 1/2");
- else if (guid == "{0000000A-0000-0010-8000-00AA00389B71}")
+ if (guid == "{0000000A-0000-0010-8000-00AA00389B71}")
return QStringLiteral("Windows Media Audio Voice");
- else if (guid == "{00000001-0000-0010-8000-00AA00389B71}")
+ if (guid == "{00000001-0000-0010-8000-00AA00389B71}")
return QStringLiteral("Uncompressed PCM Audio");
- else if (guid == "{00000164-0000-0010-8000-00AA00389B71}")
+ if (guid == "{00000164-0000-0010-8000-00AA00389B71}")
return QStringLiteral("Windows Media Audio 9 SPDIF");
- else if (guid == "{00000161-0000-0010-8000-00AA00389B71}")
+ if (guid == "{00000161-0000-0010-8000-00AA00389B71}")
return QStringLiteral("Windows Media Audio 8 (WMA2)");
- else if (guid == "{00000162-0000-0010-8000-00AA00389B71}")
+ if (guid == "{00000162-0000-0010-8000-00AA00389B71}")
return QStringLiteral("Windows Media Audio 9 (WMA3");
- else if (guid == "{00000163-0000-0010-8000-00AA00389B71}")
+ if (guid == "{00000163-0000-0010-8000-00AA00389B71}")
return QStringLiteral("Windows Media Audio 9 Lossless");
- else if (guid == "{8D2FD10B-5841-4a6b-8905-588FEC1ADED9}")
+ if (guid == "{8D2FD10B-5841-4a6b-8905-588FEC1ADED9}")
return QStringLiteral("Vorbis");
- else if (guid == "{0000F1AC-0000-0010-8000-00AA00389B71}")
+ if (guid == "{0000F1AC-0000-0010-8000-00AA00389B71}")
return QStringLiteral("Free Lossless Audio Codec (FLAC)");
- else if (guid == "{00006C61-0000-0010-8000-00AA00389B71}")
+ if (guid == "{00006C61-0000-0010-8000-00AA00389B71}")
return QStringLiteral("Apple Lossless Audio Codec (ALAC)");
// Video formats
if (guid == "{35327664-0000-0010-8000-00AA00389B71}")
return QStringLiteral("DVCPRO 25 (DV25)");
- else if (guid == "{30357664-0000-0010-8000-00AA00389B71}")
+ if (guid == "{30357664-0000-0010-8000-00AA00389B71}")
return QStringLiteral("DVCPRO 50 (DV50)");
- else if (guid == "{20637664-0000-0010-8000-00AA00389B71}")
+ if (guid == "{20637664-0000-0010-8000-00AA00389B71}")
return QStringLiteral("DVC/DV Video");
- else if (guid == "{31687664-0000-0010-8000-00AA00389B71}")
+ if (guid == "{31687664-0000-0010-8000-00AA00389B71}")
return QStringLiteral("DVCPRO 100 (DVH1)");
- else if (guid == "{64687664-0000-0010-8000-00AA00389B71}")
+ if (guid == "{64687664-0000-0010-8000-00AA00389B71}")
return QStringLiteral("HD-DVCR (DVHD)");
- else if (guid == "{64737664-0000-0010-8000-00AA00389B71}")
+ if (guid == "{64737664-0000-0010-8000-00AA00389B71}")
return QStringLiteral("SDL-DVCR (DVSD)");
- else if (guid == "{6C737664-0000-0010-8000-00AA00389B71}")
+ if (guid == "{6C737664-0000-0010-8000-00AA00389B71}")
return QStringLiteral("SD-DVCR (DVSL)");
- else if (guid == "{33363248-0000-0010-8000-00AA00389B71}")
+ if (guid == "{33363248-0000-0010-8000-00AA00389B71}")
return QStringLiteral("H.263 Video");
- else if (guid == "{34363248-0000-0010-8000-00AA00389B71}")
+ if (guid == "{34363248-0000-0010-8000-00AA00389B71}")
return QStringLiteral("H.264 Video");
- else if (guid == "{35363248-0000-0010-8000-00AA00389B71}")
+ if (guid == "{35363248-0000-0010-8000-00AA00389B71}")
return QStringLiteral("H.265 Video");
- else if (guid == "{43564548-0000-0010-8000-00AA00389B71}")
+ if (guid == "{43564548-0000-0010-8000-00AA00389B71}")
return QStringLiteral("High Efficiency Video Coding (HEVC)");
- else if (guid == "{3253344D-0000-0010-8000-00AA00389B71}")
+ if (guid == "{3253344D-0000-0010-8000-00AA00389B71}")
return QStringLiteral("MPEG-4 part 2 Video (M4S2)");
- else if (guid == "{47504A4D-0000-0010-8000-00AA00389B71}")
+ if (guid == "{47504A4D-0000-0010-8000-00AA00389B71}")
return QStringLiteral("Motion JPEG (MJPG)");
- else if (guid == "{3334504D-0000-0010-8000-00AA00389B71}")
+ if (guid == "{3334504D-0000-0010-8000-00AA00389B71}")
return QStringLiteral("Microsoft MPEG 4 version 3 (MP43)");
- else if (guid == "{5334504D-0000-0010-8000-00AA00389B71}")
+ if (guid == "{5334504D-0000-0010-8000-00AA00389B71}")
return QStringLiteral("ISO MPEG 4 version 1 (MP4S)");
- else if (guid == "{5634504D-0000-0010-8000-00AA00389B71}")
+ if (guid == "{5634504D-0000-0010-8000-00AA00389B71}")
return QStringLiteral("MPEG-4 part 2 Video (MP4V)");
- else if (guid == "{E06D8026-DB46-11CF-B4D1-00805F6CBBEA}")
+ if (guid == "{E06D8026-DB46-11CF-B4D1-00805F6CBBEA}")
return QStringLiteral("MPEG-2 Video");
- else if (guid == "{3147504D-0000-0010-8000-00AA00389B71}")
+ if (guid == "{3147504D-0000-0010-8000-00AA00389B71}")
return QStringLiteral("MPEG-1 Video");
- else if (guid == "{3153534D-0000-0010-8000-00AA00389B71}")
+ if (guid == "{3153534D-0000-0010-8000-00AA00389B71}")
return QStringLiteral("Windows Media Screen 1 (MSS1)");
- else if (guid == "{3253534D-0000-0010-8000-00AA00389B71}")
+ if (guid == "{3253534D-0000-0010-8000-00AA00389B71}")
return QStringLiteral("Windows Media Video 9 Screen (MSS2)");
- else if (guid == "{31564D57-0000-0010-8000-00AA00389B71}")
+ if (guid == "{31564D57-0000-0010-8000-00AA00389B71}")
return QStringLiteral("Windows Media Video 7 (WMV1)");
- else if (guid == "{32564D57-0000-0010-8000-00AA00389B71}")
+ if (guid == "{32564D57-0000-0010-8000-00AA00389B71}")
return QStringLiteral("Windows Media Video 8 (WMV2)");
- else if (guid == "{33564D57-0000-0010-8000-00AA00389B71}")
+ if (guid == "{33564D57-0000-0010-8000-00AA00389B71}")
return QStringLiteral("Windows Media Video 9 (WMV3)");
- else if (guid == "{31435657-0000-0010-8000-00AA00389B71}")
+ if (guid == "{31435657-0000-0010-8000-00AA00389B71}")
return QStringLiteral("Windows Media Video VC1 (WVC1)");
- else if (guid == "{30385056-0000-0010-8000-00AA00389B71}")
+ if (guid == "{30385056-0000-0010-8000-00AA00389B71}")
return QStringLiteral("VP8 Video");
- else if (guid == "{30395056-0000-0010-8000-00AA00389B71}")
+ if (guid == "{30395056-0000-0010-8000-00AA00389B71}")
return QStringLiteral("VP9 Video");
-
- else
- return QStringLiteral("Unknown codec");
+ return QStringLiteral("Unknown codec");
}
typedef HRESULT (WINAPI *q_SHCreateItemFromParsingName)(PCWSTR, IBindCtx *, const GUID&, void **);
@@ -451,9 +449,7 @@ DirectShowMetaDataControl::DirectShowMetaDataControl(QObject *parent)
{
}
-DirectShowMetaDataControl::~DirectShowMetaDataControl()
-{
-}
+DirectShowMetaDataControl::~DirectShowMetaDataControl() = default;
bool DirectShowMetaDataControl::isMetaDataAvailable() const
{
diff --git a/src/plugins/directshow/player/directshowmetadatacontrol.h b/src/plugins/directshow/player/directshowmetadatacontrol.h
index 3d2fa5e8e..ea20bf0c5 100644
--- a/src/plugins/directshow/player/directshowmetadatacontrol.h
+++ b/src/plugins/directshow/player/directshowmetadatacontrol.h
@@ -55,19 +55,19 @@ class DirectShowMetaDataControl : public QMetaDataReaderControl
Q_OBJECT
public:
DirectShowMetaDataControl(QObject *parent = 0);
- ~DirectShowMetaDataControl();
+ ~DirectShowMetaDataControl() override;
- bool isMetaDataAvailable() const;
+ bool isMetaDataAvailable() const override;
- QVariant metaData(const QString &key) const;
- QStringList availableMetaData() const;
+ QVariant metaData(const QString &key) const override;
+ QStringList availableMetaData() const override;
void reset();
void updateMetadata(IFilterGraph2 *graph, IBaseFilter *source,
const QString &fileSrc = QString());
protected:
- void customEvent(QEvent *event);
+ void customEvent(QEvent *event) override;
private:
void setMetadataAvailable(bool available);
diff --git a/src/plugins/directshow/player/directshowplayercontrol.h b/src/plugins/directshow/player/directshowplayercontrol.h
index fd2c21c38..dba9ab9a0 100644
--- a/src/plugins/directshow/player/directshowplayercontrol.h
+++ b/src/plugins/directshow/player/directshowplayercontrol.h
@@ -56,42 +56,42 @@ class DirectShowPlayerControl : public QMediaPlayerControl
Q_OBJECT
public:
DirectShowPlayerControl(DirectShowPlayerService *service, QObject *parent = 0);
- ~DirectShowPlayerControl();
+ ~DirectShowPlayerControl() override;
- QMediaPlayer::State state() const;
+ QMediaPlayer::State state() const override;
- QMediaPlayer::MediaStatus mediaStatus() const;
+ QMediaPlayer::MediaStatus mediaStatus() const override;
- qint64 duration() const;
+ qint64 duration() const override;
- qint64 position() const;
- void setPosition(qint64 position);
+ qint64 position() const override;
+ void setPosition(qint64 position) override;
- int volume() const;
- void setVolume(int volume);
+ int volume() const override;
+ void setVolume(int volume) override;
- bool isMuted() const;
- void setMuted(bool muted);
+ bool isMuted() const override;
+ void setMuted(bool muted) override;
- int bufferStatus() const;
+ int bufferStatus() const override;
- bool isAudioAvailable() const;
- bool isVideoAvailable() const;
+ bool isAudioAvailable() const override;
+ bool isVideoAvailable() const override;
- bool isSeekable() const;
+ bool isSeekable() const override;
- QMediaTimeRange availablePlaybackRanges() const;
+ QMediaTimeRange availablePlaybackRanges() const override;
- qreal playbackRate() const;
- void setPlaybackRate(qreal rate);
+ qreal playbackRate() const override;
+ void setPlaybackRate(qreal rate) override;
- QMediaContent media() const;
- const QIODevice *mediaStream() const;
- void setMedia(const QMediaContent &media, QIODevice *stream);
+ QMediaContent media() const override;
+ const QIODevice *mediaStream() const override;
+ void setMedia(const QMediaContent &media, QIODevice *stream) override;
- void play();
- void pause();
- void stop();
+ void play() override;
+ void pause() override;
+ void stop() override;
void updateState(QMediaPlayer::State state);
void updateStatus(QMediaPlayer::MediaStatus status);
@@ -102,7 +102,7 @@ public:
void updatePosition(qint64 position);
protected:
- void customEvent(QEvent *event);
+ void customEvent(QEvent *event) override;
private:
enum Properties
diff --git a/src/plugins/directshow/player/directshowplayerservice.cpp b/src/plugins/directshow/player/directshowplayerservice.cpp
index abbbd4b49..8768bd3da 100644
--- a/src/plugins/directshow/player/directshowplayerservice.cpp
+++ b/src/plugins/directshow/player/directshowplayerservice.cpp
@@ -115,7 +115,7 @@ public:
}
protected:
- void run() { m_service->run(); }
+ void run() override { m_service->run(); }
private:
DirectShowPlayerService *m_service;
@@ -1091,9 +1091,9 @@ qint64 DirectShowPlayerService::position() const
QMutexLocker locker(const_cast<QMutex *>(&m_mutex));
if (m_graphStatus == Loaded) {
- if (m_executingTask == Seek || m_executingTask == SetRate || (m_pendingTasks & Seek)) {
+ if (m_executingTask == Seek || m_executingTask == SetRate || (m_pendingTasks & Seek))
return m_position;
- } else if (IMediaSeeking *seeking = com_cast<IMediaSeeking>(m_graph, IID_IMediaSeeking)) {
+ if (IMediaSeeking *seeking = com_cast<IMediaSeeking>(m_graph, IID_IMediaSeeking)) {
LONGLONG position = 0;
seeking->GetCurrentPosition(&position);
@@ -1112,9 +1112,9 @@ QMediaTimeRange DirectShowPlayerService::availablePlaybackRanges() const
QMutexLocker locker(const_cast<QMutex *>(&m_mutex));
if (m_graphStatus == Loaded) {
- if (m_executingTask == Seek || m_executingTask == SetRate || (m_pendingTasks & Seek)) {
+ if (m_executingTask == Seek || m_executingTask == SetRate || (m_pendingTasks & Seek))
return m_playbackRange;
- } else if (IMediaSeeking *seeking = com_cast<IMediaSeeking>(m_graph, IID_IMediaSeeking)) {
+ if (IMediaSeeking *seeking = com_cast<IMediaSeeking>(m_graph, IID_IMediaSeeking)) {
LONGLONG minimum = 0;
LONGLONG maximum = 0;
@@ -1195,9 +1195,8 @@ int DirectShowPlayerService::bufferStatus() const
reader->Release();
return percentage;
- } else {
- return 0;
}
+ return 0;
#else
return 0;
#endif
diff --git a/src/plugins/directshow/player/directshowplayerservice.h b/src/plugins/directshow/player/directshowplayerservice.h
index de71a6fdf..d48b0575a 100644
--- a/src/plugins/directshow/player/directshowplayerservice.h
+++ b/src/plugins/directshow/player/directshowplayerservice.h
@@ -79,10 +79,10 @@ public:
};
DirectShowPlayerService(QObject *parent = 0);
- ~DirectShowPlayerService();
+ ~DirectShowPlayerService() override;
- QMediaControl* requestControl(const char *name);
- void releaseControl(QMediaControl *control);
+ QMediaControl *requestControl(const char *name) override;
+ void releaseControl(QMediaControl *control) override;
void load(const QMediaContent &media, QIODevice *stream);
void play();
@@ -101,7 +101,7 @@ public:
void setVideoOutput(IBaseFilter *filter);
protected:
- void customEvent(QEvent *event);
+ void customEvent(QEvent *event) override;
private Q_SLOTS:
void videoOutputChanged();
diff --git a/src/plugins/directshow/player/directshowvideorenderercontrol.h b/src/plugins/directshow/player/directshowvideorenderercontrol.h
index ce515a329..b2abeeaed 100644
--- a/src/plugins/directshow/player/directshowvideorenderercontrol.h
+++ b/src/plugins/directshow/player/directshowvideorenderercontrol.h
@@ -59,10 +59,10 @@ class DirectShowVideoRendererControl : public QVideoRendererControl
Q_OBJECT
public:
DirectShowVideoRendererControl(DirectShowEventLoop *loop, QObject *parent = 0);
- ~DirectShowVideoRendererControl();
+ ~DirectShowVideoRendererControl() override;
- QAbstractVideoSurface *surface() const;
- void setSurface(QAbstractVideoSurface *surface);
+ QAbstractVideoSurface *surface() const override;
+ void setSurface(QAbstractVideoSurface *surface) override;
IBaseFilter *filter();
diff --git a/src/plugins/directshow/player/videosurfacefilter.cpp b/src/plugins/directshow/player/videosurfacefilter.cpp
index c521a251b..826d26bdb 100644
--- a/src/plugins/directshow/player/videosurfacefilter.cpp
+++ b/src/plugins/directshow/player/videosurfacefilter.cpp
@@ -330,12 +330,11 @@ bool VideoSurfaceFilter::setMediaType(const AM_MEDIA_TYPE *type)
m_surfaceFormat = QVideoSurfaceFormat();
m_bytesPerLine = 0;
return true;
- } else {
- m_surfaceFormat = DirectShowMediaType::videoFormatFromType(type);
- m_bytesPerLine = DirectShowMediaType::bytesPerLine(m_surfaceFormat);
- qCDebug(qLcRenderFilter) << "setMediaType -->" << m_surfaceFormat;
- return m_surfaceFormat.isValid();
}
+ m_surfaceFormat = DirectShowMediaType::videoFormatFromType(type);
+ m_bytesPerLine = DirectShowMediaType::bytesPerLine(m_surfaceFormat);
+ qCDebug(qLcRenderFilter) << "setMediaType -->" << m_surfaceFormat;
+ return m_surfaceFormat.isValid();
}
HRESULT VideoSurfaceFilter::completeConnection(IPin *pin)
@@ -344,10 +343,7 @@ HRESULT VideoSurfaceFilter::completeConnection(IPin *pin)
qCDebug(qLcRenderFilter, "completeConnection");
- if (!startSurface())
- return VFW_E_TYPE_NOT_ACCEPTED;
- else
- return S_OK;
+ return startSurface() ? S_OK : VFW_E_TYPE_NOT_ACCEPTED;
}
HRESULT VideoSurfaceFilter::connectionEnded()
@@ -783,32 +779,40 @@ void VideoSurfaceFilter::renderPendingSample()
bool VideoSurfaceFilter::event(QEvent *e)
{
- if (e->type() == QEvent::Type(StartSurface)) {
+ switch (e->type()) {
+ case StartSurface: {
QMutexLocker locker(&m_mutex);
startSurface();
m_waitSurface.wakeAll();
return true;
- } else if (e->type() == QEvent::Type(StopSurface)) {
+ }
+ case StopSurface: {
QMutexLocker locker(&m_mutex);
stopSurface();
m_waitSurface.wakeAll();
return true;
- } else if (e->type() == QEvent::Type(RestartSurface)) {
+ }
+ case RestartSurface: {
QMutexLocker locker(&m_mutex);
restartSurface();
m_waitSurface.wakeAll();
return true;
- } else if (e->type() == QEvent::Type(FlushSurface)) {
+ }
+ case FlushSurface: {
QMutexLocker locker(&m_mutex);
flushSurface();
m_waitSurface.wakeAll();
return true;
- } else if (e->type() == QEvent::Type(RenderSample)) {
+ }
+ case RenderSample: {
QMutexLocker locker(&m_mutex);
renderPendingSample();
m_waitSurface.wakeAll();
return true;
}
+ default:
+ break;
+ }
return QObject::event(e);
}
diff --git a/src/plugins/directshow/player/vmr9videowindowcontrol.h b/src/plugins/directshow/player/vmr9videowindowcontrol.h
index ed3b53233..8ab9bd506 100644
--- a/src/plugins/directshow/player/vmr9videowindowcontrol.h
+++ b/src/plugins/directshow/player/vmr9videowindowcontrol.h
@@ -53,37 +53,37 @@ class Vmr9VideoWindowControl : public QVideoWindowControl
Q_OBJECT
public:
Vmr9VideoWindowControl(QObject *parent = 0);
- ~Vmr9VideoWindowControl();
+ ~Vmr9VideoWindowControl() override;
IBaseFilter *filter() const { return m_filter; }
- WId winId() const;
- void setWinId(WId id);
+ WId winId() const override;
+ void setWinId(WId id) override;
- QRect displayRect() const;
- void setDisplayRect(const QRect &rect);
+ QRect displayRect() const override;
+ void setDisplayRect(const QRect &rect) override;
- bool isFullScreen() const;
- void setFullScreen(bool fullScreen);
+ bool isFullScreen() const override;
+ void setFullScreen(bool fullScreen) override;
- void repaint();
+ void repaint() override;
- QSize nativeSize() const;
+ QSize nativeSize() const override;
- Qt::AspectRatioMode aspectRatioMode() const;
- void setAspectRatioMode(Qt::AspectRatioMode mode);
+ Qt::AspectRatioMode aspectRatioMode() const override;
+ void setAspectRatioMode(Qt::AspectRatioMode mode) override;
- int brightness() const;
- void setBrightness(int brightness);
+ int brightness() const override;
+ void setBrightness(int brightness) override;
- int contrast() const;
- void setContrast(int contrast);
+ int contrast() const override;
+ void setContrast(int contrast) override;
- int hue() const;
- void setHue(int hue);
+ int hue() const override;
+ void setHue(int hue) override;
- int saturation() const;
- void setSaturation(int saturation);
+ int saturation() const override;
+ void setSaturation(int saturation) override;
private:
void setProcAmpValues();