소프트웨어/음성프로그래밍

2. wav읽을때 FrameSize란..?

cs만두 2013. 6. 24. 01:34

#include<stdio.h>

#define FRAMESIZE 1024

int main(int argc, char* argv[]){
 FILE *fin;
 FILE *fout;
 int i=0,j=0,length=0;
 short data[FRAMESIZE];
 
 fin = fopen("sound3.wav","rb");
 fout= fopen("output.txt","wb");

 while( ! feof(fin) ){
  fread(data,sizeof(short),FRAMESIZE,fin);
  i++; //읽을때마다 count
  fwrite(data,sizeof(short),FRAMESIZE,fout);
 
 }
 
 printf("i 카운트 횟수 : %d\n",i);
 fseek(fin,01,SEEK_END);
 length=ftell(fin);
 printf("파일사이즈 : %d\n",length);
 printf("1024*353 *2(쇼트) : %d\n",1024*353*2

 

);


 fcloseall();
 printf("\n complete \n");
 return 0;
}

카테고리 1번글의 소스에서 매 while문마다 i++를 해주었다.

그결과 353의 카운트가 있었다. 도대체 framesize를 왜 쓴것인가에 관해 궁금점이 생겨서 추측해본결과

wav파일을 rb 즉, 바이트 단위로 읽었기 때문에 data arr의 사이즈를 framesize(==1024)로 잡은것 같다.

파일 사이즈를 읽어오고 예상되는 값과 비교해보니 맞는것 같다.

 

나도 처음해는 분야이고 추측일 뿐이니.... 그냥 흘려 들으시길..