MCPcopy Create free account
hub / github.com/cjcliffe/CubicSDR / writeHeaderToFileStream

Method writeHeaderToFileStream

src/audio/AudioFileWAV.cpp:122–141  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

120}
121
122void AudioFileWAV::writeHeaderToFileStream(const AudioThreadInputPtr& input) {
123
124 // Based on simple wav file output code from
125 // http://www.cplusplus.com/forum/beginner/166954/
126
127 // Write the wav file headers
128 outputFileStream << "RIFF----WAVEfmt "; // (chunk size to be filled in later)
129 write_word(outputFileStream, 16, 4); // no extension data
130 write_word(outputFileStream, 1, 2); // PCM - integer samples
131 write_word(outputFileStream, input->channels, 2); // channels
132 write_word(outputFileStream, input->sampleRate, 4); // samples per second (Hz)
133 write_word(outputFileStream, (input->sampleRate * 16 * input->channels) / 8, 4); // (Sample Rate * BitsPerSample * Channels) / 8
134 write_word(outputFileStream, input->channels * 2, 2); // data block size (size of integer samples, one for each channel, in bytes)
135 write_word(outputFileStream, 16, 2); // number of bits per sample (use a multiple of 8)
136
137 // Write the data chunk header
138 dataChunkPos = outputFileStream.tellp();
139 currentFileSize = dataChunkPos;
140 outputFileStream << "data----"; // (chunk size to be filled in later)
141}
142
143void AudioFileWAV::writePayloadToFileStream(const AudioThreadInputPtr& input, size_t startInputPosition, size_t endInputPosition) {
144

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected