다음을 통해 공유


acmStreamConvert 함수(msacm.h)

acmStreamConvert 함수는 지정된 변환 스트림에서 변환을 수행하도록 ACM에 요청합니다. 변환은 스트림이 열린 방법에 따라 동기 또는 비동기일 수 있습니다.

구문

MMRESULT ACMAPI acmStreamConvert(
  HACMSTREAM        has,
  LPACMSTREAMHEADER pash,
  DWORD             fdwConvert
);

매개 변수

has

열린 변환 스트림에 대한 핸들입니다.

pash

변환에 대한 원본 및 대상 버퍼를 설명하는 스트림 헤더에 대한 포인터입니다. 이 헤더는 이전에 acmStreamPrepareHeader 함수를 사용하여 준비해야 합니다.

fdwConvert

변환을 수행하기 위한 플래그입니다. 다음 값이 정의됩니다.

의미
ACM_STREAMCONVERTF_BLOCKALIGN 정수 블록 수만 변환됩니다. 변환된 데이터는 블록 맞춤 경계에서 종료됩니다. 애플리케이션은 블록 맞춤 대상으로 변환할 원본 데이터가 충분하지 않을 때까지 스트림의 모든 변환에 이 플래그를 사용해야 합니다. 이 경우 이 플래그 없이 마지막 변환을 지정해야 합니다.
ACM_STREAMCONVERTF_END ACM 변환 스트림은 보류 중인 instance 데이터 반환을 시작해야 합니다. 예를 들어 변환 스트림이 에코 필터 작업의 끝과 같은 instance 데이터를 보유하는 경우 이 플래그를 사용하면 스트림이 선택적 원본 데이터로 이 나머지 데이터를 반환하기 시작합니다. 이 플래그는 ACM_STREAMCONVERTF_START 플래그로 지정할 수 있습니다.
ACM_STREAMCONVERTF_START ACM 변환 스트림은 instance 데이터를 다시 초기화해야 합니다. 예를 들어 변환 스트림이 델타 또는 예측자 정보와 같은 instance 데이터를 보유하는 경우 이 플래그는 스트림을 시작 기본값으로 복원합니다. 이 플래그는 ACM_STREAMCONVERTF_END 플래그로 지정할 수 있습니다.

반환 값

성공하면 0을 반환하고, 그렇지 않으면 오류를 반환합니다. 가능한 오류 값은 다음과 같습니다.

반환 코드 설명
ACMERR_BUSY
pash에 지정된 스트림 헤더는 현재 사용 중이며 다시 사용할 수 없습니다.
ACMERR_UNPREPARED
pash에 지정된 스트림 헤더는 현재 acmStreamPrepareHeader 함수에 의해 준비되지 않았습니다.
MMSYSERR_INVALFLAG
하나 이상의 플래그가 잘못되었습니다.
MMSYSERR_INVALHANDLE
지정한 핸들이 잘못되었습니다.
MMSYSERR_INVALPARAM
하나 이상의 매개 변수가 잘못되었습니다.

설명

acmStreamPrepareHeader 함수를 사용하여 원본 및 대상 버퍼가 acmStreamConvert에 전달되기 전에 준비해야 합니다.

ACM 또는 드라이버에서 비동기 변환 요청이 성공적으로 큐에 대기되고 나중에 변환이 불가능한 것으로 확인되면 ACMSTREAMHEADER 구조는 cbDstLengthUsed 멤버가 0으로 설정된 애플리케이션의 콜백 함수에 다시 게시됩니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 msacm.h
라이브러리 Msacm32.lib
DLL Msacm32.dll

참고 항목

오디오 압축 함수

오디오 압축 관리자