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를 호출해야 합니다.

pInputTypespOutputTypes 매개 변수에 지정된 형식은 애플리케이션이 형식별로 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