コード例 #1
0
ファイル: camera.cpp プロジェクト: shivam11/stasmjs
//-----------------------------------------------------------------------------
void IdmCaptureFormat (void)
{
if (!gDriverCaps.fHasDlgVideoFormat)
    Err("The camera driver does not support this command");
else if (capDlgVideoFormat(hgCapWnd))
    capGetStatus(hgCapWnd, &gCapStatus, sizeof(CAPSTATUS));
}
コード例 #2
0
ファイル: mcivideograbber.cpp プロジェクト: Bjoernke/livecode
void CWinVideoGrabber::VideoFormatDialog()
{
	if (!inited) return;
	CAPDRIVERCAPS CapDrvCaps; 
	capDriverGetCaps(videowindow, &CapDrvCaps, sizeof (CAPDRIVERCAPS)); 
	if (CapDrvCaps.fHasDlgVideoFormat) 
    capDlgVideoFormat(videowindow); 
}
コード例 #3
0
ファイル: dll.c プロジェクト: parente/labview-webcam
//Description: shows a dialog box with web cam format options in it
//	not yet implemented because not sure which dialogs should be shown for given values
//functions to call are commented out below
//Input: the dialog to show
//Output: none
EXPORT void ShowDialog(long whichDialog) {
	if(whichDialog==0) {
		capDlgVideoFormat(hWndC);
	}
	else if(whichDialog==1) {
		capDlgVideoDisplay(hWndC);
	}
}
コード例 #4
0
ファイル: MainFrm.cpp プロジェクト: hiccupzhu/misc_starting
/* 配置视频格式:分辨率和视频格式:RGB/I420 */
void CMainFrame::OnVfwVideoformat()
{
	// TODO: 在此添加命令处理程序代码
	DWORD fsize;
	if(m_caps.fHasDlgVideoFormat){
		capDlgVideoFormat(m_hWndCap);
		fsize = capGetVideoFormatSize(m_hWndCap);
		capGetVideoFormat(m_hWndCap, lpbiIn, fsize);
		Config_XVIECODEC();
	}
}
コード例 #5
0
	void CSoCProjectView::OnInitialUpdate()
	{
		CScrollView::OnInitialUpdate();

		CSize sizeTotal;
		// TODO: 이 뷰의 전체 크기를 계산합니다.
		sizeTotal.cx = 640;
		sizeTotal.cy = 480;
		SetScrollSizes(MM_TEXT, sizeTotal);

		CSoCProjectDoc*pDoc = GetDocument();
		// TODO: 여기에 생성 코드를 추가합니다.
		RECT r;
		GetClientRect(&r);
		pDoc->m_hCamWnd = capCreateCaptureWindow(
			_T("Capture Window"), WS_CHILD | WS_VISIBLE, 5, 5, r.right-5, r.bottom-5, this->m_hWnd, NULL);

		// 설치된 디바이스를 순서로 0 ~ 9까지의 카메라를 지정 할 수 있다.
		if(!capDriverConnect(pDoc->m_hCamWnd, 0)) AfxMessageBox(_T("웹캠 인식 실패 ㅠㅠ"));

		// 현재 드라이버 정보에 관한 내용 얻어오기
		capDriverGetCaps(pDoc->m_hCamWnd, &pDoc->m_psCapsInfo, sizeof(pDoc->m_psCapsInfo));

		//비디오 포맷 변환을 지원하는지 확인한다.
		if(pDoc->m_psCapsInfo.fHasDlgVideoFormat) {
			// 비디오 포맷 변환을 지원하면 아래 함수를 호출한다.
			// 호출되는 함수는 새로운 다이얼로그를 호출하고 해상도와 포맷형식, 프레임 버퍼크기등을 지정할 수 있다.
			// 이때, 지원되지 않는 비디오포멧을 설정하면 검정 화면을 보게될 것이야...
			capDlgVideoFormat(pDoc->m_hCamWnd);
		}

		// m_psCapsInfo.fHasOverlay에서 overlay가 지원이 되지 않으면(=0) 사용 할 수 없다.
		if(pDoc->m_psCapsInfo.fHasOverlay) {
			// 하드웨어 오버레이는 시스템 부하를 줄여준다.(optioinal)
			capOverlay(pDoc->m_hCamWnd, FALSE);
		}

		// BITMAPINFO 설정
		capGetVideoFormat(pDoc->m_hCamWnd, &pDoc->m_BTMInfo, sizeof(pDoc->m_BTMInfo));

		// 1/1000 단위로 영상이 출력된다.
		capPreviewRate(pDoc->m_hCamWnd, 1);

		// 프리뷰 영상을 재생한다.
		capPreview(pDoc->m_hCamWnd, TRUE);

		CAPTUREPARMS cp;     
	
		capCaptureGetSetup(pDoc->m_hCamWnd, &cp, sizeof(cp) );	// get the current defaults      
	
		cp.dwRequestMicroSecPerFrame = 1;					// Set desired frame rate     
		cp.fMakeUserHitOKToCapture   = FALSE;
		cp.fYield                    = TRUE;                // we want capture on a background thread.
		cp.wNumVideoRequested        = (WORD) 1;			// we may get less than this - no problem
		cp.fCaptureAudio             = FALSE;     
		cp.vKeyAbort                 = 0;                   // If no key is provided, it won't stop...
		cp.fAbortLeftMouse           = FALSE;
		cp.fAbortRightMouse          = FALSE;
		cp.fLimitEnabled             = FALSE;				// we want to stop     
		cp.fMCIControl               = FALSE;
	
		capCaptureSetSetup(pDoc->m_hCamWnd, &cp, sizeof(cp) ); 
		
		capSetCallbackOnVideoStream(pDoc->m_hCamWnd, VideoCallbackProc);
		capSetCallbackOnFrame(pDoc->m_hCamWnd, VideoCallbackProc);
	}