1919
2020using executorch::extension::llm::kOneOverIntMax ;
2121using executorch::extension::llm::kOneOverShortMax ;
22+ using executorch::extension::llm::kWavFormatIeeeFloat ;
2223using executorch::extension::llm::load_wav_audio_data;
2324using executorch::extension::llm::load_wav_header;
2425using executorch::extension::llm::WavHeader;
2526using executorch::extension::testing::TempFile;
2627
2728namespace {
2829
30+ // WAV file format constants
31+ constexpr uint32_t kWavHeaderSizeBeforeData = 36 ;
32+ constexpr uint32_t kWavHeaderSizeWithData = 44 ;
33+
2934// Test fixture to ensure PAL initialization
3035class WavLoaderTest : public ::testing::Test {
3136 protected:
@@ -52,7 +57,7 @@ void append_le32(std::vector<uint8_t>& out, uint32_t value) {
5257}
5358
5459void append_float (std::vector<uint8_t >& out, float value) {
55- const uint8_t * bytes = reinterpret_cast <const uint8_t *>(&value);
60+ const auto * bytes = reinterpret_cast <const uint8_t *>(&value);
5661 for (size_t i = 0 ; i < sizeof (float ); ++i) {
5762 out.push_back (bytes[i]);
5863 }
@@ -63,15 +68,15 @@ std::vector<uint8_t> make_pcm_wav_bytes(
6368 const std::vector<int32_t >& samples,
6469 uint16_t num_channels = 1 ,
6570 uint32_t sample_rate = 16000 ) {
66- const size_t bytes_per_sample = static_cast <size_t >(bits_per_sample / 8 );
67- const uint32_t subchunk2_size =
71+ const auto bytes_per_sample = static_cast <size_t >(bits_per_sample / 8 );
72+ const auto subchunk2_size =
6873 static_cast <uint32_t >(samples.size () * bytes_per_sample);
6974 const uint32_t byte_rate = sample_rate * num_channels * bytes_per_sample;
7075 const uint16_t block_align = num_channels * bytes_per_sample;
71- const uint32_t chunk_size = 36 + subchunk2_size;
76+ const auto chunk_size = kWavHeaderSizeBeforeData + subchunk2_size;
7277
7378 std::vector<uint8_t > bytes;
74- bytes.reserve (44 + subchunk2_size);
79+ bytes.reserve (kWavHeaderSizeWithData + subchunk2_size);
7580
7681 append_bytes (bytes, " RIFF" );
7782 append_le32 (bytes, chunk_size);
@@ -102,15 +107,15 @@ std::vector<uint8_t> make_float_wav_bytes(
102107 const std::vector<float >& samples,
103108 uint16_t num_channels = 1 ,
104109 uint32_t sample_rate = 16000 ) {
105- const size_t bytes_per_sample = sizeof (float );
106- const uint32_t subchunk2_size =
110+ const auto bytes_per_sample = sizeof (float );
111+ const auto subchunk2_size =
107112 static_cast <uint32_t >(samples.size () * bytes_per_sample);
108113 const uint32_t byte_rate = sample_rate * num_channels * bytes_per_sample;
109114 const uint16_t block_align = num_channels * bytes_per_sample;
110- const uint32_t chunk_size = 36 + subchunk2_size;
115+ const auto chunk_size = kWavHeaderSizeBeforeData + subchunk2_size;
111116
112117 std::vector<uint8_t > bytes;
113- bytes.reserve (44 + subchunk2_size);
118+ bytes.reserve (kWavHeaderSizeWithData + subchunk2_size);
114119
115120 append_bytes (bytes, " RIFF" );
116121 append_le32 (bytes, chunk_size);
@@ -139,14 +144,14 @@ std::vector<uint8_t> make_wav_bytes_with_format(
139144 const std::vector<uint8_t >& sample_data,
140145 uint16_t num_channels = 1 ,
141146 uint32_t sample_rate = 16000 ) {
142- const size_t bytes_per_sample = static_cast <size_t >(bits_per_sample / 8 );
143- const uint32_t subchunk2_size = static_cast <uint32_t >(sample_data.size ());
147+ const auto bytes_per_sample = static_cast <size_t >(bits_per_sample / 8 );
148+ const auto subchunk2_size = static_cast <uint32_t >(sample_data.size ());
144149 const uint32_t byte_rate = sample_rate * num_channels * bytes_per_sample;
145150 const uint16_t block_align = num_channels * bytes_per_sample;
146- const uint32_t chunk_size = 36 + subchunk2_size;
151+ const auto chunk_size = kWavHeaderSizeBeforeData + subchunk2_size;
147152
148153 std::vector<uint8_t > bytes;
149- bytes.reserve (44 + subchunk2_size);
154+ bytes.reserve (kWavHeaderSizeWithData + subchunk2_size);
150155
151156 append_bytes (bytes, " RIFF" );
152157 append_le32 (bytes, chunk_size);
0 commit comments