2011-02-14 5 views
1

지정된 창 (예 : 320 * 240)에 표시되도록 비디오를 조정하고 싶습니다.VMR9 렌더리스 모드에서 비디오를 지정된 크기로 조정하려면 어떻게해야합니까?

표면에 렌더링하려면 VMR-9 Renderless 모드를 사용해야합니다. IVMRMixerControl9-> SetOutputRect() 메서드를 사용하여 비디오 크기를 조정하고 있습니다. 그래서 네이티브 비디오 크기를 얻어야합니다. 하지만 어떻게해야할지 모르겠다.

GetOutputRect 메서드는 항상 0과 1을 반환합니다. get_VideoHeight 및 get_VideoWidth 메서드는 E_NOINTERFACE를 반환합니다. 하지만 비디오 파일로 filterGraph를 만들었습니다.

내가 잘못 생각했거나 다른 방법이 있습니까?

미리 감사드립니다.

답변

2

이 방법이 도움이 될지 모르지만 VMR의 창없는 모드를 살펴 보았습니까? 비디오를 표시 할 수있는 창 (예 : UserControl)의 핸들을 지정할 수 있습니다. IVMRWindowlessControl9 인터페이스에서 GetNativeVideoSize를 호출하여 기본 윈도우 크기를 가져 와서 크기를 설정 한 다음 SetVideoPosition을 호출하여 비디오가 어디로 가야하는지 지정할 수 있습니다. 필자는 UserControl의 ClientRectangle을 대상 사각형으로 사용하고 네이티브 비디오 크기를 소스 사각형으로 사용하고 있습니다.

+0

예! 그것은 당신의 방법으로 잘 돌아가고 있습니다. 나는 또 다른 필터 그래프를 만들고 기본 윈도우 크기를 얻는다. GetNativeVideoSize 및 Get_VideoHeight가 렌더리스 모드로 실행될 수없는 것 같습니다. 고마워, 데이빗! – Nickolas

관련 문제