Fusion HDTV7 USB의 필터그래프 구성 책 읽는 소프트웨어개발자

Fusion HDTV7 USB의 필터그래프를 만들어 보았습니다. MS의 Testing TV Hardware and Software with GraphEdit 라는 글을 보고 했는데, 다행히 한번에 동작이 되었습니다. GraphEdit에서 Play버튼을 누른 후, ATSC Network Provider의 물리 채널을 공중파의 경우 14번(MBC)을 맞추어주면 나오더군요. 

물론, TV카드에서 제공하는 드라이버/프로그램은 당연하고, 덧붙여서 MPEG2코덱이 미리 설치가 되어 있어야 하고(보통은 Garbest MPEG2 decoder가 괜찮은 듯), AC3용 코덱도 설치되어 있어야 합니다. 이것들은 통합코덱이라는 이름으로 여러 배포본이 있는데, 저는 Zcodec이라는 것을 설치해서 해봤으며 간결하고 좋네요. 

다이렉트쇼의 필터를 아래와 같이 구성하려면, DirectX SDK가 있어야 합니다. 최근에 들어서는 DirectX SDK는 Windows SDK에 포함되어 있습니다. 

아무래도 HDTV를 제어하려면, 아무래도 DirectX 8.1 SDK에 나온 DirectShow 샘플을  보는 것이 좋은 출발점이 되는 것 같습니다. MS Video Control을 이용하여 TV를 제어하는 C++과 Visual Basic코드가 조금 쉬워 보입니다. 

MS Video Control에 의존하지 않고 C++로 작성된 BDA샘플코드는 필터를 구성하지 못하고 에러가 나는데, 더이상 살펴보지는 않았습니다. 


다이렉트쇼에 대해서는 시중에 두꺼운 책이 한권 있을 뿐이고, 자료 찾기가 쉽지 않았습니다. 

기존의 프로그램으로는 KMPlayer나 Daum 팟플레이어는 자체적으로 TV튜너를 액세스해서 제어해주더군요. KMPlayer에서는 Win7 WHQL드라이버가 아닐 때 WDM로 접근해서 켜도 되기는 하던데, 전체적으로 팟플레이어가 지연없이 더 빠르게 TV를 보여주었습니다. 

어쨌든, 내 맘대로 특정 위치에 TV를 표시하려면 다음의 방법이 있는 듯합니다. 
  • SkyTV카드의 경우에는 제공하는 프로그램에게 외부 프로그램에서 윈도우메시지를 통해서 채널제어 등 몇가지 제어가 가능 - 회사에 연락하면 윈도우메시지 스펙을 보내주더군요. 
  • Fusion TV카드의 경우에는 쇼핑몰에서 별도의 SDK를 판매 - 약간 비싼 편이어서 알아보지 않음
  • KMPlayer를 크기와 채널을 맞춘 후, 실행해서 이용 
  • VLCPlayer의 소스를 분석하거나 라이브러리를 이용 - 생각만 해보았는데, GPL부분 체크 필요.
  • DirectX SDK 8.1에 들어있는 DirectShow_WinXP폴더 밑의 VideoControl C++, VB예제를 이용
저는 마지막 방식으로 해봤는데 어렵지 않고 잘 됩니다. 

덧글

댓글 입력 영역