IMFTransform::SetInputType 메서드(mftransform.h)

이 MFT(Media Foundation 변환)에서 입력 스트림에 대한 미디어 형식을 설정, 테스트 또는 지웁니다.

구문

HRESULT SetInputType(
  [in] DWORD        dwInputStreamID,
  [in] IMFMediaType *pType,
  [in] DWORD        dwFlags
);

매개 변수

[in] dwInputStreamID

입력 스트림 식별자입니다. 스트림 식별자 목록을 얻으려면 IMFTransform::GetStreamIDs를 호출합니다.

[in] pType

IMFMediaType 인터페이스 또는 NULL에 대한 포인터입니다.

[in] dwFlags

_MFT_SET_TYPE_FLAGS 열거형에서 0개 이상의 플래그입니다.

반환 값

이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.

반환 코드 Description
S_OK
메서드가 성공했습니다.
MF_E_INVALIDMEDIATYPE
MFT는 제안된 미디어 형식을 사용할 수 없습니다.
MF_E_INVALIDSTREAMNUMBER
잘못된 스트림 식별자입니다.
MF_E_INVALIDTYPE
제안된 형식이 잘못되었습니다. 이 오류 코드는 미디어 형식 자체가 올바르게 구성되지 않음을 나타냅니다. 예를 들어 상호 모순된 특성이 포함될 수 있습니다.
MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING
MFT는 데이터를 처리하는 동안 형식을 전환할 수 없습니다. MFT를 드레이닝하거나 플러시해 보세요.
MF_E_TRANSFORM_TYPE_NOT_SET
입력 형식을 설정하기 전에 출력 형식을 설정해야 합니다.
MF_E_UNSUPPORTED_D3D_TYPE
MFT에서 적절한 DXVA(DirectX Video Acceleration) 구성을 찾을 수 없습니다.

설명

이 메서드를 사용하여 미디어 형식을 설정하거나, 설정하지 않고 테스트하거나, 지울 수 있습니다.

  • 미디어 형식을 설정하려면 dwFlags를 0으로 설정하고 pType 을 미디어 형식을 지정하는 NULL 이 아닌 포인터로 설정합니다.
  • 미디어 형식을 설정하지 않고 테스트하려면 dwFlagsMFT_SET_TYPE_TEST_ONLY 설정하고 pType 을 미디어 형식을 지정하는 비 NULL 포인터로 설정합니다. 미디어 형식이 허용되는 경우 메서드는 S_OK 반환합니다. 그렇지 않으면 MF_E_INVALIDMEDIATYPE 반환합니다. 반환 값에 관계없이 현재 미디어 형식은 변경되지 않습니다.
  • 미디어 형식을 지우려면 pTypeNULL로 설정합니다.
한 스트림에서 미디어 형식을 설정하면 다른 스트림에서 허용되는 형식이 변경될 수 있습니다.

MFT는 입력 형식을 설정하기 전에 호출자가 하나 이상의 출력 형식을 설정하도록 요구할 수 있습니다. 이 경우 메서드는 MF_E_TRANSFORM_TYPE_NOT_SET 반환합니다.

MFT가 DXVA(DirectX Video Acceleration)를 지원하지만 적절한 DXVA 구성을 찾을 수 없는 경우(예: 그래픽 드라이버에 올바른 기능이 없는 경우) 메서드는 MF_E_UNSUPPORTED_D3D_TYPE 반환해야 합니다. 자세한 내용은 Media Foundation에서 DXVA 2.0 지원을 참조하세요.

mftransform.h를 포함하기 전에 MFT_UNIQUE_METHOD_NAMES 정의된 경우 이 메서드는 MFTSetInputType으로 이름이 바뀝니다. 하이브리드 DMO/MFT 개체 만들기를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 mftransform.h
라이브러리 Mfuuid.lib

추가 정보

IMFTransform

Media Foundation 변환