J'ai utilise cette fonction pour retrouver les infos d'un fichier AVI :
int ReadAVIHeader(FILE *file, AVIFileInfo *aviinfo)
{
fseek(file, 0x20, SEEK_SET);
if(!fread(&aviinfo->dwMicroSecPerFrame, 4, 1, file)) return -1;
fseek(file, 0x30, SEEK_SET);
if(!fread(&aviinfo->dwTotalFrames, 4, 1, file)) return -1;
fseek(file, 0x40, SEEK_SET);
if(!fread(&aviinfo->dwWidth, 4, 1, file)) return -1;
fseek(file, 0x44, SEEK_SET);
if(!fread(&aviinfo->dwHeight, 4, 1, file)) return -1;
fseek(file, 0x70, SEEK_SET);
if(!fread(aviinfo->FourCCDesc, 4, 1, file)) return -1;
aviinfo->FourCCDesc[4] = '\0';
fseek(file, 0xBC, SEEK_SET);
if(!fread(aviinfo->FourCCCodec, 4, 1, file) ) return -1;
aviinfo->FourCCCodec[4] = '\0';
return 0;
}
La structure AVIFileInfo est :
typedef struct
{
DWORD dwMicroSecPerFrame;
DWORD dwTotalFrames;
DWORD dwWidth;
DWORD dwHeight;
char FourCCDesc[5];
char FourCCCodec[5];
} AVIFileInfo;
Le FourCCDesc doit etre le decodeur a utiliser, le FourCCCodec doit etre l'encodeur utilise.