현재 저수준 함수를 래핑하는 작업을 하고 있습니다.
사운드 장치에서 녹음된 소리 데이터를 받아 MP3로 다이렉트 인코딩 하고 있는데요,
이상한 문제에 부딪혀서 어디에 질문할까 고민하려다가 이곳에 아는분들이 많을 것 같아 올려봅니다.

문제라 함은 처음 녹음시엔 잘 녹음이 되는데
두번째 녹음 할 경우 오래전에 재생되었던 소리의 마지막 약 0.25초 가량이 새로 녹음한 데이터의
앞부분에 녹음이 되는, 마치 타임머신과도 같은 문제입니다.

기본적으로 버퍼등의 메모리 초기화는 완벽하게 되고 있음에도 불구하고 이녀석이 어디서 튀어나오는지
당최 모르겠습니다.

제가 알기로 일단 waveInprepareHeader를 이용해 헤더를 작성하고 waveInAddBuffer로 버퍼를 던져주면
waveInStart후에 버퍼에 값이 찰 경우 콜백을 호출하는걸로 알고 있는데요,
처음에 잘 녹음이 됩니다만, 두번째 녹음할 경우에 버퍼가 완전히 비워져있는데도 불구하고 0.25초 간의
이전 재생되었던 데이터의 끝부분이 녹음되고 있습니다.

MP3를 인코딩 할때 사용한 모듈은 LAME_ENC.DLL 입니다.
beEncodeChunk를 이용해 MP3의 단위버퍼만큼 WAV데이터를 읽어들여 변환했구요,
도대체 어디서 문제가 일어나는지 잘 모르겠습니다.


WaveInOut이나 LAME 라이브러리에서 사용하는 MP3 인코딩 매커니즘에 대해 알고계신분이 있다면
초보를 위해 제발 고견을 부탁드립니다

:$