2008년 05월 16일
비스타와 Overlay Mixer
Player를 비스타에서 돌리는 실험을 하는중..
디폴트로 Overlay Mixer Renderer를 사용하는데 화면이 깜빡이고 필터가 연결이 되지 않는 현상이 발생하였다.
그래서 KMP로 테스트 해보니 OverlayMixer가 사용중이라고 뜨고 역시나 사용하려고 하면 깜빡인다.
XP에서 잘되던 Overlay Mixer를 Vista에서는 포기해야될 듯 하다.
그렇다면 버전별로 설정을 바꿔야 하겠다.
디폴트로 Overlay Mixer Renderer를 사용하는데 화면이 깜빡이고 필터가 연결이 되지 않는 현상이 발생하였다.
그래서 KMP로 테스트 해보니 OverlayMixer가 사용중이라고 뜨고 역시나 사용하려고 하면 깜빡인다.
XP에서 잘되던 Overlay Mixer를 Vista에서는 포기해야될 듯 하다.
OnWindows Vista or later, the Overlay Mixer disables Desktop WIndow Manager(DWM) composition if the display driver supports hardware overlay.
Applications should avoid using the Overlay Mixer Filter;
use the VMR-9 or the Enhanced Video Renderer(EVR) instead.
출처: msdn - Overlay Mixer Filter
그렇다면 버전별로 설정을 바꿔야 하겠다.
DWORD dwWinver = GetVersion();
/// vista 이상에서 Overlay Mixer를 사용에 문제가 있다. VMR9를 Default로 하자.
if(dwWinver >= _WIN_VISTA)
m_pProperties.SetPropRenderer(X_VMR9_RENDERER);
else
m_pProperties.SetPropRenderer(X_OVERLAYMIXER);
GetVersion Function - msdn
#include <windows.h>
#include <stdio.h>
void main()
{
DWORD dwVersion, dwMajorVersion, dwMinorVersion, dwBuild;
dwVersion = GetVersion();
// Get the Windows version.
dwMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion)));
dwMinorVersion = (DWORD)(HIBYTE(LOWORD(dwVersion)));
// Get the build number.
if (dwVersion < 0x80000000)
dwBuild = (DWORD)(HIWORD(dwVersion));
else // Windows Me/98/95
dwBuild = 0;
printf("Version is %d.%d (%d)\n", dwMajorVersion, dwMinorVersion, dwBuild);
}
# by | 2008/05/16 10:39 | DirectShow | 트랙백 | 덧글(2)






☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
다름이 아니라 저도 필터를 연결하는 부분을 공부 하다가 비스타를 쓰고 있어서 문제가 되는 경험을 하고 있는데요
정말 좋은 내용 보고 갑니다.
다름이 아니라 디폴트 선언해 주는 저 부분을 어디다가 넣어야 설정이 될지 질문 드립니다 ^^