8 const float *input,
size_t input_elements,
size_t input_stride,
9 float *output,
size_t output_elements,
size_t output_stride,
10 size_t channels,
size_t input_frames,
size_t left_padding,
11 size_t output_frames) {
12 size_t input_span, output_span;
13 if (!channels || !input_frames || (left_padding &&
14 (input_frames < 2 || left_padding >= input_frames)))
16 if (input_frames > SIZE_MAX - left_padding)
18 if (output_frames != input_frames + left_padding)
20 if (!
ck_checked_span(channels, input_frames, input_stride, &input_span) ||
23 if (input_elements < input_span || output_elements < output_span)
29 for (
size_t channel = 0; channel < channels; ++channel)
32 for (
size_t channel = 0; channel < channels; ++channel) {
33 const float *src = input + channel * input_stride;
34 float *dst = output + channel * output_stride;
35 for (
size_t pad = 0;
pad < left_padding; ++
pad)
36 dst[
pad] = src[left_padding -
pad];
37 memcpy(dst + left_padding, src, input_frames *
sizeof(
float));
int audio_reflect_pad1d_left_channel_major_f32_checked(const float *input, size_t input_elements, size_t input_stride, float *output, size_t output_elements, size_t output_stride, size_t channels, size_t input_frames, size_t left_padding, size_t output_frames)