Share via


IMFMediaEngineExtension::BeginCreateObject 메서드(mfmediaengine.h)

바이트 스트림 또는 미디어 원본을 만드는 비동기 요청을 시작합니다.

구문

HRESULT BeginCreateObject(
  [in]           BSTR             bstrURL,
  [in]           IMFByteStream    *pByteStream,
  [in]           MF_OBJECT_TYPE   type,
  [out]          IUnknown         **ppIUnknownCancelCookie,
  [in]           IMFAsyncCallback *pCallback,
  [in, optional] IUnknown         *punkState
);

매개 변수

[in] bstrURL

미디어 리소스의 URL입니다.

[in] pByteStream

IMFByteStream 인터페이스에 대한 포인터입니다.

형식 매개 변수가 MF_OBJECT_BYTESTREAM 같으면 이 매개 변수는 NULL입니다.

형식MF_OBJECT_MEDIASOURCE 같은 경우 이 매개 변수는 바이트 스트림에 대한 포인터를 포함하거나 NULL입니다. 자세한 내용은 설명 부분을 참조하십시오.

[in] type

만들 개체의 형식을 지정하는 MF_OBJECT_TYPE 열거형의 멤버입니다.

의미
MF_OBJECT_BYTESTREAM
바이트 스트림을 만듭니다. 바이트 스트림은 IMFByteStream 인터페이스를 지원해야 합니다.
MF_OBJECT_MEDIASOURCE
미디어 원본을 만듭니다. 미디어 원본은 IMFMediaSource 인터페이스를 지원해야 합니다.

[out] ppIUnknownCancelCookie

IUnknown 인터페이스에 대한 포인터를 받습니다. 이 포인터는 IMFMediaEngineExtension::CancelObjectCreation 메서드에 포인터를 전달하여 비동기 작업을 취소하는 데 사용할 수 있습니다.

호출자는 인터페이스를 해제해야 합니다. 이 매개 변수는 NULL일 수 있습니다.

[in] pCallback

IMFAsyncCallback 인터페이스에 대한 포인터입니다. 이 인터페이스는 비동기 작업의 완료를 알리는 데 사용됩니다.

[in, optional] punkState

호출자가 구현한 개체의 IUnknown 인터페이스에 대한 포인터입니다. 이 개체를 사용하여 콜백에 대한 상태 정보를 저장할 수 있습니다. 콜백이 호출될 때 개체가 호출자에게 반환됩니다. 이 매개 변수는 NULL일 수 있습니다.

반환 값

메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.

설명

이 메서드는 형식 매개 변수의 값에 따라 바이트 스트림 또는 미디어 원본을 만들도록 개체를 요청합니다.

  • 형식MF_OBJECT_BYTESTREAM 경우 메서드는 bstrURL에 지정된 URL에 대한 바이트 스트림을 만듭니다. 이 경우 pByteStream 매개 변수는 NULL입니다.
  • 형식MF_OBJECT_MEDIASOURCE 경우 메서드는 pByteStream 매개 변수에 지정된 바이트 스트림을 사용하여 미디어 원본을 만듭니다. 이 경우 pByteStreamNULL 일 수도 있습니다.
메서드는 비동기적으로 수행됩니다. 미디어 엔진은 IMFMediaEngineExtension::EndCreateObject 메서드를 호출하여 작업을 완료합니다.

구현 정보

미디어 엔진 확장을 사용하여 사용자 지정 바이트 스트림 개체, 사용자 지정 미디어 원본 또는 둘 다를 지원할 수 있습니다. 바이트 스트림의 경우 형식MF_OBJECT_BYTESTREAM 같은 경우 바이트 스트림 개체를 만듭니다. 미디어 원본의 경우 형식이 MF_OBJECT_MEDIASOURCE 같은 경우 원본을 만듭니다.

URL을 로드하기 위해 미디어 엔진은 다음 단계를 수행합니다.

  1. URL에서 바이트 스트림을 만듭니다.
  2. 바이트 스트림이 성공적으로 만들어지면 바이트 스트림에서 미디어 원본을 만들어 보세요.
  3. 바이트 스트림을 만들 수 없는 경우 URL에서 직접 미디어 원본을 만듭니다.

각 단계에서 미디어 엔진은 확장 개체에서 IMFMediaEngineExtension::BeginCreateObject 를 호출합니다. BeginCreateObject 메서드가 실패하면 미디어 엔진이 소스 확인자를 시도합니다.

BeginCreateObject 메서드에서 다음 사례 중 하나를 처리하도록 선택할 수 있습니다.

  • 형식 매개 변수가 MF_OBJECT_BYTESTREAM. URL에서 바이트 스트림을 만듭니다.
  • 형식 매개 변수는 MF_OBJECT_MEDIASOURCEpByteStream은 바이트 스트림을 가리킵니다. 바이트 스트림을 사용하여 미디어 원본을 만듭니다.
  • 형식 매개 변수는 MF_OBJECT_MEDIASOURCEpByteStreamNULL입니다. URL에서 미디어 원본을 만듭니다.

처리하지 않는 모든 사례에 대한 오류 코드를 반환합니다.

예:

  • 사용자 지정 미디어 형식을 지원하려면 미디어 원본을 구현합니다. 미디어 원본에 특별한 바이트 스트림 구현이 필요하지 않은 경우 형식MF_OBJECT_MEDIASOURCEpByteStreamNULL이 아닌 경우 미디어 원본을 만듭니다. 이 경우 표준 Microsoft Media Foundation 바이트 스트림 구현이 사용됩니다.
  • 사용자 지정 URL 체계를 지원하려면 형식MF_OBJECT_BYTESTREAM 경우를 처리하고 URL을 읽을 수 있는 바이트 스트림 개체를 반환합니다.

BeginCreateObject 메서드가 성공하면 작업을 비동기적으로 수행해야 합니다. 작업이 완료되면 pCallback에 지정된 콜백 인터페이스에서 IMFAsyncCallback::Invoke 메서드를 호출합니다. 미디어 엔진은 IMFMediaEngineExtension::EndCreateObject를 호출하여 작업을 완료합니다.

요구 사항

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

참고 항목

IMFMediaEngineExtension