diff --git a/kissfft/kiss_fft.c b/kissfft/kiss_fft.cc similarity index 100% rename from kissfft/kiss_fft.c rename to kissfft/kiss_fft.cc diff --git a/kissfft/tools/fftutil.c b/kissfft/tools/fftutil.cc similarity index 100% rename from kissfft/tools/fftutil.c rename to kissfft/tools/fftutil.cc diff --git a/kissfft/tools/kfc.c b/kissfft/tools/kfc.cc similarity index 100% rename from kissfft/tools/kfc.c rename to kissfft/tools/kfc.cc diff --git a/kissfft/tools/kiss_fastfir.c b/kissfft/tools/kiss_fastfir.cc similarity index 100% rename from kissfft/tools/kiss_fastfir.c rename to kissfft/tools/kiss_fastfir.cc diff --git a/kissfft/tools/kiss_fftnd.c b/kissfft/tools/kiss_fftnd.cc similarity index 100% rename from kissfft/tools/kiss_fftnd.c rename to kissfft/tools/kiss_fftnd.cc diff --git a/kissfft/tools/kiss_fftndr.c b/kissfft/tools/kiss_fftndr.cc similarity index 100% rename from kissfft/tools/kiss_fftndr.c rename to kissfft/tools/kiss_fftndr.cc diff --git a/kissfft/tools/kiss_fftr.c b/kissfft/tools/kiss_fftr.cc similarity index 100% rename from kissfft/tools/kiss_fftr.c rename to kissfft/tools/kiss_fftr.cc diff --git a/kissfft/tools/psdpng.c b/kissfft/tools/psdpng.cc similarity index 100% rename from kissfft/tools/psdpng.c rename to kissfft/tools/psdpng.cc diff --git a/setup.py b/setup.py index ac40120..e03b9ff 100644 --- a/setup.py +++ b/setup.py @@ -18,29 +18,30 @@ "kiss_fft_int16.cc", "fft.cc", "fft_util.cc", - "filterbank.c", - "filterbank_util.c", - "frontend.c", - "frontend_util.c", - "log_lut.c", - "log_scale.c", - "log_scale_util.c", - "noise_reduction.c", - "noise_reduction_util.c", - "pcan_gain_control.c", - "pcan_gain_control_util.c", - "window.c", - "window_util.c", + "filterbank.cc", + "filterbank_util.cc", + "frontend.cc", + "frontend_util.cc", + "log_lut.cc", + "log_scale.cc", + "log_scale_util.cc", + "noise_reduction.cc", + "noise_reduction_util.cc", + "pcan_gain_control.cc", + "pcan_gain_control_util.cc", + "window.cc", + "window_util.cc", ] ) -sources.append(_KISSFFT_DIR / "kiss_fft.c") -sources.append(_KISSFFT_DIR / "tools" / "kiss_fftr.c") +sources.append(_KISSFFT_DIR / "kiss_fft.cc") +sources.append(_KISSFFT_DIR / "tools" / "kiss_fftr.cc") flags = ["-DFIXED_POINT=16"] ext_modules = [ Pybind11Extension( name="micro_features_cpp", language="c++", + cxx_std=17, extra_compile_args=flags, sources=sorted([str(p) for p in sources] + [str(_DIR / "python.cpp")]), define_macros=[("VERSION_INFO", __version__)], diff --git a/tensorflow/lite/experimental/microfrontend/lib/fft_io.c b/tensorflow/lite/experimental/microfrontend/lib/fft_io.cc similarity index 100% rename from tensorflow/lite/experimental/microfrontend/lib/fft_io.c rename to tensorflow/lite/experimental/microfrontend/lib/fft_io.cc diff --git a/tensorflow/lite/experimental/microfrontend/lib/filterbank.c b/tensorflow/lite/experimental/microfrontend/lib/filterbank.cc similarity index 100% rename from tensorflow/lite/experimental/microfrontend/lib/filterbank.c rename to tensorflow/lite/experimental/microfrontend/lib/filterbank.cc diff --git a/tensorflow/lite/experimental/microfrontend/lib/filterbank_io.c b/tensorflow/lite/experimental/microfrontend/lib/filterbank_io.cc similarity index 100% rename from tensorflow/lite/experimental/microfrontend/lib/filterbank_io.c rename to tensorflow/lite/experimental/microfrontend/lib/filterbank_io.cc diff --git a/tensorflow/lite/experimental/microfrontend/lib/filterbank_util.c b/tensorflow/lite/experimental/microfrontend/lib/filterbank_util.cc similarity index 92% rename from tensorflow/lite/experimental/microfrontend/lib/filterbank_util.c rename to tensorflow/lite/experimental/microfrontend/lib/filterbank_util.cc index 430fc6e..4d4064f 100644 --- a/tensorflow/lite/experimental/microfrontend/lib/filterbank_util.c +++ b/tensorflow/lite/experimental/microfrontend/lib/filterbank_util.cc @@ -66,19 +66,19 @@ int FilterbankPopulateState(const struct FilterbankConfig* config, : kFilterbankIndexAlignment / sizeof(int16_t)); state->channel_frequency_starts = - malloc(num_channels_plus_1 * sizeof(*state->channel_frequency_starts)); + (int16_t*)malloc(num_channels_plus_1 * sizeof(*state->channel_frequency_starts)); state->channel_weight_starts = - malloc(num_channels_plus_1 * sizeof(*state->channel_weight_starts)); + (int16_t*)malloc(num_channels_plus_1 * sizeof(*state->channel_weight_starts)); state->channel_widths = - malloc(num_channels_plus_1 * sizeof(*state->channel_widths)); - state->work = malloc(num_channels_plus_1 * sizeof(*state->work)); + (int16_t*)malloc(num_channels_plus_1 * sizeof(*state->channel_widths)); + state->work = (uint64_t*)malloc(num_channels_plus_1 * sizeof(*state->work)); float* center_mel_freqs = - malloc(num_channels_plus_1 * sizeof(*center_mel_freqs)); + (float*)malloc(num_channels_plus_1 * sizeof(*center_mel_freqs)); int16_t* actual_channel_starts = - malloc(num_channels_plus_1 * sizeof(*actual_channel_starts)); + (int16_t*)malloc(num_channels_plus_1 * sizeof(*actual_channel_starts)); int16_t* actual_channel_widths = - malloc(num_channels_plus_1 * sizeof(*actual_channel_widths)); + (int16_t*)malloc(num_channels_plus_1 * sizeof(*actual_channel_widths)); if (state->channel_frequency_starts == NULL || state->channel_weight_starts == NULL || state->channel_widths == NULL || @@ -160,8 +160,8 @@ int FilterbankPopulateState(const struct FilterbankConfig* config, // Allocate the two arrays to store the weights - weight_index_start contains // the index of what would be the next set of weights that we would need to // add, so that's how many weights we need to allocate. - state->weights = calloc(weight_index_start, sizeof(*state->weights)); - state->unweights = calloc(weight_index_start, sizeof(*state->unweights)); + state->weights = (int16_t*)calloc(weight_index_start, sizeof(*state->weights)); + state->unweights = (int16_t*)calloc(weight_index_start, sizeof(*state->unweights)); // If the alloc failed, we also need to nuke the arrays. if (state->weights == NULL || state->unweights == NULL) { diff --git a/tensorflow/lite/experimental/microfrontend/lib/frontend.c b/tensorflow/lite/experimental/microfrontend/lib/frontend.cc similarity index 100% rename from tensorflow/lite/experimental/microfrontend/lib/frontend.c rename to tensorflow/lite/experimental/microfrontend/lib/frontend.cc diff --git a/tensorflow/lite/experimental/microfrontend/lib/frontend_io.c b/tensorflow/lite/experimental/microfrontend/lib/frontend_io.cc similarity index 100% rename from tensorflow/lite/experimental/microfrontend/lib/frontend_io.c rename to tensorflow/lite/experimental/microfrontend/lib/frontend_io.cc diff --git a/tensorflow/lite/experimental/microfrontend/lib/frontend_main.c b/tensorflow/lite/experimental/microfrontend/lib/frontend_main.cc similarity index 100% rename from tensorflow/lite/experimental/microfrontend/lib/frontend_main.c rename to tensorflow/lite/experimental/microfrontend/lib/frontend_main.cc diff --git a/tensorflow/lite/experimental/microfrontend/lib/frontend_memmap_generator.c b/tensorflow/lite/experimental/microfrontend/lib/frontend_memmap_generator.cc similarity index 100% rename from tensorflow/lite/experimental/microfrontend/lib/frontend_memmap_generator.c rename to tensorflow/lite/experimental/microfrontend/lib/frontend_memmap_generator.cc diff --git a/tensorflow/lite/experimental/microfrontend/lib/frontend_memmap_main.c b/tensorflow/lite/experimental/microfrontend/lib/frontend_memmap_main.cc similarity index 100% rename from tensorflow/lite/experimental/microfrontend/lib/frontend_memmap_main.c rename to tensorflow/lite/experimental/microfrontend/lib/frontend_memmap_main.cc diff --git a/tensorflow/lite/experimental/microfrontend/lib/frontend_util.c b/tensorflow/lite/experimental/microfrontend/lib/frontend_util.cc similarity index 100% rename from tensorflow/lite/experimental/microfrontend/lib/frontend_util.c rename to tensorflow/lite/experimental/microfrontend/lib/frontend_util.cc diff --git a/tensorflow/lite/experimental/microfrontend/lib/kiss_fft_int16.cc b/tensorflow/lite/experimental/microfrontend/lib/kiss_fft_int16.cc index f1e781b..3443f9d 100644 --- a/tensorflow/lite/experimental/microfrontend/lib/kiss_fft_int16.cc +++ b/tensorflow/lite/experimental/microfrontend/lib/kiss_fft_int16.cc @@ -4,7 +4,7 @@ #define FIXED_POINT 16 namespace kissfft_fixed16 { -#include "kiss_fft.c" -#include "tools/kiss_fftr.c" +#include "kiss_fft.cc" +#include "tools/kiss_fftr.cc" } // namespace kissfft_fixed16 #undef FIXED_POINT diff --git a/tensorflow/lite/experimental/microfrontend/lib/log_lut.c b/tensorflow/lite/experimental/microfrontend/lib/log_lut.cc similarity index 100% rename from tensorflow/lite/experimental/microfrontend/lib/log_lut.c rename to tensorflow/lite/experimental/microfrontend/lib/log_lut.cc diff --git a/tensorflow/lite/experimental/microfrontend/lib/log_scale.c b/tensorflow/lite/experimental/microfrontend/lib/log_scale.cc similarity index 100% rename from tensorflow/lite/experimental/microfrontend/lib/log_scale.c rename to tensorflow/lite/experimental/microfrontend/lib/log_scale.cc diff --git a/tensorflow/lite/experimental/microfrontend/lib/log_scale_io.c b/tensorflow/lite/experimental/microfrontend/lib/log_scale_io.cc similarity index 100% rename from tensorflow/lite/experimental/microfrontend/lib/log_scale_io.c rename to tensorflow/lite/experimental/microfrontend/lib/log_scale_io.cc diff --git a/tensorflow/lite/experimental/microfrontend/lib/log_scale_util.c b/tensorflow/lite/experimental/microfrontend/lib/log_scale_util.cc similarity index 100% rename from tensorflow/lite/experimental/microfrontend/lib/log_scale_util.c rename to tensorflow/lite/experimental/microfrontend/lib/log_scale_util.cc diff --git a/tensorflow/lite/experimental/microfrontend/lib/noise_reduction.c b/tensorflow/lite/experimental/microfrontend/lib/noise_reduction.cc similarity index 100% rename from tensorflow/lite/experimental/microfrontend/lib/noise_reduction.c rename to tensorflow/lite/experimental/microfrontend/lib/noise_reduction.cc diff --git a/tensorflow/lite/experimental/microfrontend/lib/noise_reduction_io.c b/tensorflow/lite/experimental/microfrontend/lib/noise_reduction_io.cc similarity index 100% rename from tensorflow/lite/experimental/microfrontend/lib/noise_reduction_io.c rename to tensorflow/lite/experimental/microfrontend/lib/noise_reduction_io.cc diff --git a/tensorflow/lite/experimental/microfrontend/lib/noise_reduction_util.c b/tensorflow/lite/experimental/microfrontend/lib/noise_reduction_util.cc similarity index 95% rename from tensorflow/lite/experimental/microfrontend/lib/noise_reduction_util.c rename to tensorflow/lite/experimental/microfrontend/lib/noise_reduction_util.cc index a6c9234..30da66a 100644 --- a/tensorflow/lite/experimental/microfrontend/lib/noise_reduction_util.c +++ b/tensorflow/lite/experimental/microfrontend/lib/noise_reduction_util.cc @@ -32,7 +32,7 @@ int NoiseReductionPopulateState(const struct NoiseReductionConfig* config, state->min_signal_remaining = config->min_signal_remaining * (1 << kNoiseReductionBits); state->num_channels = num_channels; - state->estimate = calloc(state->num_channels, sizeof(*state->estimate)); + state->estimate = (uint32_t*)calloc(state->num_channels, sizeof(*state->estimate)); if (state->estimate == NULL) { fprintf(stderr, "Failed to alloc estimate buffer\n"); return 0; diff --git a/tensorflow/lite/experimental/microfrontend/lib/pcan_gain_control.c b/tensorflow/lite/experimental/microfrontend/lib/pcan_gain_control.cc similarity index 100% rename from tensorflow/lite/experimental/microfrontend/lib/pcan_gain_control.c rename to tensorflow/lite/experimental/microfrontend/lib/pcan_gain_control.cc diff --git a/tensorflow/lite/experimental/microfrontend/lib/pcan_gain_control_util.c b/tensorflow/lite/experimental/microfrontend/lib/pcan_gain_control_util.cc similarity index 97% rename from tensorflow/lite/experimental/microfrontend/lib/pcan_gain_control_util.c rename to tensorflow/lite/experimental/microfrontend/lib/pcan_gain_control_util.cc index e850d43..dd66676 100644 --- a/tensorflow/lite/experimental/microfrontend/lib/pcan_gain_control_util.c +++ b/tensorflow/lite/experimental/microfrontend/lib/pcan_gain_control_util.cc @@ -52,7 +52,7 @@ int PcanGainControlPopulateState(const struct PcanGainControlConfig* config, } state->noise_estimate = noise_estimate; state->num_channels = num_channels; - state->gain_lut = malloc(kWideDynamicFunctionLUTSize * sizeof(int16_t)); + state->gain_lut = (int16_t*)malloc(kWideDynamicFunctionLUTSize * sizeof(int16_t)); if (state->gain_lut == NULL) { fprintf(stderr, "Failed to allocate gain LUT\n"); return 0; diff --git a/tensorflow/lite/experimental/microfrontend/lib/window.c b/tensorflow/lite/experimental/microfrontend/lib/window.cc similarity index 100% rename from tensorflow/lite/experimental/microfrontend/lib/window.c rename to tensorflow/lite/experimental/microfrontend/lib/window.cc diff --git a/tensorflow/lite/experimental/microfrontend/lib/window_io.c b/tensorflow/lite/experimental/microfrontend/lib/window_io.cc similarity index 100% rename from tensorflow/lite/experimental/microfrontend/lib/window_io.c rename to tensorflow/lite/experimental/microfrontend/lib/window_io.cc diff --git a/tensorflow/lite/experimental/microfrontend/lib/window_util.c b/tensorflow/lite/experimental/microfrontend/lib/window_util.cc similarity index 90% rename from tensorflow/lite/experimental/microfrontend/lib/window_util.c rename to tensorflow/lite/experimental/microfrontend/lib/window_util.cc index 6fdffdc..e03c28a 100644 --- a/tensorflow/lite/experimental/microfrontend/lib/window_util.c +++ b/tensorflow/lite/experimental/microfrontend/lib/window_util.cc @@ -34,7 +34,7 @@ int WindowPopulateState(const struct WindowConfig* config, state->size = config->size_ms * sample_rate / 1000; state->step = config->step_size_ms * sample_rate / 1000; - state->coefficients = malloc(state->size * sizeof(*state->coefficients)); + state->coefficients = (int16_t*)malloc(state->size * sizeof(*state->coefficients)); if (state->coefficients == NULL) { fprintf(stderr, "Failed to allocate window coefficients\n"); return 0; @@ -51,13 +51,13 @@ int WindowPopulateState(const struct WindowConfig* config, } state->input_used = 0; - state->input = malloc(state->size * sizeof(*state->input)); + state->input = (int16_t*)malloc(state->size * sizeof(*state->input)); if (state->input == NULL) { fprintf(stderr, "Failed to allocate window input\n"); return 0; } - state->output = malloc(state->size * sizeof(*state->output)); + state->output = (int16_t*)malloc(state->size * sizeof(*state->output)); if (state->output == NULL) { fprintf(stderr, "Failed to allocate window output\n"); return 0;