ov_read function should return number of bytes that it reads, but it returns 0 for and it means end of file !
here is how i implement
char mychar[BUFFER_SIZE ] ;
int mysection ;
ov_read(&oggStream, mychar , BUFFER_SIZE , 0, 2, 1, &mysection);
i also checked that oggStream variable from OggVorbis_File structure is filled correctly ( i looked the channels and frequency etc... )