MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES 특성
토폴로지 로더가 미디어 소스에서 제공하는 미디어 형식을 열거하는지 여부를 지정합니다.
데이터 형식
UINT32
다음 값 중 하나를 사용합니다.
값 | 의미 |
---|---|
|
원본 미디어 형식을 열거하지 마세요. |
|
원본 미디어 형식을 열거합니다. |
가져오기/설정
이 특성을 얻으려면 IMFAttributes::GetUINT32를 호출합니다.
이 특성을 설정하려면 IMFAttributes::SetUINT32를 호출합니다.
적용 대상:
설명
미디어 원본의 각 스트림은 둘 이상의 미디어 형식을 제공할 수 있습니다. 형식 목록은 스트림 설명자의 IMFMediaTypeHandler 인터페이스를 통해 열거됩니다.
토폴로지 로더가 미디어 원본의 미디어 형식을 시도하는 순서는 다음 두 가지 특성에 의해 제어됩니다.
- 토폴로지의 MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES 특성입니다.
- 원본 노드의 MF_TOPONODE_CONNECT_METHOD 특성입니다.
MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES 특성이 FALSE 이거나 설정되지 않은 경우 토폴로지 로더는 스트림의 현재 미디어 형식을 사용합니다. 가능한 형식의 목록을 열거하지 않습니다. 현재 미디어 형식이 다운스트림 토폴로지 노드와 호환되지 않고 디코더/변환기의 조합을 찾을 수 없는 경우 토폴로지 확인이 실패합니다.
MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES 특성이 TRUE이면 토폴로지 로더는 호환되는 형식을 찾을 때까지 원본의 미디어 형식을 열거합니다. 이 경우 작업의 정확한 순서는 원본 노드의 MF_TOPONODE_CONNECT_METHOD 특성에 MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES 플래그가 포함되는지 여부에 따라 달라집니다.
MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES TRUE이고 MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES 플래그가 설정된 경우 토폴로지 로더는 다음과 같이 다음으로 이동하기 전에 각 미디어 형식을 소모합니다.
foreach media type T
connect directly using T
if failed, connect with converters using T
if failed, connect with decoders using T
MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES TRUE 이지만 MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES 설정되지 않은 경우 토폴로지 로더는 각 미디어 형식과의 직접 연결을 시도한 다음 변환기를 사용하여 각 미디어 형식을 시도하고 마지막으로 디코더를 사용하여 각 미디어 형식을 시도합니다.
foreach media type T
connect directly using T
if failed,
foreach media type T
connect with converters using T
if failed
foreach media type T
connect with decoders using T
MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES FALSE이면 MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES 플래그가 무시됩니다.
MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES 기본값은 기존 애플리케이션과의 호환성을 위해 FALSE입니다.
이 특성의 GUID 상수는 mfuuid.lib에서 내보냅니다.
예시
다음은 MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES 플래그를 보여 주는 예제입니다. 토폴로지의 MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES 특성이 TRUE로 설정되어 있다고 가정합니다.
미디어 원본은 다음과 같은 형식을 제공합니다.
- T1, T2, T3
미디어 싱크는 다음 형식을 허용합니다.
- T3, T4
사례 1: MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES 플래그가 설정됩니다.
- 토폴로지 로더는 T1과의 직접 연결을 시도합니다. 싱크는 T1을 거부합니다.
- 토폴로지 로더는 T1을 허용하는 디코더를 삽입하고 T4를 출력합니다. 싱크는 T4를 허용합니다.
- 최종 토폴로지에는 미디어 원본 → 디코더 → 미디어 싱크가 포함됩니다.
사례 2: 플래그가 설정되지 않았습니다.
- 토폴로지 로더는 T1과의 직접 연결을 시도합니다. 싱크는 T1을 거부합니다.
- 토폴로지 로더는 T2와의 직접 연결을 시도합니다. 싱크는 T2를 거부합니다.
- 토폴로지 로더는 T3와의 직접 연결을 시도합니다. 싱크는 T3을 허용합니다.
- 최종 토폴로지에는 미디어 원본 → 미디어 싱크가 포함됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows 7 [데스크톱 앱만 해당] |
지원되는 최소 서버 |
Windows Server 2008 R2 [데스크톱 앱만 해당] |
헤더 |
|
참고 항목