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
M480 출장 ISDB-T 알고리즘 Dshow English 군대 티스토리 초대장 영어 이메일 Error Case DVB-T C spam mail C++ DVB debugging Brazil 벨소리 변경 project 1seg 개발자 Wince5.0 MP3 퇴사 음식 서태지 Java Algorithm Windows Mobile6.0 DirectShow Debug VC++ warning Linux english email 티스토리초대 It 미라지폰 isdbt
 Calendar
«   2025/07   »
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