MCPcopy Create free account
hub / github.com/0xShug0/audio.cpp / float_to_pcm16_clipped

Function float_to_pcm16_clipped

src/framework/audio/waveform_ops.cpp:115–128  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

113}
114
115std::vector<int16_t> float_to_pcm16_clipped(
116 const std::vector<float> & samples,
117 Pcm16QuantizeMode quantize_mode) {
118 std::vector<int16_t> pcm(samples.size(), 0);
119 for (size_t i = 0; i < samples.size(); ++i) {
120 const float clipped = std::clamp(samples[i] * 32768.0F, -32768.0F, 32767.0F);
121 if (quantize_mode == Pcm16QuantizeMode::RoundToNearest) {
122 pcm[i] = static_cast<int16_t>(std::lrint(clipped));
123 } else {
124 pcm[i] = static_cast<int16_t>(clipped);
125 }
126 }
127 return pcm;
128}
129
130std::vector<float> pcm16_to_float_unit_range(const std::vector<int16_t> & pcm_samples) {
131 std::vector<float> samples(pcm_samples.size(), 0.0F);

Callers 2

finalizeMethod · 0.85

Calls 2

clampFunction · 0.85
sizeMethod · 0.45

Tested by

no test coverage detected