다음을 통해 공유


MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES 특성

토폴로지 로더가 미디어 소스에서 제공하는 미디어 형식을 열거하는지 여부를 지정합니다.

데이터 형식

UINT32

다음 값 중 하나를 사용합니다.

의미
FALSE
원본 미디어 형식을 열거하지 마세요.
TRUE
원본 미디어 형식을 열거합니다.

 

가져오기/설정

이 특성을 얻으려면 IMFAttributes::GetUINT32를 호출합니다.

이 특성을 설정하려면 IMFAttributes::SetUINT32를 호출합니다.

적용 대상:

IMFTopology

설명

미디어 원본의 각 스트림은 둘 이상의 미디어 형식을 제공할 수 있습니다. 형식 목록은 스트림 설명자의 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 플래그가 설정됩니다.

  1. 토폴로지 로더는 T1과의 직접 연결을 시도합니다. 싱크는 T1을 거부합니다.
  2. 토폴로지 로더는 T1을 허용하는 디코더를 삽입하고 T4를 출력합니다. 싱크는 T4를 허용합니다.
  3. 최종 토폴로지에는 미디어 원본 → 디코더 → 미디어 싱크가 포함됩니다.

사례 2: 플래그가 설정되지 않았습니다.

  1. 토폴로지 로더는 T1과의 직접 연결을 시도합니다. 싱크는 T1을 거부합니다.
  2. 토폴로지 로더는 T2와의 직접 연결을 시도합니다. 싱크는 T2를 거부합니다.
  3. 토폴로지 로더는 T3와의 직접 연결을 시도합니다. 싱크는 T3을 허용합니다.
  4. 최종 토폴로지에는 미디어 원본 → 미디어 싱크가 포함됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버
Windows Server 2008 R2 [데스크톱 앱만 해당]
헤더
Mfidl.h

참고 항목

Media Foundation 특성의 사전순 목록

토폴로지 특성