Как определить количество образцов в файле ADPCM wav?
1 ответ
Обычно Subchank2Size - это размер данных в байтах. И bitsPerSample сколько битов в выборке. Так что количество образцов должно быть:
samples = Subchank2Size / channels / ( bitsPerSample / 8 ).
Это верно для несжатых данных
Данные ADPCM сохраняются в "блоках". Блок состоит из трех частей: заголовка, данных и отступов. Три вместе составляют
заголовок
typedef struct adpcmblockheader_tag {
BYTE bPredictor[nChannels];
int iDelta[nChannels];
int iSamp1[nChannels];
int iSamp2[nChannels];
} ADPCMBLOCKHEADER;
Данные
Данные представляют собой битовую строку, анализируемую по группам (wBitsPerSample * nChannels).
набивка
Битовое заполнение используется для округления блока до точной длины байта.
Подробнее о декодировании формата ADPCM можно узнать здесь
К сожалению, кажется, что нет способа найти точное количество отсчетов без перечисления всех блоков.