Shadiest | J'ai un peu avancer, et compris que le Header d'un streamAudio etait du type WAVEFORMATEX, à l'excution de ce code, un fichier d'une taille relativement petite (devrai etre autour des 3mo et ne fait que 293 ko) mais d'une durée correcte, je n'ai pas trouvé d'information sur la taille des frames de son :
Code :
- void Add_Audio(char * Name,PAVISTREAM audio)
- {
- PAVIFILE avi_file;
- AVIFileInit();
- AVIFileOpen(&avi_file, Name, OF_WRITE | OF_CREATE, NULL);
- //AVISTREAMINFO
- AVISTREAMINFO avi_stream_info;
- int a=AVIStreamInfo(audio, &avi_stream_info, sizeof(AVISTREAMINFO));
- //WAVEFORMATEX
- WAVEFORMATEX wave;
- LONG lStreamSize = sizeof(wave);
- AVIStreamReadFormat(audio, 0, &wave, &lStreamSize);
- //Nouveau stream
- PAVISTREAM newstream;
- AVIFileCreateStream(avi_file, &newstream, &avi_stream_info);
- AVIStreamSetFormat(newstream, 0, &wave, sizeof(wave));
- int size=wave.cbSize; // Quel est la taille d'une frame son ?
- unsigned char * trame=new unsigned char[size];
- //Copie byte par byte
- for(int i=AVIStreamStart(audio);i<AVIStreamEnd(audio);i++)
- {
- AVIStreamRead(audio,i,1,trame,size,NULL,NULL);
- AVIStreamWrite(newstream,i,1,trame,size, AVIIF_KEYFRAME, NULL, NULL);
- }
- AVIStreamRelease(audio);
- AVIStreamRelease(newstream);
- AVIFileRelease(avi_file);
- }
|
"int size=wave.cbSize;" j'ai de serieux doute sur cette taille, car elle est égale à 12 quand je debug, ce qui me parai peu...
|