从www.vckbase代码仓库中有一个vcap的视频捕捉程序。可以对PC机上安装的摄像头拍摄到的视频画面进行捕捉并播放。我想询问的是视频摄像头输出的数据到底是什么格式的?输出的到底是什么数据?如何得到这些数据呢?在vcap程序中只是创建了一个视频窗口,capCreateWindow和capPreview进行播放,但问题是用capPreview进行播放之前到底是什么数据呢?欢迎大家讨论。
解决方案 »
- XP下VC60编写的应用程序外观,不能适应不同操作系统,比如按钮都是很丑的那种样式,怎么适应不同的操作系统?
- 虽然网上的代码都这么写,但事实证明这个代码是无用的
- 使用ATL中的ATL::CDataSource连接Access数据库不成功?
- 200分求解:用BCB制作的ocx,在vc的子对话框上使用,ocx失去焦点后,程序就没有响应
- VC如何实现对话框程序输出信息至Windows的DOS窗口中?
- 如何从以 俄文扩展ASCII码表 编码的二进制文件中将文本读取出来?
- windows下有inet_pton吗?
- 用ADO对access操作时,加入时如何知道新加入的在数据库中的位置
- VS2010 链接数据库
- 请帮帮我:我用下面的程序进行查询,但查询结果老是为空,找不到记录,我看了数据库有此记录不知为何?请赐教。
- 如何让控件显示窗体的背景色,而非本身的颜色
- 请教:如何实现让程序自动重启?
一般是未压缩的,如YUV系列如I420,UYVY等和RGB系列如RGB16/24/32等,具体可设置
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMeenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
gpJpegFile = new JpegFile(); //initializate gpJpegFile;
ghDlg = AfxGetMainWnd()->GetSafeHwnd (); //init ghDlg for callback pro
CWnd* pWnd=AfxGetMainWnd()->GetDlgItem (IDC_PICT); //GET the capture wi
do
w's father windows
CRect rect;
pWnd->GetWindowRect (&rect); //get rect.
ghCapWnd= capCreateCaptureWindow((LPTSTR)"MYCAP",WS_VISIBLE|WS_CHILD
|WS_EX_DLGMODALFRAME,0,0,rect.Width(),rect.Height(),
pWnd->GetSafeHwnd(),0); //create capture window
ASSERT(ghCapWnd);
if(capDriverConnect(ghCapWnd,0)){ //connect to Driver
capDriverGetCaps(ghCapWnd,&gCapDrvCaps,sizeof(CAPDRIVERCAPS)); /
Get statu
s
if(gCapDrvCaps.fCaptureInitialized){
capPreviewRate(ghCapWnd,33);
capPreview(ghCapWnd,TRUE);
capGetVideoFormat(ghCapWnd,&_bmpInfo,(WORD)sizeof(_bmpIn
o));
capSetCallbackOnFrame(ghCapWnd,FrameCallbackProc);
capSetCallbackOnStatus(ghCapWnd,StatusCallbackProc);
}
else {
AfxMessageBox("²¶»ñ¿¨³õʼ»¯Ê§°Ü");
AfxGetMainWnd()->PostMessage (WM_CLOSE);
}
}
else {
AfxMessageBox("²¶»ñ¿¨Á¬½Óʧ°Ü");
AfxGetMainWnd()->PostMessage (WM_CLOSE);
}
return TRUE; // return TRUE unless you set the focus to a control
}
void CCapTestDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}