2017-03-03 1 views
0

Windows Media Foundation을 실험하고 있습니다.Windows Media Foundation EVR에 비디오 위치

나는 아래 링크에 설명 된대로 하나의 예제 응용 프로그램을 만들었습니다

: 나는 오디오를들을 수 오전 EVR 렌더러에서 MFCreateAggregateSource

를 사용하여 내가 추가 한 위의 예에서
https://msdn.microsoft.com/en-us/library/windows/desktop/ms703190(v=vs.85).aspx

두 개의 비디오 스트림 두 동영상은 모두로드되지만 처음로드 된 동영상은 하나만 볼 수 있습니다.

if (status == MF_TOPOSTATUS_READY) 
{ 

HRESULT hr1 = MFGetService(m_pSession, MR_VIDEO_MIXER_SERVICE,IID_PPV_ARGS(&m_pVideoMixerControl)); 

MFVideoNormalizedRect objRect1; 
objRect1.left = 0; 
objRect1.top = 0; 
objRect1.right = 100; 
objRect1.bottom = 100; 
m_pVideoMixerControl->SetStreamOutputRect(0, &objRect1); 

MFVideoNormalizedRect objRect2; 
objRect2.left = 105; 
objRect2.top = 0; 
objRect2.right = 200; 
objRect2.bottom = 200; 
m_pVideoMixerControl->SetStreamOutputRect(1, &objRect2); 

hr = StartPlayback(); 
} 

하지만 비디오에이 코드의 영향을 참조하거나 하나없는 : 나는 비디오를 모두가 창에 표시되도록 코드 아래 사용하여 별도로 비디오를 배치하려고

한 플레이어에 두 개의 비디오 스트림을 따로 배치 할 수 없습니다.

내가 잘못했거나 Windows Media Foundation에서 정확히 수행 한 작업. MFVideoNormalizedRect의

답변

1

값이 상기 범위에있는 0.0 ~ 1.0 : MFVideoNormalizedRect

예 :

objRect1.left = 0.0; // 0.0 ~ 1.0 범위 내에 있어야합니다.

objRect1.top = 0.0; // 0.0 ~ 1.0 범위 내에 있어야합니다.

objRect1.right = 0.5; // 0.0 ~ 1.0 범위 내에 있어야합니다.

objRect1.bottom = 0.5; // 0.0 ~ 1.0 범위 내에 있어야합니다.

관련 문제