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

ProcessOutput 메서드는 디바이스 MFT 출력 스트림에서 처리된 출력을 가져옵니다.

구문

HRESULT ProcessOutput(
  [in] DWORD                  dwFlags,
  [in] DWORD                  cOutputBufferCount,
  [in] MFT_OUTPUT_DATA_BUFFER *pOutputSample,
  [in] DWORD                  *pdwStatus
);

매개 변수

[in] dwFlags

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

[in] cOutputBufferCount

pOutputSamples 배열의 요소 수입니다. 값은 1 이상이어야 합니다.

[in] pOutputSample

호출자가 할당한 MFT_OUTPUT_DATA_BUFFER 구조체 배열에 대한 포인터입니다. MFT는 이 배열을 사용하여 출력 데이터를 호출자에게 반환합니다.

[in] pdwStatus

_MFT_PROCESS_OUTPUT_STATUS 열거형에서 비트 OR(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(Media Foundation 변환)는 샘플을 저장하고 IMFSample 포인터에 대한 참조 횟수를 보유합니다. 샘플을 사용하여 MFT가 완료되면 메모리 누수 방지를 위해 MFT를 해제해야 합니다.

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

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

요구 사항

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

참고 항목

IMFDeviceTransform