[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)
 
댓글 없음:
댓글 쓰기