IMFSourceReaderEx::AddTransformForStream 메서드(mfreadwrite.h)

오디오 또는 비디오 효과와 같은 변환을 스트림에 추가합니다.

구문

HRESULT AddTransformForStream(
  [in] DWORD    dwStreamIndex,
  [in] IUnknown *pTransformOrActivate
);

매개 변수

[in] dwStreamIndex

구성할 스트림입니다. 값은 다음 중 한 개일 수 있습니다.

의미
0-0xFFFFFFFB
스트림의 인덱스(0부터 시작)입니다.
MF_SOURCE_READER_FIRST_VIDEO_STREAM
0xFFFFFFFC
첫 번째 비디오 스트림입니다.
MF_SOURCE_READER_FIRST_AUDIO_STREAM
0xFFFFFFFD
첫 번째 오디오 스트림입니다.

[in] pTransformOrActivate

다음 중 하나에 대한 포인터입니다.

  • IMFTransform 인터페이스를 노출하는 MFT(Media Foundation 변환)입니다.
  • IMFActivate 인터페이스를 노출하는 MFT 활성화 개체입니다.

반환 값

이 메서드는 이러한 값 중 하나를 반환할 수 있습니다.

반환 코드 Description
S_OK
성공.
MF_E_INVALIDMEDIATYPE
변환은 현재 스트림 형식을 지원하지 않으며 변환이 불가능했습니다. 자세한 내용은 설명 부분을 참조하십시오.
MF_E_INVALIDREQUEST
잘못된 요청입니다.
MF_E_INVALIDSTREAMNUMBER
dwStreamIndex 매개 변수가 잘못되었습니다.

설명

이 메서드는 현재 처리 체인의 끝에 변환을 추가하려고 시도합니다.

이 메서드를 사용하려면 다음 일련의 호출을 수행합니다.

  1. IMFSourceReader::SetCurrentMediaType을 호출하여 스트림에 대해 원하는 출력 형식을 설정합니다. 이 단계에서는 주 형식 및 하위 형식 GUID만 포함하는 미디어 형식을 지정할 수 있습니다. 예를 들어 32비트 RGB 출력을 얻으려면 주 형식의 MFMediaType_VideoMFVideoFormat_RGB32 하위 형식을 설정합니다. (자세한 내용은 미디어 형식 GUID를 참조하세요.)
  2. AddTransformForStream을 호출합니다. 원본 판독기가 변환을 성공적으로 연결하면 변환의 출력 형식이 설정됩니다.
  3. IMFSourceReader::GetCurrentMediaType을 호출하여 변환에서 출력 형식을 가져옵니다. 이 메서드는 전체 형식 설명이 있는 미디어 형식을 반환합니다.
  4. 필요에 따라 출력 형식을 수정하려면 IMFSourceReader::SetCurrentMediaType 을 다시 호출하여 변환에 전체 미디어 형식을 설정합니다.
AddTransformForStream 메서드는 처리 체인에 디코더를 삽입하지 않습니다. 네이티브 스트림 형식이 인코딩되고 변환에 압축되지 않은 형식이 필요한 경우 SetCurrentMediaType 을 호출하여 압축되지 않은 형식을 설정합니다(이전 목록의 1단계). 그러나 메서드는 필요한 경우 RGB와 YUV 형식 간에 변환하는 비디오 프로세서를 삽입합니다.

원본 판독기가 MF_READWRITE_DISABLE_CONVERTERS 또는MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING 특성으로 구성된 경우 메서드가 실패합니다.

비동기 모드에서는 샘플 요청이 보류 중인 경우에도 메서드가 실패합니다. 이 경우 메서드를 호출하기 전에 OnReadSample 콜백이 호출될 때까지 기다립니다. 비동기 모드에서 원본 판독기를 사용하는 방법에 대한 자세한 내용은 IMFSourceReader::ReadSample을 참조하세요.

스트리밍하는 동안 언제든지 변환을 추가할 수 있습니다. 그러나 메서드는 변환을 삽입하기 전에 파이프라인을 플러시하거나 드레이닝하지 않습니다. 따라서 데이터가 이미 파이프라인에 있는 경우 다음 샘플은 변환을 적용하도록 보장되지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2012 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 mfreadwrite.h

추가 정보

IMFSourceReaderEx

원본 판독기