다음을 통해 공유


고급 토폴로지 빌드

이 섹션에서는 토폴로지 빌드를 위한 몇 가지 고급 기술에 대해 설명합니다. 미디어 세션에 보내는 토폴로지의 제어를 더 많이 원하는 경우 이러한 기술을 사용할 수 있습니다.

이러한 기술은 표준 토폴로지 로더에서 제공하는 기능을 넘어서는 시나리오를 위한 것이기 때문에 많은 세부 정보는 애플리케이션의 특정 요구 사항에 따라 달라집니다. 따라서 이 섹션은 완전한 엔드 투 엔드 시나리오가 아닌 더 작은 하위 작업을 중심으로 느슨하게 구성됩니다.

일반적인 재생 애플리케이션은 다음 단계를 따릅니다.

  1. 애플리케이션은 부분 토폴로지를 빌드하고 미디어 세션에서 큐에 대기합니다.
  2. 미디어 세션은 토폴로지 로더를 호출하여 토폴로지를 resolve.

토폴로지 로더의 기능을 초과하려는 경우 다음과 같은 세 가지 일반적인 방법이 있습니다.

  • 전체 토폴로지를 빌드합니다. 미디어 세션에서 토폴로지를 큐에 대기하는 경우 MFSESSION_SETTOPOLOGY_NORESOLUTION 플래그를 사용하여 IMFMediaSession::SetTopology 를 호출합니다. 이 플래그는 미디어 세션이 토폴로지를 resolve 것을 방지합니다.

  • 토폴로지 로더를 직접 호출하여 토폴로지를 resolve. 그런 다음 미디어 세션에서 대기하기 전에 전체 토폴로지를 수정할 수 있습니다.

  • 사용자 지정 토폴로지 로더를 구현합니다. 이 방법을 사용하면 부분 토폴로지를 큐에 추가하지만 미디어 세션은 표준 Media Foundation 구현 대신 사용자 지정 로더를 호출합니다. 이 방법의 한 가지 장점은 보호된 환경 내에서 사용자 지정 토폴로지 빌드를 수행할 수 있다는 것입니다. 그러나 이 경우 토폴로지 로더는 신뢰할 수 있는 구성 요소여야 합니다. 자세한 내용은 보호된 미디어 경로를 참조하세요.)

이 섹션에서는 다음 항목을 다룹니다.

항목 설명
사용자 지정 토폴로지 로더 미디어 세션에 대한 IMFTopoLoader 의 사용자 지정 구현을 제공하는 방법입니다.
출력 노드를 미디어 싱크에 바인딩 미디어 세션 외부에서 토폴로지 로더를 사용하는 경우 토폴로지에서 출력 노드를 준비하는 방법입니다.
토폴로지에 디코더 추가 디코더를 수동으로 선택하고 토폴로지에 추가하는 방법입니다.

 

토폴로지