IMFASFMultiplexer::P rocessSample 메서드(wmcontainer.h)

입력 샘플을 멀티플렉서에 전달합니다.

구문

HRESULT ProcessSample(
  [in] WORD      wStreamNumber,
  [in] IMFSample *pISample,
  [in] LONGLONG  hnsTimestampAdjust
);

매개 변수

[in] wStreamNumber

샘플이 속한 스트림의 스트림 번호입니다.

[in] pISample

입력 샘플의 IMFSample 인터페이스에 대한 포인터입니다. 입력 샘플에는 ASF 데이터 패킷으로 변환할 미디어 데이터가 포함되어 있습니다. 가능하면 이 샘플의 타임스탬프는 정확해야 합니다.

[in] hnsTimestampAdjust

샘플의 타임스탬프를 적용할 조정입니다. 이 매개 변수는 호출자가 pISample에서 샘플 시간을 이동하려는 경우에 사용됩니다. 타임스탬프를 앞으로 푸시해야 하는 경우 이 값은 양수이고 타임스탬프를 다시 푸시해야 하는 경우 음수여야 합니다. 이 타임스탬프는 pISample의 샘플 시간에 추가되며 결과 시간은 원래 샘플 시간 대신 멀티플렉서에서 사용됩니다. 조정이 필요하지 않은 경우 이 값을 0으로 설정합니다.

반환 값

이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.

반환 코드 Description
S_OK
메서드가 성공했습니다.
MF_E_NOTACCEPTING
멀티플렉서에서 검색할 패킷이 너무 많습니다. IMFASFMultiplexer::GetNextPacket을 호출하여 패킷을 가져옵니다.
MF_E_BANDWIDTH_OVERRUN
처리된 샘플은 ASF ContentInfo 개체의 스트림에 대해 지정된 대역폭 제한을 위반합니다. 이 오류가 생성되면 샘플이 삭제됩니다.
MF_E_INVALIDSTREAMNUMBER
wStreamNumber에 전달된 값이 잘못되었습니다.
MF_E_LATE_SAMPLE
입력 미디어 샘플의 프레젠테이션 시간은 전송 시간보다 1초 이전입니다.

설명

애플리케이션은 ProcessSample에 샘플을 전달하고 ASF 멀티플렉서는 ASF 패킷에 배치할 준비가 될 때까지 내부적으로 큐에 넣습니다. IMFASFMultiplexer::GetNextPacket을 호출하여 ASF 데이터 패킷을 가져옵니다.

ProcessSample을 호출할 때마다 루프에서 GetNextPacket을 호출하여 사용 가능한 모든 데이터 패킷을 가져옵니다. 코드 예제는 새 ASF 데이터 패킷 생성을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 wmcontainer.h
라이브러리 Mfuuid.lib

추가 정보

새 ASF 데이터 패킷 생성

IMFASFMultiplexer

IMFSample