diff options
Diffstat (limited to 'src/multimedia/platform/windows/evr/evrhelpers.cpp')
-rw-r--r-- | src/multimedia/platform/windows/evr/evrhelpers.cpp | 174 |
1 files changed, 0 insertions, 174 deletions
diff --git a/src/multimedia/platform/windows/evr/evrhelpers.cpp b/src/multimedia/platform/windows/evr/evrhelpers.cpp deleted file mode 100644 index 3f2059585..000000000 --- a/src/multimedia/platform/windows/evr/evrhelpers.cpp +++ /dev/null @@ -1,174 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "evrhelpers_p.h" - -#ifndef D3DFMT_YV12 -#define D3DFMT_YV12 (D3DFORMAT)MAKEFOURCC ('Y', 'V', '1', '2') -#endif -#ifndef D3DFMT_NV12 -#define D3DFMT_NV12 (D3DFORMAT)MAKEFOURCC ('N', 'V', '1', '2') -#endif - -QT_BEGIN_NAMESPACE - -HRESULT qt_evr_getFourCC(IMFMediaType *type, DWORD *fourCC) -{ - if (!fourCC) - return E_POINTER; - - HRESULT hr = S_OK; - GUID guidSubType = GUID_NULL; - - if (SUCCEEDED(hr)) - hr = type->GetGUID(MF_MT_SUBTYPE, &guidSubType); - - if (SUCCEEDED(hr)) - *fourCC = guidSubType.Data1; - - return hr; -} - -bool qt_evr_areMediaTypesEqual(IMFMediaType *type1, IMFMediaType *type2) -{ - if (!type1 && !type2) - return true; - if (!type1 || !type2) - return false; - - DWORD dwFlags = 0; - HRESULT hr = type1->IsEqual(type2, &dwFlags); - - return (hr == S_OK); -} - -HRESULT qt_evr_validateVideoArea(const MFVideoArea& area, UINT32 width, UINT32 height) -{ - float fOffsetX = qt_evr_MFOffsetToFloat(area.OffsetX); - float fOffsetY = qt_evr_MFOffsetToFloat(area.OffsetY); - - if ( ((LONG)fOffsetX + area.Area.cx > (LONG)width) || - ((LONG)fOffsetY + area.Area.cy > (LONG)height) ) { - return MF_E_INVALIDMEDIATYPE; - } - return S_OK; -} - -bool qt_evr_isSampleTimePassed(IMFClock *clock, IMFSample *sample) -{ - if (!sample || !clock) - return false; - - HRESULT hr = S_OK; - MFTIME hnsTimeNow = 0; - MFTIME hnsSystemTime = 0; - MFTIME hnsSampleStart = 0; - MFTIME hnsSampleDuration = 0; - - hr = clock->GetCorrelatedTime(0, &hnsTimeNow, &hnsSystemTime); - - if (SUCCEEDED(hr)) - hr = sample->GetSampleTime(&hnsSampleStart); - - if (SUCCEEDED(hr)) - hr = sample->GetSampleDuration(&hnsSampleDuration); - - if (SUCCEEDED(hr)) { - if (hnsSampleStart + hnsSampleDuration < hnsTimeNow) - return true; - } - - return false; -} - -QVideoFrameFormat::PixelFormat qt_evr_pixelFormatFromD3DFormat(DWORD format) -{ - switch (format) { - case D3DFMT_A8R8G8B8: - return QVideoFrameFormat::Format_BGRA8888; - case D3DFMT_X8R8G8B8: - return QVideoFrameFormat::Format_BGRX8888; - case D3DFMT_A8: - return QVideoFrameFormat::Format_Y8; - case D3DFMT_A8B8G8R8: - return QVideoFrameFormat::Format_RGBA8888; - case D3DFMT_X8B8G8R8: - return QVideoFrameFormat::Format_RGBX8888; - case D3DFMT_UYVY: - return QVideoFrameFormat::Format_UYVY; - case D3DFMT_YUY2: - return QVideoFrameFormat::Format_YUYV; - case D3DFMT_NV12: - return QVideoFrameFormat::Format_NV12; - case D3DFMT_YV12: - return QVideoFrameFormat::Format_YV12; - case D3DFMT_UNKNOWN: - default: - return QVideoFrameFormat::Format_Invalid; - } -} - -D3DFORMAT qt_evr_D3DFormatFromPixelFormat(QVideoFrameFormat::PixelFormat format) -{ - switch (format) { - case QVideoFrameFormat::Format_BGRA8888: - return D3DFMT_A8R8G8B8; - case QVideoFrameFormat::Format_BGRX8888: - return D3DFMT_X8R8G8B8; - case QVideoFrameFormat::Format_Y8: - return D3DFMT_A8; - case QVideoFrameFormat::Format_RGBA8888: - return D3DFMT_A8B8G8R8; - case QVideoFrameFormat::Format_RGBX8888: - return D3DFMT_X8B8G8R8; - case QVideoFrameFormat::Format_UYVY: - return D3DFMT_UYVY; - case QVideoFrameFormat::Format_YUYV: - return D3DFMT_YUY2; - case QVideoFrameFormat::Format_NV12: - return D3DFMT_NV12; - case QVideoFrameFormat::Format_YV12: - return D3DFMT_YV12; - case QVideoFrameFormat::Format_Invalid: - default: - return D3DFMT_UNKNOWN; - } -} - -QT_END_NAMESPACE |