Post date: Nov 30, 2016 3:49:38 AM
VMR 는 기존의 모든 DirectShow 애플리케이션과 호환성을 유지하도록(듯이) 설계되고 있다. 기존의 애플리케이션과 함께 사용할 때, VMR 는 단일의 비디오 스트림을 사용하는 윈도우 모드로 동작한다. 이 모드는호환모드라고도 부른다. 이 모드가 준비되어 있는 것은, VMR-7 는 Windows XP 의 디폴트 렌더러이기 (위해)때문에,IGraphBuilder::RenderFile 등의인텔리전트 접속 메서드의 호출에서는 자동적으로 VMR-7 가 사용되기 때문에 있다. 애플리케이션이 인텔리전트 접속을 사용해, 기본적인 렌더링 기능 밖에 필요로 하지 않는 경우는, 특별한 코드를 더하지 않아도 Windows XP 상에서 VMR-7 를 사용해 올바르게 렌더링 할 수 있다.
또, VMR-9 도 디폴트에서는 윈도우/호환 모드로 실행된다. 그러나, VMR-9 는 디폴트 비디오 렌더러는 되지 않는다. 애플리케이션으로 VMR-9 를 사용하려면 , 필터 그래프에 명시적으로 추가할 필요가 있다. 그 때문에, 또 윈도우레스모드는 윈도우 모드보다 높은 기능을 제공하기 위해(때문에), 윈도우/호환 모드로 VMR-9 를 사용하는 이점은 특히 없다.
윈도우/호환 모드에서의 VMR-7 의 사용
윈도우/호환 모드로 VMR-7 를 셋업 하거나 제어하려면 , 특별한 프로그래밍은 필요없다. 표준의 그래프 생성 호출을 사용해 필터 그래프를 생성 하는 것만으로, VMR-7 는 디폴트로 이 모드가 된다.
윈도우/호환 모드로, VMR-7 는 독자적인 윈도우를 생성 해 비디오를 표시한다. 그 때문에, VMR-7 는 윈도우 매니저 구성 요소를 로드한다. 이 구성 요소는 IVideoWindow 인터페이스와 IBasicVideo 인터페이스를 공개한다. 애플리케이션은, 낡은 비디오 렌더러 필터의 경우와 같이, 필터 그래프 매니저로 이러한 인터페이스를 문의할 수 있다. 더 자세한 정보는, 「비디오 윈도우의 설정」을 참조할것.
다음 그림은 윈도우/호환 모드에서의 VMR-7 를 나타내고 있다.
호환성을 최대한으로 보증하기 위해(때문에), 비디오 윈도우의 클래스명은 낡은 비디오 렌더러 필터에 의해 생성 된 것 것과 같고, 낡은 비디오 렌더러의 윈도우 매니저의 코드는 대부분 VMR 에서도 사용되고 있다. 윈도우/호환 모드로, VMR 는 낡은 비디오 렌더러와 같은 정도 밖에 system resource를 소비하지 않는다. 호환 모드로 VMR-7 는 1 개의 입력 스트림 밖에 가지지 않기 때문에, 믹서나 콘포지타의 구성 요소는 로드하지 않는다.
디폴트에서는, VMR 는 비디오 윈도우에 맞추어 이미지를 확대한다. 소스의 어스펙트비(가로세로 비율)을 보관 유지하려면 , VMR_ARMODE_LETTER_BOX 플래그를 사용해 IVMRAspectRatioControl::SetAspectRatioMode 메서드를 호출하는 것.
주 : 비디오 윈도우를 자식 윈도우에 넣는 MFC 애플리케이션에는 하늘의 WM_ERASEBKGND 메시지 핸들러를 정의할 필요가 있다. 그렇지 않으면, 비디오 표시 영역은 올바르고 재드로잉(Drawing) 되지 않는다.
윈도우/호환 모드로 복수의 스트림을 가지는 VMR-7 의 사용
윈도우/호환 모드로, VMR-7 는 디폴트로 1 개의 입력 핀을 생성 해, 믹싱 모드를 무효로 한다. 믹싱 모드를 유효하게 하려면 , VMR 를 설정한 후에 접속할 필요가 있다. 더 자세한 정보는, 「복수의 스트림을 가지는 VMR (믹싱 모드)」를 참조할것. 믹싱 모드로, VMR 는 믹싱 구성 요소와 콘포지타콘포넨트를 로드하기 (위해)때문에, 필요한 system resource는 많아진다.
윈도우 모드에서의 VMR-9 의 사용
VMR-9 는 디폴트 렌더러는 아니기 때문에, 디폴트 렌더러로서의 호환 모드는 가지지 않는다. 대신에, VMR-9 는 디폴트로 4 개의 입력 핀을 가지는 윈도우 모드가 된다. 이 모드를 사용해, 4 개까지의 비디오 스트림을 믹싱 할 수 있다. 한층 더 많은 스트림의 믹싱이 필요한 경우는, 「복수의 스트림을 가지는 VMR (믹싱 모드)」로 설명하고 있도록(듯이) VMR-9 를 설정할 필요가 있다. 그 이외의 경우, 윈도우 모드의 VMR-9 는 윈도우/호환 모드의 VMR-7 와 같이 동작한다.