Monado OpenXR Runtime
u_resampler.h
Go to the documentation of this file.
1// Copyright 2025, Collabora, Ltd.
2// SPDX-License-Identifier: BSL-1.0
3/*!
4 * @file
5 * @brief Simple audio resampler
6 * @author Beyley Cardellio <ep1cm1n10n123@gmail.com>
7 * @ingroup aux_util
8 */
9
10#pragma once
11
12#include <stddef.h>
13#include <stdint.h>
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19typedef float sample_t;
20
22{
23 float sample_rate;
24
25 size_t num_samples;
26 sample_t *samples;
27
28 // static scratch buffer for resampling use
29 sample_t *scratch;
30
31 size_t read_index;
32 size_t write_index;
33};
34
35struct u_resampler *
36u_resampler_create(size_t num_samples, float sample_rate);
37
38void
39u_resampler_destroy(struct u_resampler *resampler);
40
41size_t
42u_resampler_read(struct u_resampler *resampler, sample_t *samples, size_t num_samples);
43
44size_t
45u_resampler_write(struct u_resampler *resampler, const sample_t *source_samples, size_t num_samples, float sample_rate);
46
47void
48u_resampler_reset(struct u_resampler *resampler);
49
50#ifdef __cplusplus
51}
52#endif
Definition: u_resampler.h:22