다음을 통해 공유


ICaptureGraphBuilder2::SetOutputFileName 메서드(strmif.h)

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngineMedia Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

메서드는 SetOutputFileName 필터 그래프의 파일 쓰기 섹션을 만듭니다.

구문

HRESULT SetOutputFileName(
  [in]  const GUID      *pType,
  [in]  LPCOLESTR       lpstrFile,
  [out] IBaseFilter     **ppf,
  [out] IFileSinkFilter **ppSink
);

매개 변수

[in] pType

출력의 미디어 하위 형식 또는 멀티플렉서 필터 또는 파일 작성기 필터의 CLSID(클래스 식별자)를 나타내는 GUID 에 대한 포인터입니다. 미디어 하위 형식을 지정하는 경우 다음 중 하나여야 합니다.

Description
MEDIASUBTYPE_Avi AVI(Audio-Video Interleaved)
MEDIASUBTYPE_Asf ASF(Advanced Systems Format)

[in] lpstrFile

출력 파일 이름을 포함하는 와이드 문자열에 대한 포인터입니다.

[out] ppf

멀티플렉서의 IBaseFilter 인터페이스를 수신하는 포인터의 주소입니다.

[out] ppSink

파일 작성기의 IFileSinkFilter 인터페이스를 수신하는 포인터의 주소입니다. NULL일 수 있습니다.

반환 값

HRESULT 값을 반환합니다. 가능한 값은 다음과 같습니다.

반환 코드 Description
S_OK
성공.
E_FAIL
실패.
E_POINTER
NULL 포인터 인수입니다.

설명

이 메서드는 pType 매개 변수의 값을 기반으로 멀티플렉서 필터를 만듭니다. AVI의 경우 AVI Mux 필터를 만듭니다. ASF의 경우 WM ASF 작성기를 만듭니다. 다른 값의 경우 CLSID로 식별되는 필터를 만듭니다. 필터 그래프에 멀티플렉서를 추가하고 ppf 매개 변수의 IBaseFilter 인터페이스에 대한 포인터를 반환합니다.

멀티플렉서가 IFileSinkFilter 인터페이스를 지원하는 경우 메서드는 iFileSinkFilter::SetFileName 을 호출하여 lpwstrFile 매개 변수에 지정된 값을 사용하여 출력 파일 이름을 설정합니다. 멀티플렉서가 IFileSinkFilter 인터페이스를 지원하지 않는 경우 메서드는 파일 작성기 필터 를 필터 그래프에 추가하고, 멀티플렉서를 파일 작성기에 연결하고, 파일 작성기 IFileSinkFilter 인터페이스를 사용하여 SetFileName을 호출합니다. pSink 매개 변수가 NULL이 아닌 경우 IFileSinkFilter 인터페이스에 대한 포인터를 받습니다.

ppf 매개 변수에 반환된 멀티플렉서 필터에 대한 포인터를 ICaptureGraphBuilder2::RenderStream 메서드의 pSink 매개 변수로 사용할 수 있습니다.

사용자 지정 멀티플렉서 필터의 경우 필터가 입력 핀이 연결되기 전에 출력 핀에서 연결을 지원하지 않으면 메서드가 실패합니다. 예를 들어 SDK에 포함된 WavDest 필터 샘플 에는 이 제한이 있습니다.

메서드가 성공하면 ppf 매개 변수에 반환된 IBaseFilter 인터페이스에 미해결 참조 수가 있습니다. 메서드가 성공하고 pSinkNULL이 아닌 경우 IFileSinkFilter 인터페이스에도 미해결 참조 수가 있습니다. 사용이 완료되면 두 인터페이스를 모두 해제해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 strmif.h(Dshow.h 포함)
라이브러리 Strmiids.lib

추가 정보

오류 및 성공 코드

ICaptureGraphBuilder2 인터페이스