IMFDeviceTransform::SetOutputStreamState 메서드(mftransform.h)

SetOutputStreamState 메서드는 디바이스 MFT 출력 스트림 상태 및 미디어 형식을 설정합니다.

구문

HRESULT SetOutputStreamState(
  [in] DWORD             dwStreamID,
  [in] IMFMediaType      *pMediaType,
  [in] DeviceStreamState value,
  [in] DWORD             dwFlags
);

매개 변수

[in] dwStreamID

상태 및 미디어 형식을 변경해야 하는 입력 스트림의 스트림 ID입니다.

[in] pMediaType

입력 스트림에 대한 기본 설정 미디어 형식은 이 매개 변수를 통해 전달됩니다. 들어오는 미디어 형식이 현재 미디어 형식과 다른 경우에만 디바이스 MFT에서 미디어 유형을 변경해야 합니다.

[in] value

입력 스트림이 전환되어야 하는 DeviceStreamState 를 지정합니다.

[in] dwFlags

0이어야 합니다.

반환 값

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

반환 코드 Description
S_OK
스트림 상태 전환에 성공했습니다.
MF_E_INVALIDREQUEST
현재 디바이스 MFT에서 요청을 지원할 수 없습니다.
MF_E_INVAILIDSTREAMNUMBER
잘못된 스트림 ID가 전달되었습니다.
MF_E_INVALID_STREAM_STATE
요청된 스트림 전환은 불가능합니다.

설명

이 인터페이스 메서드를 사용하면 출력 스트림에 지정된 미디어 형식이 설정된 지정된 상태로 출력 스트림을 전환할 수 있습니다. 디바이스 원본이 특정 출력 스트림의 상태 및 미디어 형식을 변경하도록 요청할 때 DTM에서 사용됩니다. 디바이스 MFT는 지정된 출력 스트림의 미디어 유형 및 상태를 요청된 미디어 유형으로 변경해야 합니다.

들어오는 미디어 형식 및 스트림 상태가 현재 미디어 형식 및 스트림 상태와 동일한 경우 메서드는 S_OK 반환합니다.

들어오는 미디어 유형과 스트림의 현재 미디어 형식이 동일한 경우 디바이스 MFT는 스트림의 상태를 요청된 값으로 변경하고 적절한 HRESULT를 반환해야 합니다.

출력 스트림의 미디어 형식을 변경하려면 해당 입력을 변경해야 하는 경우 디바이스 MFT는 METransformInputStreamStateChanged 이벤트를 DTM 에 게시하여 관련 입력 스트림을 변경해야 합니다. 호출은 입력 스트림의 미디어 형식과 적절한 HRESULT를 변경한 후에만 반환해야 합니다.

예를 들어 입력 스트림 2개와 출력 스트림 3개가 있는 디바이스 MFT를 생각해 보세요. 입력 1에서 출력 1 및 출력 2 원본을 허용하고 720p에서 스트리밍합니다. 이제 출력 2의 미디어 유형이 1080p로 변경된 경우를 살펴보겠습니다. 이 요청을 충족하려면 디바이스 MFT가 METransformInputStreamStateChanged 이벤트를 DTM 에 게시하여 입력 1 미디어 형식을 1080p로 변경해야 합니다. DTM은 SetInputStreamState 를 호출하여 입력 스트림의 미디어 형식 및 상태를 변경합니다. 이 호출 후에 는 SetOutputStreamState 가 반환되어야 합니다.

요구 사항

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

참고 항목

IMFDeviceTransform