-
大小: 26.68MB文件類型: .rar金幣: 1下載: 0 次發布日期: 2023-08-02
- 語言: 其他
- 標簽: MEDIAFOUNDAT??
資源簡介
用MEDIA FOUNDATion 抓取攝像頭視頻信息,也可以抓取音頻信息,然后生成WMV視頻文件,此代碼部分參考微軟提供資料
代碼片段和文件信息
//////////////////////////////////////////////////////////////////////////
//
//?device.cpp:?Manages?the?Direct3D?device
//?
//?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.
//
//////////////////////////////////////////////////////////////////////////
#include?“stdafx.h“
#include?“MFCaptureD3D.h“
#include?“BufferLock.h“
const?DWORD?NUM_BACK_BUFFERS?=?2;
void?TransformImage_RGB24(
????BYTE*???????pDest
????LONG????????lDestStride
????const?BYTE*?pSrc
????LONG????????lSrcStride
????DWORD???????dwWidthInPixels
????DWORD???????dwHeightInPixels
????);
void?TransformImage_RGB32(
????BYTE*???????pDest
????LONG????????lDestStride
????const?BYTE*?pSrc
????LONG????????lSrcStride
????DWORD???????dwWidthInPixels
????DWORD???????dwHeightInPixels
????);
void?TransformImage_YUY2(
????BYTE*???????pDest
????LONG????????lDestStride
????const?BYTE*?pSrc
????LONG????????lSrcStride
????DWORD???????dwWidthInPixels
????DWORD???????dwHeightInPixels
????);
void?TransformImage_NV12(
????BYTE*?pDst?
????LONG?dstStride?
????const?BYTE*?pSrc?
????LONG?srcStride
????DWORD?dwWidthInPixels
????DWORD?dwHeightInPixels
????);
RECT????LetterBoxRect(const?RECT&?rcSrc?const?RECT&?rcDst);
RECT????CorrectAspectRatio(const?RECT&?src?const?MFRatio&?srcPAR);
HRESULT?GetDefaultStride(IMFMediaType?*pType?LONG?*plStride);
inline?LONG?Width(const?RECT&?r)
{
????return?r.right?-?r.left;
}
inline?LONG?Height(const?RECT&?r)
{
????return?r.bottom?-?r.top;
}
//?靜態表的輸出格式和轉換功能。
struct?ConversionFunction
{
????GUID???????????????subtype;
????IMAGE_TRANSFORM_FN?xform;
};
ConversionFunction???g_FormatConversions[]?=
{
????{?MFVideoFormat_RGB32?TransformImage_RGB32?}
????{?MFVideoFormat_RGB24?TransformImage_RGB24?}
????{?MFVideoFormat_YUY2??TransformImage_YUY2??}??????
????{?MFVideoFormat_NV12??TransformImage_NV12??}
};
const?DWORD???g_cFormats?=?ARRAYSIZE(g_FormatConversions);
//-------------------------------------------------------------------
//?構造函數
//-------------------------------------------------------------------
DrawDevice::DrawDevice()?:?
????m_hwnd(NULL)
????m_pD3D(NULL)
????m_pDevice(NULL)
????m_pSwapChain(NULL)
????m_format(D3DFMT_UNKNOWN)
????m_width(0)
????m_height(0)
????m_lDefaultStride(0)
????m_interlace(MFVideoInterlace_Unknown)
????m_convertFn(NULL)
{
????m_PixelAR.Denominator?=?m_PixelAR.Numerator?=?1;?
????ZeroMemory(&m_d3dpp?sizeof(m_d3dpp));
}
//-------------------------------------------------------------------
//?析構函數
//-------------------------------------------------------------------
DrawDevice::~DrawDevice()
{
????DestroyDevice();
}
//---------------
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????208384??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\Debug\MFRealTimeDisplay.exe
?????文件????1619944??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\Debug\MFRealTimeDisplay.ilk
?????文件????6269952??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\Debug\MFRealTimeDisplay.pdb
?????文件???????3617??2018-09-25?12:00??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\BufferLock.h
?????文件?????121839??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\capture.wmv
?????文件?????142866??2018-09-26?14:34??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\ABout.obj
?????文件???????5602??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\cl.command.1.tlog
?????文件?????134872??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\CL.read.1.tlog
?????文件???????8952??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\CL.write.1.tlog
?????文件?????176448??2018-09-26?14:30??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\device.obj
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
?????文件??????????2??2018-09-26?14:58??MF攝像頭實時顯示和生成wmv文件\MFRealTimeDisplay\Debug\li
............此處省略103個文件信息
評論
共有 條評論