[CODE] #include
2007년 4월 3일 화요일
Uncompressed wave file 에서 정보 추출
압축되지 않은 wave 파일에서 header 정보를 가져오는 소스
[CODE] #include
typedef struct {
char wavRIFFChunk[4];
long wavSize;
char wavWAVEChunk[4];
char wavFMTChunk[4];
long wavFormatSize;
short wavPCMFormatFlag;
short wavChannel;
long wavSampleRate;
long wavSampleRatePerSec;
short wavPerSecScale;
short wavBits;
char wavDataChunk[4];
long wavDataSize;
}wav_header;
int main(int argc, char** argv)
{
wav_header in_wav;
FILE* fp;
char pBuffer[5];
if(argc != 2)
{
printf("usage : getwavinfo.exe [wav_file]\n");
return 1;
}
if((fp = fopen(argv[1], "rb")) == NULL)
{
printf("file open error : %s\n", argv[1]);
return 1;
}
fread(&in_wav, sizeof(wav_header), 1, fp);
fclose(fp);
strncpy(pBuffer, in_wav.wavRIFFChunk, 4); pBuffer[4] = 0;
printf("Riff Chunk : %s\n", pBuffer);
printf("Size : %d byte(s)\n", in_wav.wavSize);
strncpy(pBuffer, in_wav.wavWAVEChunk, 4); pBuffer[4] = 0;
printf("Wave Chunk : %s\n", pBuffer);
strncpy(pBuffer, in_wav.wavFMTChunk, 4); pBuffer[4] = 0;
printf("FMT Chunk : %s\n", pBuffer);
printf("Format Size : %d\n", in_wav.wavFormatSize);
printf("PCM Format Flag : %d\n", in_wav.wavPCMFormatFlag);
printf("Channels : %d\n", in_wav.wavChannel);
printf("Sample Rate : %d\n", in_wav.wavSampleRate);
printf("Sample Rate Per Second : %d\n", in_wav.wavSampleRatePerSec);
printf("Per Second Scale : %d\n", in_wav.wavPerSecScale);
printf("Bits Per Sample : %d\n", in_wav.wavBits);
strncpy(pBuffer, in_wav.wavDataChunk, 4); pBuffer[4] = 0;
printf("Data Chunk : %s\n", pBuffer);
printf("Data Size : %d\n", in_wav.wavDataSize);
return 0;
}
[/CODE]
[CODE] #include
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기