esp32-audio-player 0.1.0
Audio player engine for ESP32
Loading...
Searching...
No Matches
audio.h
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
13#pragma once
14
15#include "audio_player/base.h"
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21#define AUDIO_MAX_CHANNELS 2
22
23typedef struct {
24 uint32_t sample_rate;
25 uint8_t channels;
26 uint8_t bits;
27 bool dop;
29
30static inline bool audio_format_equal(const audio_format_t *a, const audio_format_t *b) {
31 return a->sample_rate == b->sample_rate && a->channels == b->channels && a->bits == b->bits && a->dop == b->dop;
32}
33
36rate_family_t audio_rate_family(uint32_t sample_rate);
37
38static inline int32_t audio_s16_to_q31(int16_t v) { return (int32_t)((uint32_t)(uint16_t)v << 16); }
39static inline int32_t audio_s24_to_q31(int32_t v24) { return (int32_t)((uint32_t)v24 << 8); }
40static inline int16_t audio_q31_to_s16_trunc(int32_t v) { return (int16_t)(v >> 16); }
41
42uint64_t audio_ms_to_frames(uint32_t ms, uint32_t sample_rate);
43uint32_t audio_frames_to_ms(uint64_t frames, uint32_t sample_rate);
44
45#ifdef __cplusplus
46}
47#endif
rate_family_t audio_rate_family(uint32_t sample_rate)
static int32_t audio_s24_to_q31(int32_t v24)
Definition audio.h:39
static bool audio_format_equal(const audio_format_t *a, const audio_format_t *b)
Definition audio.h:30
uint64_t audio_ms_to_frames(uint32_t ms, uint32_t sample_rate)
static int16_t audio_q31_to_s16_trunc(int32_t v)
Definition audio.h:40
static int32_t audio_s16_to_q31(int16_t v)
Definition audio.h:38
rate_family_t
44.1 kHz family (44100, 88200, 176400, 352800) or 48 kHz family (32000, 48000, 96000,...
Definition audio.h:35
@ RATE_FAMILY_44K1
Definition audio.h:35
@ RATE_FAMILY_OTHER
Definition audio.h:35
@ RATE_FAMILY_48K
Definition audio.h:35
uint32_t audio_frames_to_ms(uint64_t frames, uint32_t sample_rate)
Base definitions shared by every core module: error codes, memory, logging, locks.
Definition audio.h:23
bool dop
true: frames are DoP-encoded DSD, bypass all processing
Definition audio.h:27
uint8_t channels
1 or 2 (mono is upmixed by the player before the sink)
Definition audio.h:25
uint32_t sample_rate
Hz, e.g. 44100.
Definition audio.h:24
uint8_t bits
significant bits of the source: 16, 24 or 32
Definition audio.h:26