고급 토폴로지 빌드
이 섹션에서는 토폴로지 빌드를 위한 몇 가지 고급 기술에 대해 설명합니다. 미디어 세션에 보내는 토폴로지의 제어를 더 많이 원하는 경우 이러한 기술을 사용할 수 있습니다.
이러한 기술은 표준 토폴로지 로더에서 제공하는 기능을 넘어서는 시나리오를 위한 것이기 때문에 많은 세부 정보는 애플리케이션의 특정 요구 사항에 따라 달라집니다. 따라서 이 섹션은 완전한 엔드 투 엔드 시나리오가 아닌 더 작은 하위 작업을 중심으로 느슨하게 구성됩니다.
일반적인 재생 애플리케이션은 다음 단계를 따릅니다.
- 애플리케이션은 부분 토폴로지를 빌드하고 미디어 세션에서 큐에 대기합니다.
- 미디어 세션은 토폴로지 로더를 호출하여 토폴로지를 resolve.
토폴로지 로더의 기능을 초과하려는 경우 다음과 같은 세 가지 일반적인 방법이 있습니다.
전체 토폴로지를 빌드합니다. 미디어 세션에서 토폴로지를 큐에 대기하는 경우 MFSESSION_SETTOPOLOGY_NORESOLUTION 플래그를 사용하여 IMFMediaSession::SetTopology 를 호출합니다. 이 플래그는 미디어 세션이 토폴로지를 resolve 것을 방지합니다.
토폴로지 로더를 직접 호출하여 토폴로지를 resolve. 그런 다음 미디어 세션에서 대기하기 전에 전체 토폴로지를 수정할 수 있습니다.
사용자 지정 토폴로지 로더를 구현합니다. 이 방법을 사용하면 부분 토폴로지를 큐에 추가하지만 미디어 세션은 표준 Media Foundation 구현 대신 사용자 지정 로더를 호출합니다. 이 방법의 한 가지 장점은 보호된 환경 내에서 사용자 지정 토폴로지 빌드를 수행할 수 있다는 것입니다. 그러나 이 경우 토폴로지 로더는 신뢰할 수 있는 구성 요소여야 합니다. 자세한 내용은 보호된 미디어 경로를 참조하세요.)
이 섹션에서는 다음 항목을 다룹니다.
항목 | 설명 |
---|---|
사용자 지정 토폴로지 로더 | 미디어 세션에 대한 IMFTopoLoader 의 사용자 지정 구현을 제공하는 방법입니다. |
출력 노드를 미디어 싱크에 바인딩 | 미디어 세션 외부에서 토폴로지 로더를 사용하는 경우 토폴로지에서 출력 노드를 준비하는 방법입니다. |
토폴로지에 디코더 추가 | 디코더를 수동으로 선택하고 토폴로지에 추가하는 방법입니다. |
관련 항목