diff options
Diffstat (limited to 'AVStream/samplemft0/SampleHelpers.h')
| -rw-r--r-- | AVStream/samplemft0/SampleHelpers.h | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/AVStream/samplemft0/SampleHelpers.h b/AVStream/samplemft0/SampleHelpers.h deleted file mode 100644 index 870e2cd3..00000000 --- a/AVStream/samplemft0/SampleHelpers.h +++ /dev/null @@ -1,143 +0,0 @@ -//// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF -//// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO -//// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A -//// PARTICULAR PURPOSE. -//// -//// Copyright (c) Microsoft Corporation. All rights reserved - - -#pragma once -#include "stdafx.h" - -#define WIDEN2(x) L ## x -#define WIDEN(x) WIDEN2(x) -#define __WFILE__ WIDEN(__FILE__) - - -#define WPP_CONTROL_GUIDS \ - WPP_DEFINE_CONTROL_GUID(WPPCameraExtensionMFt_Sample, \ - (31A88041,BBF0,4D2C,A752,16EB1E51859C), \ - WPP_DEFINE_BIT(AllMessages) \ - ) - -#define SAFEFREE(x) \ - if(x) { \ - free(x); \ - x = NULL; \ - } -#define SAFERELEASE(x) \ - if(x) { \ - x->Release(); \ - x = NULL; \ - } - -#define CHK_LOG_BRK(exp) \ - if(FAILED(hr = (exp))) { \ - wprintf(L"HR=%08x File: %S Ln: %d\n", hr, __FILE__, __LINE__); \ - break; \ - } - -#define CHK_NULL_BRK(exp) \ - if((exp) == NULL) { \ - hr = E_OUTOFMEMORY; \ - wprintf(L"HR=%08x File: %S Ln: %d\n", hr, __FILE__, __LINE__); \ - break; \ - } -#define CHK_NULL_PTR_BRK(exp) \ - if((exp) == NULL) { \ - hr = E_INVALIDARG; \ - wprintf(L"HR=%08x File: %S Ln: %d\n", hr, __FILE__, __LINE__); \ - break; \ - } - -#define CHK_BOOL_BRK(exp) \ - if(!exp) { \ - hr = E_FAIL; \ - wprintf(L"HR=%08x File: %S Ln: %d\n", hr, __FILE__, __LINE__); \ - break; \ - } - - -class VideoBufferLock -{ -public: - VideoBufferLock(IMFMediaBuffer *pBuffer) : m_p2DBuffer(NULL) - { - m_pBuffer = pBuffer; - m_pBuffer->AddRef(); - - // Query for the 2-D buffer interface. OK if this fails. - m_pBuffer->QueryInterface(IID_IMF2DBuffer, (void**)&m_p2DBuffer); - } - - ~VideoBufferLock() - { - UnlockBuffer(); - SAFERELEASE(m_pBuffer); - SAFERELEASE(m_p2DBuffer); - } - - // LockBuffer: - // Locks the buffer. Returns a pointer to scan line 0 and returns the stride. - - // The caller must provide the default stride as an input parameter, in case - // the buffer does not expose IMF2DBuffer. You can calculate the default stride - // from the media type. - - HRESULT LockBuffer( - LONG lDefaultStride, // Minimum stride (with no padding). - DWORD dwHeightInPixels, // Height of the image, in pixels. - BYTE **ppbScanLine0, // Receives a pointer to the start of scan line 0. - LONG *plStride // Receives the actual stride. - ) - { - HRESULT hr = S_OK; - - // Use the 2-D version if available. - if (m_p2DBuffer) - { - hr = m_p2DBuffer->Lock2D(ppbScanLine0, plStride); - } - else - { - // Use non-2D version. - BYTE *pData = NULL; - - hr = m_pBuffer->Lock(&pData, NULL, NULL); - if (SUCCEEDED(hr)) - { - *plStride = lDefaultStride; - if (lDefaultStride < 0) - { - // Bottom-up orientation. Return a pointer to the start of the - // last row *in memory* which is the top row of the image. - *ppbScanLine0 = pData + abs(lDefaultStride) * (dwHeightInPixels - 1); - } - else - { - // Top-down orientation. Return a pointer to the start of the - // buffer. - *ppbScanLine0 = pData; - } - } - } - return hr; - } - - HRESULT UnlockBuffer() - { - if (m_p2DBuffer) - { - return m_p2DBuffer->Unlock2D(); - } - else - { - return m_pBuffer->Unlock(); - } - } - -private: - IMFMediaBuffer *m_pBuffer; - IMF2DBuffer *m_p2DBuffer; -}; - |
