|
안녕하세요 매번 질문만 드려서 죄송하네요..
현재 DSpack 을 이용하여 USB 웹켐영상을 받아오고, CAPTURE 하고, 사진으로 저장하기 까지 했습니다.
그런데 CAPTURE SIZE를 조절하고 싶은데 영 잘 안되네요..
드라이버에서 지원하는 켑춰설정 팝업창을 보이도록하고 이곳에서 SIZE를 조절하는것은 되거든요.
그런데 그런거 사용안하고 직접 명령어를 날려서 SIZE를 조절하고 싶은데 여기저기 외국싸이트까지 다 찾아봐도
VC++ 관련자료나 델파이는 많이 있는데 그걸 BUILDER 에 적용하려니 잘 안되네요..ㅠ.ㅠ
누가 좀 알려주세요~
관련 소스 코드는 아래와 같습니다.
CheckDSError(Filter->QueryInterface(IID_IBaseFilter, &SourceFilter));
TPinList *PinList = new TPinList(SourceFilter) ;
VIDEOINFOHEADER vih;
::ZeroMemory(&vih, sizeof(VIDEOINFOHEADER));
::ZeroMemory(&vih.bmiHeader, sizeof(BITMAPINFOHEADER));
vih.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
vih.bmiHeader.biWidth = 640;
vih.bmiHeader.biHeight = 480;
vih.bmiHeader.biPlanes = 1;
vih.bmiHeader.biBitCount = 24;
vih.bmiHeader.biCompression = 0;
vih.bmiHeader.biSizeImage = 640*480*3; //UDIBSIZE(vih.bmiHeader);
vih.AvgTimePerFrame = 10000000 / 17;
AM_MEDIA_TYPE type;
type.majortype = MEDIATYPE_Video;
type.subtype = MEDIASUBTYPE_RGB24;
type.bFixedSizeSamples = TRUE;
type.bTemporalCompression = FALSE;
type.lSampleSize = vih.bmiHeader.biSizeImage;
type.formattype = FORMAT_VideoInfo;
type.pUnk = NULL;
type.cbFormat = sizeof(VIDEOINFOHEADER);
type.pbFormat = (PBYTE) &vih;
hr = ((IAMStreamConfig *)(PinList->First()))->SetFormat(&type);
여기에서 IAMStreamConfig 로의 형 변환이 안되고 컴파일 시 error가 나더라고요.
여기 게시판에서도 찾아보니 IAMStreamConfig 로의 형 변환이 델파이는 잘 되는데 빌더는 잘 안된다고
나와있더라고요..
고수님들 부탁드립니다.~~
|