MFTRegister 함수(mfapi.h)

MFT(Media Foundation 변환)에 대한 정보를 레지스트리에 추가합니다.

애플리케이션은 MFTEnum 또는 MFTEnumEx 함수를 호출하여 MFT 를 열거할 수 있습니다.

구문

HRESULT MFTRegister(
  [in] CLSID                  clsidMFT,
  [in] GUID                   guidCategory,
  [in] LPWSTR                 pszName,
  [in] UINT32                 Flags,
  [in] UINT32                 cInputTypes,
  [in] MFT_REGISTER_TYPE_INFO *pInputTypes,
  [in] UINT32                 cOutputTypes,
  [in] MFT_REGISTER_TYPE_INFO *pOutputTypes,
  [in] IMFAttributes          *pAttributes
);

매개 변수

[in] clsidMFT

MFT의 CLSID입니다. 또한 동일한 CLSID를 사용하여 MFT를 COM 개체로 등록해야 합니다.

[in] guidCategory

MFT의 범주를 지정하는 GUID입니다. MFT 범주 목록은 MFT_CATEGORY 참조하세요.

[in] pszName

MFT의 이름을 포함하는 와이드 문자열입니다.

[in] Flags

_MFT_ENUM_FLAG 열거형에서 다음 플래그 중 0개 이상의 비트 OR입니다.

값 의미
MFT_ENUM_FLAG_ASYNCMFT
MFT는 소프트웨어에서 비동기 처리를 수행합니다. 비동기 MFT를 참조하세요. 이 플래그는 하드웨어 변환에는 적용되지 않습니다.

Windows 7이 필요합니다.

MFT_ENUM_FLAG_FIELDOFUSE
애플리케이션을 사용하려면 MFT의 잠금을 해제해야 합니다. IMFFieldOfUseMFTUnlock을 참조하세요.

Windows 7이 필요합니다.

MFT_ENUM_FLAG_HARDWARE
MFT는 AVStream 드라이버 또는 GPU 기반 프록시 MFT를 사용하여 하드웨어 기반 데이터 처리를 수행합니다. 이 범주의 MFT는 항상 데이터를 비동기적으로 처리합니다. 하드웨어 MFT를 참조하세요.
참고 이 플래그는 하드웨어에서 전적으로 작업을 수행하는 비디오 코덱 및 비디오 프로세서에 적용됩니다. 디코딩을 지원하기 위해 DirectX 비디오 가속을 사용하는 소프트웨어 디코더에는 적용되지 않습니다.
 
Windows 7이 필요합니다.
MFT_ENUM_FLAG_SYNCMFT
MFT는 소프트웨어에서 동기 처리를 수행합니다. 이 플래그는 하드웨어 변환에는 적용되지 않습니다.
MFT_ENUM_FLAG_TRANSCODE_ONLY
MFT는 코드 변환에 최적화되어 있으며 재생에 사용하면 안 됩니다.

Windows 7이 필요합니다.

 

플래그를 0으로 설정하는 것은 MFT_ENUM_FLAG_SYNCMFT 플래그를 설정하는 것과 같습니다. MFT의 기본 처리 모델은 동기 처리입니다.

Windows 7 이전에는 Flags 매개 변수가 예약되었습니다.

[in] cInputTypes

pInputTypes 배열의 요소 수입니다.

[in] pInputTypes

MFT_REGISTER_TYPE_INFO 구조체의 배열에 대한 포인터입니다. 배열의 각 멤버는 MFT에서 지원하는 입력 형식을 지정합니다. 이 매개 변수는 NULL일 수 있습니다.

이 매개 변수는 NULL일 수 있습니다. 그러나 매개 변수가 NULL인 경우 애플리케이션이 원하는 입력 형식에 대해 NULL 을 지정하는 경우에만 MFT가 열거됩니다.

[in] cOutputTypes

pOutputTypes 배열의 요소 수입니다.

[in] pOutputTypes

MFT_REGISTER_TYPE_INFO 구조체의 배열에 대한 포인터입니다. 배열의 각 멤버는 MFT에서 지원하는 출력 형식을 정의합니다.

이 매개 변수는 NULL일 수 있습니다. 그러나 매개 변수가 NULL인 경우 애플리케이션이 원하는 출력 형식에 대해 NULL 을 지정하는 경우에만 MFT가 열거됩니다.

[in] pAttributes

추가 레지스트리 정보를 포함하는 특성 저장소의 IMFAttributes 인터페이스에 대한 포인터입니다. 이 매개 변수는 NULL일 수 있습니다. 매개 변수가 NULL이 아닌 경우 특성은 레지스트리에 바이트 배열로 기록됩니다. MFTGetInfo 함수를 사용하여 특성을 검색할 수 있습니다.

이 매개 변수에 대해 다음 특성이 정의됩니다.

값 의미
MFT_CODEC_MERIT_Attribute
하드웨어 코덱의 장점 값을 포함합니다. 코덱 장점을 참조하세요.

반환 값

이 함수가 성공하면 S_OK 반환합니다. 그러지 않으면 HRESULT 오류 코드를 반환합니다.

설명

이 함수에서 만든 레지스트리 항목은 다음 함수에서 읽습니다.

기능 Description
MFTEnum 미디어 유형 및 범주별로 MFT를 열거합니다.
MFTEnumEx MFTEnum의 확장 버전입니다.
MFTGetInfo CLSID로 MFT를 조회하고 레지스트리 정보를 검색합니다.
 

이 함수는 CoCreateInstance 또는 CoGetClassObject 함수에 대한 MFT의 CLSID를 등록하지 않습니다.

레지스트리에서 항목을 제거하려면 MFTUnregister를 호출합니다. 시스템에서 MFT를 제거하는 경우 항상 MFTUnregister를 호출해야 합니다.

pInputTypes 및 pOutputTypes 매개 변수에 지정된 형식은 애플리케이션이 형식별로 MFT를 검색할 수 있도록 하기 위한 것입니다. 애플리케이션은 MFTEnum 또는 MFTEnumEx 함수를 사용하여 특정 형식 집합과 일치하는 MFT를 열거할 수 있습니다.

pInputTypes에서 하나 이상의 입력 형식과 pOutputTypes 매개 변수에 하나의 출력 형식을 지정하는 것이 좋습니다. 그렇지 않으면 열거형에서 MFT를 건너뛸 수 있습니다.

64비트 Windows에서 이 함수의 32비트 버전은 레지스트리의 32비트 노드에 MFT를 등록합니다. 자세한 내용은 레지스트리의 32비트 및 64비트 애플리케이션 데이터를 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 mfapi.h
라이브러리 Mfplat.lib
DLL Mfplat.dll

참고 항목

MFTEnumEx

미디어 파운데이션 함수

Media Foundation 변환

_MFT_ENUM_FLAG