|
몇일을 버그 찾느라 고생했는데 문제는 아주 엉뚱한 곳에 있었습니다.
문제는 바로 카메라 였습니다. 현재 개발해야 하는 카메라가 잠시 대여해온 것이라 처음에 잠깐 화면 띄우는 것 까지 코딩하면서 문제가 없었는데 카메라를 반납하고 테스트할 카메라가 없어서 오래된 USB 카메라를 대체해서 테스트를 했습니다.
바로 그 오래된 카메라가 버그를 만들어 내는 요인이었네요..
원인은 모르겠지만 (드라이버 문제일 듯) 똑같은 코드임에도 오래된 카메라는 BindToObject에서 계속 에러를 토해내고 신형 카메라는 에러를 토해내지 않네요..
물론 오래된 USB 카메라도 그냥 릴리즈 모드에서는 정상적으로 다 동작을 합니다. 디버그 모드에서만 에러를 뿌리고 뻗어 버립니다.
그 원인은 모르겠고요...
하여간 몇일 고생했는데 참 어처구니 없는, 그러나 이해할 수 없는 현상이네요..
김시환 님이 쓰신 글 :
: DirectShow 를 이용하여 카메라의 영상을 출력하는 프로그램을 만들고 있습니다.
: 여기,저기 인터넷 뒤져서 코드를 만들고 실행해서 카메라 영상을 출력하는것은 되었습니다.
:
: 그런데 문제는 이상하게 실행파일을 실행하면 문제가 없는데 디버깅 모드에서 자꾸 에러가 걸려서 더이상 진행이 안된다는 것입니다.
:
: 아래 코드에서 계속 에러를 토해 냅니다. 예전에 다른분이 빌더6로 만든 코드가 있어서 컴파일하고 돌려보면 역시 아래 함수에서 에러를 토해 냅니다. 물론 컴파일만 하고 실행파일을 실행하면 정상적으로 동작을 합니다.
:
: pMoniker->BindToObject(NULL, NULL, IID_IBaseFilter, (void**)pFilter);
:
:
: 다른 부분도 빨리 해야 하는데 위에서 계속 에러를 토해내고 디버깅이 안돼고 다음으로 넘어가지 않으니 디버깅을 할 수가 없네요..
:
: 뭔가 DirectShow 버젼의 문제일까요?
:
: 현재 윈7 32비트에서 컴파일 중입니다.
|