IT 취미생활.  
Front Page
Tag | Location | Media | Guestbook | Admin   
 
'Dshow'에 해당하는 글(4)
2008.12.03   [DshowFilter] PC based Dshow building시 Error
2008.12.03   [DshowFilter]"IQualityControl::Notify not over-ridden from CBasePin. (IGNORE is OK)"
2008.03.09   [Dshow] DirectShow SDK Filter Graph Editor
2008.03.09   [Dshow] 연결된 필터 이름 알아오기


[DshowFilter] PC based Dshow building시 Error


PC 상에서 Dshow 관련 Build시 아래와 같은  Build Error 를 찾아 볼 수 있는데
해결 방법으로 두가지가 있습니다.




>C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winnt.h(222) : error C2146: syntax error :

missing ';' before identifier 'PVOID64'
1>C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\include\winnt.h(222) : error C4430: missing type

specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\include\winnt.h(5940) : error C2146: syntax error :

missing ';' before identifier 'Buffer'
1>C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\include\winnt.h(5940) : error C4430: missing type

specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files\Microsoft Visual Studio
8\VC\PlatformSDK\include\winnt.h(5940) : error C4430: missing type


첫번째 해결 방법
-----------
Wiknnt.h안에 포함하고 있는 매크를 아래와 같이 수정 합니다.
 
원본 :
typedef void *PVOID;
typedef void *POINTER_64 PVOID64;


수정 본:
#define POINTER_64 __ptr64
typedef void *PVOID;
typedef void *POINTER_64 PVOID64;


두번째 해결 방법
가장 최신의  platform SDk를 설치 하는 것입니다.



[DshowFilter]"IQualityControl::Notify not over-ridden from CBasePin. (IGNORE is OK)"
Runtime시 아래와 같은 메시리를 뿜으며 대화상자가 뜬다.

"IQualityControl::Notify not over-ridden from CBasePin. (IGNORE is OK)"
At line 2346 of C:\DXSDK\Samples\C++\DirectShow\BaseClasses\amfilter.cpp
Continue? (Cancel to debug)


해결방법 :
이 에러 메시는 런타임시 필터 그래프에서 출력이 된다.
그래서 위 에러를 위해 CBasePin을 상속 받은 Class에서
아래와 같이 코드를 추가 하였다.

STDMETHODIMP Notify(IBaseFilter *pSelf,Quality q ) { return S_OK; }

음 잘 동작한다....


[Dshow] DirectShow SDK Filter Graph Editor
필요한 파일
-----------------------------------------------
   - 파일명: graphedt.exe
   - 정식명칭: DirectShow SDK Filter Graph Editor
-----------------------------------------------

그래프에디터는 SDK를 설치하지 않아도 동작합니다.
따라서 디버깅할 때 편리합니다.

system에 등록 하기 위해서는 아래와 같이 dll을 등록 해야 합니다.

* proppage.dll
regsvr32로 등록합니다.

실행 창에서
regsvr32.exe proppage.dll


[Dshow] 연결된 필터 이름 알아오기

관련 Site에서 간단하게 도움을 받아서 작성한 Function입니다.

* Wince에서 NullPlayer를 작성하여 OS에서 연결되는 Filter 정보를
확인하고자 하여 아래 함수를 작성하였습니다.

코드 :

HRESULT GetConnectFiltersName( IGraphBuilder *pGraph )
{
 IEnumFilters *pEnumFilter = NULL;
 HRESULT hr =  pGraph->EnumFilters( &pEnumFilter );
 IBaseFilter *pBaseFilter = NULL;
 FILTER_INFO stFilterInfo;

 while(  S_OK == pEnumFilter->Next( 1, &pBaseFilter, NULL ) )
 {
  pBaseFilter->QueryFilterInfo( &stFilterInfo );
  char sztmp[256];
  ::WideCharToMultiByte(CP_ACP, 0, stFilterInfo.achName, -1, sztmp, 256, NULL, NULL);
  ::printf( "%s\r\n", sztmp );
  pBaseFilter->Release();
 }

 pEnumFilter->Release();
 return S_OK;
}


그럼 고운하루 되세요




BLOG main image
취미생활
 Notice
 Category
분류 전체보기 (191)
매일매일갱생 (83)
서버개발 (1)
임베디드개발 (12)
Programming (80)
Personal Projects (6)
유용한 프로그램 (0)
 TAGS
DirectShow 음식 isdbt 알고리즘 퇴사 Linux C English debugging C++ warning 미라지폰 군대 DVB M480 개발자 영어 이메일 ISDB-T Error Case Dshow 서태지 Algorithm spam mail DVB-T Wince5.0 VC++ Java english email 1seg Windows Mobile6.0 MP3 project 티스토리 초대장 Brazil 티스토리초대 출장 It Debug 벨소리 변경
 Calendar
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
 Recent Entries
 Recent Comments
 Recent Trackbacks
 Archive
 Link Site
zextor
괴짜 프로그래머의 일상사~@@
Gag & Peace, and more..
Kazakhstan Almaty.......
Min-A
Sadgarret
Steve Yoon's log
가슴 뛰는 삶을 살아라
오스틴 파워
GUI sin
melanie parker_Lady
제레미의 TV 2.0 이야기..
 Visitor Statistics
Total :
Today :
Yesterday :
rss