Home | History | Annotate | Download | only in src

Lines Matching refs:header

101  *  \brief Read header from a WAVEfile. Host endianess is handled accordingly.
103 * \wavinfo SWavInfo struct where the decoded header info is stored into.
124 if (FDKfread(&(wav->header.riffType), 1, 4, wav->fp) != 4) {
128 if (FDKstrncmp("RIFF", wav->header.riffType, 4)) {
134 FDKfread_EL(&(wav->header.riffSize), 4, 1, wav->fp);
137 if (FDKfread(&wav->header.waveType, 1, 4, wav->fp) !=4) {
141 if (FDKstrncmp("WAVE", wav->header.waveType, 4)) {
147 if (FDKfread(&(wav->header.formatType), 1, 4, wav->fp) != 4) {
151 if (FDKstrncmp("fmt", wav->header.formatType, 3)) {
157 FDKfread_EL(&wav->header.formatSize, 4, 1, wav->fp); /* should be 16 for PCM-format (uncompressed) */
161 FDKfread_EL(&(wav->header.compressionCode), 2, 1, wav->fp);
162 FDKfread_EL(&(wav->header.numChannels), 2, 1, wav->fp);
163 FDKfread_EL(&(wav->header.sampleRate), 4, 1, wav->fp);
164 FDKfread_EL(&(wav->header.bytesPerSecond), 4, 1, wav->fp);
165 FDKfread_EL(&(wav->header.blockAlign), 2, 1, wav->fp);
166 FDKfread_EL(&(wav->header.bitsPerSample), 2, 1, wav->fp);
168 offset = wav->header.formatSize - 16;
171 if (wav->header.compressionCode == 0xFFFE) {
191 if (i == 16) wav->header.compressionCode = 0x01;
197 /* Skip rest of fmt header if any. */
199 FDKfread(&wav->header.formatSize, 1, 1, wav->fp);
204 if (FDKfread(wav->header.dataType, 1, 4, wav->fp) != 4) {
214 if (FDKstrncmp("data", wav->header.dataType, 4) == 0) {
215 wav->header.dataSize = offset;
220 FDKfread(&(wav->header.dataSize), 1, 1, wav->fp);
267 switch (wav->header.compressionCode)
270 if (nBits == wav->header.bitsPerSample) {
271 result = FDKfread_EL(buffer, wav->header.bitsPerSample >> 3, numSamples, wav->fp) ;
277 result += FDKfread_EL(&tmp, wav->header.bitsPerSample >> 3, 1, wav->fp) ;
280 if ( !IS_LITTLE_ENDIAN() && wav->header.bitsPerSample != 24 && wav->header.bitsPerSample < 32) {
281 tmp >>= (32-wav->header.bitsPerSample);
285 if (wav->header.bitsPerSample > nBits)
286 tmp >>= (wav->header.bitsPerSample-nBits);
288 tmp <<= (nBits-wav->header.bitsPerSample);
408 FDKstrcpy(wav->header.riffType, "RIFF");
409 wav->header.riffSize = LittleEndian32(0x7fffffff); /* in case fseek() doesn't work later in WAV_OutputClose() */
410 FDKstrcpy(wav->header.waveType, "WAVE");
412 FDKstrcpy(wav->header.formatType, "fmt ");
413 wav->header.formatSize = LittleEndian32(16);
415 wav->header.compressionCode = LittleEndian16(0x01);
416 wav->header.bitsPerSample = LittleEndian16((SHORT)bitsPerSample);
417 wav->header.numChannels = LittleEndian16((SHORT)numChannels);
418 wav->header.blockAlign = LittleEndian16((SHORT)(numChannels * (bitsPerSample >> 3)));
419 wav->header.sampleRate = LittleEndian32(sampleRate);
420 wav->header.bytesPerSecond = LittleEndian32(sampleRate * wav->header.blockAlign);
421 FDKstrcpy(wav->header.dataType, "data");
422 wav->header.dataSize = LittleEndian32(0x7fffffff - 36);
426 if (FDKfwrite(&wav->header, 1, size, wav->fp) != size)
433 wav->header.dataSize = wav->header.riffSize = 0;
472 int bps = Unpack(wav->header.bitsPerSample);
516 wav->header.dataSize += (numberOfSamples * (bps>>3));
535 wav->header.dataSize = LittleEndian32(wav->header.dataSize);
536 wav->header.riffSize = LittleEndian32(wav->header.dataSize + 36);
545 if (FDKfwrite(&wav->header.riffType, 1, size, wav->fp) != size)
547 FDKprintfErr("WAV_OutputClose(): unable to write header\n");