IMFDeviceTransform::P rocessInput 메서드(mftransform.h)

ProcessInput 메서드는 이 MFT(Media Foundation 변환)의 입력 스트림에 데이터를 전달합니다.

구문

HRESULT ProcessInput(
  [in] DWORD     dwInputStreamID,
  [in] IMFSample *pSample,
  [in] DWORD     dwFlags
);

매개 변수

[in] dwInputStreamID

입력 스트림 식별자입니다.

[in] pSample

입력 샘플의 IMFSample 인터페이스에 대한 포인터입니다. 샘플은 유효한 입력 데이터를 포함하는 하나 이상의 미디어 버퍼를 포함해야 합니다.

[in] dwFlags

0이어야 합니다.

반환 값

이 메서드는 HRESULT를 반환합니다. 가능한 값은 다음 표에 제공된 값을 포함하지만 제한되지는 않습니다.

반환 코드 Description
S_OK
메서드가 정상적으로 실행되었습니다.
E_INVALIDARG
잘못된 인수가 전달되었습니다.
MF_E_INVALIDREQUEST
현재 디바이스 MFT에서 요청을 지원할 수 없습니다.
MF_E_INVAILIDSTREAMNUMBER
잘못된 스트림 ID가 전달되었습니다.
MF_E_INVALID_STREAM_STATE
요청된 스트림 전환을 사용할 수 없습니다.
MF_E_TRANSFORM_TYPE_NOT_SET
입력 미디어 형식이 설정되지 않았습니다.

설명

대부분의 경우 메서드가 성공하면 MFT는 샘플을 저장하고 IMFSample 포인터에 대한 참조 수를 보유합니다. MFT가 샘플을 사용하여 완료되면 메모리 누수 방지를 위해 MFT를 해제해야 합니다.

DTM이 모든 스트림에서 유효한 미디어 형식을 설정한 후 MFT는 항상 더 많은 입력을 수락하고 더 많은 출력을 생성할 수 있어야 합니다.

MFT가 입력 데이터에 치명적이 아닌 오류가 발생하는 경우 데이터를 삭제하고 더 많은 입력 데이터를 가져오면 복구를 시도할 수 있습니다. MFT가 데이터를 삭제하는 경우 다음 출력 샘플에서 MFSampleExtension_Discontinuity 특성을 설정하여 호출자에게 데이터 스트림에 간격이 있음을 알려야 합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 10, 버전 1703
대상 플랫폼 Windows
헤더 mftransform.h

추가 정보

IMFDeviceTransform