Bonjour,
Sous Windows et en C(++), je souhaite ouvrir un mp3 avec les fonctions acm* et la lib winmm.
Mon code fonctionne pour du CBR mais pas VBR
voici comment je remplis ma WAVEFORMATEX (code trouvé sur internet..) pour du CBR
// define MP3 input format
LPMPEGLAYER3WAVEFORMAT mp3format = (LPMPEGLAYER3WAVEFORMAT) LocalAlloc( LPTR, maxFormatSize );
mp3format->wfx.cbSize = MPEGLAYER3_WFX_EXTRA_BYTES;
mp3format->wfx.wFormatTag = WAVE_FORMAT_MPEGLAYER3;
mp3format->wfx.nChannels = 2;
mp3format->wfx.nAvgBytesPerSec = 64 * (1024 / 8); // not really used but must be one of 64, 96, 112, 128, 160kbps
mp3format->wfx.wBitsPerSample = 0; // MUST BE ZERO
mp3format->wfx.nBlockAlign = 1; // MUST BE ONE
mp3format->wfx.nSamplesPerSec = 44100; // 44.1kHz
mp3format->fdwFlags = MPEGLAYER3_FLAG_PADDING_OFF;
mp3format->nBlockSize = MP3_BLOCK_SIZE; // voodoo value #1
mp3format->nFramesPerBlock = 1; // MUST BE ONE
mp3format->nCodecDelay = 1393; // voodoo value #2
mp3format->wID = MPEGLAYER3_ID_MPEG;
Pour le VBR, j'ai trouvé ça :
http://msdn.microsoft.com/library/ [...] gmodes.asp
Selon cette page, il me faut changer la qualité en
mp3format->wfx.nAvgBytesPerSec = 0x7FFFFF5A;
5A pour qualité 90 (de 0 à 100)
Dans mon logiciel d'encodage le niveau de qualité est gradué de 0 à 9 donc j'ai mis 90.
Quelqu'un a une idée ou a déjà réussi à lire du vbr de cette facon ?
Merci 1000 fois.