diff options
Diffstat (limited to 'src/plugins/common/evr/evrd3dpresentengine.cpp')
-rw-r--r-- | src/plugins/common/evr/evrd3dpresentengine.cpp | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/plugins/common/evr/evrd3dpresentengine.cpp b/src/plugins/common/evr/evrd3dpresentengine.cpp index 964504e48..51f8b1a39 100644 --- a/src/plugins/common/evr/evrd3dpresentengine.cpp +++ b/src/plugins/common/evr/evrd3dpresentengine.cpp @@ -90,7 +90,7 @@ public: QVariant handle() const override; MapMode mapMode() const override { return m_mapMode; } - uchar *map(MapMode, int*, int*) override; + MapData map(MapMode mode) override; void unmap() override; private: @@ -101,28 +101,27 @@ private: mutable unsigned int m_textureId = 0; }; -uchar *IMFSampleVideoBuffer::map(MapMode mode, int *numBytes, int *bytesPerLine) +IMFSampleVideoBuffer::MapData IMFSampleVideoBuffer::map(MapMode mode) { if (!m_surface || m_mapMode != NotMapped) - return 0; + return {}; D3DSURFACE_DESC desc; if (FAILED(m_surface->GetDesc(&desc))) - return 0; + return {}; D3DLOCKED_RECT rect; if (FAILED(m_surface->LockRect(&rect, NULL, mode == ReadOnly ? D3DLOCK_READONLY : 0))) - return 0; + return {}; m_mapMode = mode; - if (numBytes) - *numBytes = (int)(rect.Pitch * desc.Height); - - if (bytesPerLine) - *bytesPerLine = (int)rect.Pitch; - - return reinterpret_cast<uchar *>(rect.pBits); + MapData mapData; + mapData.nBytes = (int)(rect.Pitch * desc.Height); + mapData.nPlanes = 1; + mapData.bytesPerLine[0] = (int)rect.Pitch; + mapData.data[0] = reinterpret_cast<uchar *>(rect.pBits); + return mapData; } void IMFSampleVideoBuffer::unmap() |