Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion src/common/clog.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ void set_log_level(log_level_t level);
#define fatal(fmt, ...) def_log(ck_log_level_fatal, fmt, ##__VA_ARGS__)
#define error(fmt, ...) def_log(ck_log_level_error, fmt, ##__VA_ARGS__)
#define warn(fmt, ...) def_log(ck_log_level_warn, fmt, ##__VA_ARGS__)
#define warning(fmt, ...) def_log(ck_log_level_warn, fmt, ##__VA_ARGS__)
#define info(fmt, ...) def_log(ck_log_level_info, fmt, ##__VA_ARGS__)
#define debug(fmt, ...) def_log(ck_log_level_debug, fmt, ##__VA_ARGS__)
#define trace(fmt, ...) def_log(ck_log_level_trace, fmt, ##__VA_ARGS__)
Expand Down
16 changes: 8 additions & 8 deletions src/limiter/audio_effect_peak_limiter.c
Original file line number Diff line number Diff line change
Expand Up @@ -116,11 +116,11 @@ static inline float hard_limit(float sample, float threshold) {
*/
static inline float clampf(float val, float min, float max, const char* name) {
if (val < min) {
warning("%s %.4f < min %.4f, clamped", name, val, min);
warn("%s %.4f < min %.4f, clamped", name, val, min);
return min;
}
if (val > max) {
warning("%s %.4f > max %.4f, clamped", name, val, max);
warn("%s %.4f > max %.4f, clamped", name, val, max);
return max;
}
return val;
Expand Down Expand Up @@ -368,23 +368,23 @@ audio_effect_peak_limiter_t* audio_effect_peak_limiter_create(
int min_delay = (int)(def_delay_sec_min * sample_rate);
int max_delay = (int)(def_delay_sec_max * sample_rate);
if (delay_size < min_delay) {
warning("delay_size %d < min %d (0.1ms), clamped", delay_size, min_delay);
warn("delay_size %d < min %d (0.1ms), clamped", delay_size, min_delay);
delay_size = min_delay;
}
if (delay_size > max_delay) {
warning("delay_size %d > max %d (20ms), clamped", delay_size, max_delay);
warn("delay_size %d > max %d (20ms), clamped", delay_size, max_delay);
delay_size = max_delay;
}
} else if (delay_size < 0) {
warning("delay_size %d < 0, set to 0 (no-delay mode)", delay_size);
warn("delay_size %d < 0, set to 0 (no-delay mode)", delay_size);
delay_size = 0;
}

/* Constraint: attack <= look-ahead (when look-ahead > 0) */
if (delay_size > 0) {
float look_ahead_sec = (float)delay_size / sample_rate;
if (atk_sec > look_ahead_sec) {
warning(
warn(
"attack %.4fs > look-ahead %.4fs, hard-limit will trigger frequently",
atk_sec, look_ahead_sec);
}
Expand All @@ -406,14 +406,14 @@ audio_effect_peak_limiter_t* audio_effect_peak_limiter_create(
if (delay_size > 0) {
ths->delay_data = def_mallocz(float, num_channels * ths->delay_size);
if (!ths->delay_data) {
warning("Failed to allocate delay_data");
warn("Failed to allocate delay_data");
audio_effect_peak_limiter_destroy(ths);
return NULL;
}

ths->peak_data = def_mallocz(float, ths->delay_size);
if (!ths->peak_data) {
warning("Failed to allocate peak_data");
warn("Failed to allocate peak_data");
audio_effect_peak_limiter_destroy(ths);
return NULL;
}
Expand Down
6 changes: 3 additions & 3 deletions src/limiter/oar_limiter.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ oar_limiter_t *oar_limiter_create(const oar_limiter_config_t *config) {
config->attack_sec, config->release_sec,
(config->look_ahead_sec * config->sample_rate));
if (!lim->peak_limiter) {
warning("Failed to create peak limiter");
warn("Failed to create peak limiter");
def_free(lim);
return NULL;
}
Expand All @@ -61,7 +61,7 @@ oar_limiter_t *oar_limiter_create(const oar_limiter_config_t *config) {
int out_buf_capacity = def_max(config->samples_per_channel, lim->delay_size);
lim->out_buf = def_mallocz(float, (config->num_channels * out_buf_capacity));
if (!lim->out_buf) {
warning("Failed to allocate limiter output buffer");
warn("Failed to allocate limiter output buffer");
audio_effect_peak_limiter_destroy(lim->peak_limiter);
def_free(lim);
return NULL;
Expand Down Expand Up @@ -102,7 +102,7 @@ int oar_limiter_process(oar_limiter_t *lim, oar_audio_block_t *output) {
lim->peak_limiter, output->data, lim->out_buf, samples);

if (returned < 0) {
warning("Limiter process error: %d", returned);
warn("Limiter process error: %d", returned);
return ck_oar_error_inval;
}

Expand Down
20 changes: 9 additions & 11 deletions src/oar.c
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ oar_t *oar_create(const oar_config_t *config) {
};
oar->limiter = oar_limiter_create(&limiter_config);
if (!oar->limiter) {
warning("Failed to create limiter");
warn("Failed to create limiter");
/* Continue without limiter - don't fail OAR creation */
}

Expand All @@ -180,7 +180,7 @@ oar_t *oar_create(const oar_config_t *config) {
oar->mixed =
wav_writer_open(ck_tag_mixed, 0, oar->config.sampling_rate,
layout_channels_count(oar->config.target_layout));
if (!oar->mixed) warning("Failed to open WAV file for output");
if (!oar->mixed) warn("Failed to open WAV file for output");
#endif

return oar;
Expand Down Expand Up @@ -272,7 +272,7 @@ int oar_add_audio_element(oar_t *oar, uint32_t gid, uint32_t id,

if (vector_find(oar->groups, def_value_wrap_instance_u32(gid), _find_group_id,
&v) < 0) {
warning("Audio group %u does not exist.", gid);
warn("Audio group %u does not exist.", gid);
return ck_oar_error_inval;
}
group = def_value_wrap_type_ptr(audio_group_t, &v);
Expand All @@ -281,7 +281,7 @@ int oar_add_audio_element(oar_t *oar, uint32_t gid, uint32_t id,
audio_group_t *_group = def_value_wrap_ptr(vector_at(oar->groups, i));
if (vector_find(_group->renderers, def_value_wrap_instance_u32(id),
_find_element_id, &v) >= 0) {
warning("Audio element %u already exists in another group.", id);
warn("Audio element %u already exists in another group.", id);
return ck_oar_error_busy;
}
}
Expand All @@ -308,8 +308,8 @@ int oar_add_audio_element(oar_t *oar, uint32_t gid, uint32_t id,
renderer = binaural_renderer;
break;
} else {
warning("Failed to add element %u to binaural renderer. Error: %d",
id, ret);
warn("Failed to add element %u to binaural renderer. Error: %d", id,
ret);
}
}
}
Expand Down Expand Up @@ -437,15 +437,13 @@ int oar_set_metadata_unit_to_process(oar_t *oar, oar_metadata_type_t type,
if (!oar) return ck_oar_error_inval;

if (type != ck_metadata_object_positions) {
warning(
"Only object positions are supported for setting samples to process.");
warn("Only object positions are supported for setting samples to process.");
return ck_oar_error_notsup;
}

if (samples == 0 || oar->config.samples_per_channel < samples) {
warning(
"metadata unit samples (%u) is invalid for samples_per_channel (%u).",
samples, oar->config.samples_per_channel);
warn("metadata unit samples (%u) is invalid for samples_per_channel (%u).",
samples, oar->config.samples_per_channel);
return ck_oar_error_inval;
}

Expand Down
24 changes: 12 additions & 12 deletions src/renderer/audio_element_renderer.c
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ audio_element_renderer_t *audio_element_renderer_new(

ctx->in = audio_element_config_to_ri_id(config);
if (ctx->in == ck_rid_none) {
warning("Unsupported input self.");
warn("Unsupported input self.");
audio_element_renderer_delete(&self->base);
return 0;
}
Expand All @@ -200,7 +200,7 @@ audio_element_renderer_t *audio_element_renderer_new(

self->base.lib = renderer_library_manager_find_library(manager, ctx);
if (!self->base.lib) {
warning("Failed to find self library for stream %u", id);
warn("Failed to find self library for stream %u", id);
audio_element_renderer_delete(&self->base);
return 0;
}
Expand Down Expand Up @@ -237,7 +237,7 @@ audio_element_renderer_t *audio_element_renderer_new(
: ck_binaural_filter_profile_default;
if (self->base.lib->set_attribute(ctx, ck_attribute_add_element, &set) !=
ck_oar_ok) {
warning("Failed to set binaural filter profile for stream %u", id);
warn("Failed to set binaural filter profile for stream %u", id);
audio_element_renderer_delete(&self->base);
return 0;
}
Expand All @@ -256,7 +256,7 @@ audio_element_renderer_t *audio_element_renderer_new(
wav_writer_open(ck_tag_rendered, id, ctx->sample_rate,
layout_channels_count(oar_config->target_layout));
if (!self->rendered)
warning("Failed to open WAV file for rendered stream %u", id);
warn("Failed to open WAV file for rendered stream %u", id);
#endif

return self;
Expand All @@ -283,8 +283,8 @@ static int audio_element_renderer_update_metadata(
if (!self) return ck_oar_error_inval;

if (self->element.eid != element_id) {
warning("Element ID mismatch: expected %u, got %u", self->element.eid,
element_id);
warn("Element ID mismatch: expected %u, got %u", self->element.eid,
element_id);
return ck_oar_error_inval;
}

Expand All @@ -307,20 +307,20 @@ int audio_element_renderer_update_data(audio_renderer_base_t *base, uint32_t id,
if (!self) return ck_oar_error_inval;

if (self->element.eid != id) {
warning("Element ID mismatch: expected %u, got %u", self->element.eid, id);
warn("Element ID mismatch: expected %u, got %u", self->element.eid, id);
return ck_oar_error_inval;
}

if (!block || !block->data) return ck_oar_error_inval;

if (block->channels != self->base.block.channels) {
warning("Input block channels (%u) don't match self channels (%u)",
block->channels, self->base.block.channels);
warn("Input block channels (%u) don't match self channels (%u)",
block->channels, self->base.block.channels);
return ck_oar_error_inval;
}

if (block->samples_per_channel != self->base.block.samples_per_channel) {
warning(
warn(
"Input block samples per channel (%u) don't match self samples per "
"channel (%u)",
block->samples_per_channel, self->base.block.samples_per_channel);
Expand Down Expand Up @@ -421,8 +421,8 @@ int audio_element_renderer_set_element_head_locked(audio_renderer_base_t *base,
if (!self) return ck_oar_error_inval;

if (self->element.eid != element_id) {
warning("Element ID mismatch: expected %u, got %u", self->element.eid,
element_id);
warn("Element ID mismatch: expected %u, got %u", self->element.eid,
element_id);
return ck_oar_error_inval;
}

Expand Down
26 changes: 13 additions & 13 deletions src/renderer/audio_elements_renderer.c
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ audio_elements_renderer_t *audio_elements_renderer_new(

self->base.lib = renderer_library_manager_find_library(manager, ctx);
if (!self->base.lib) {
warning("Failed to find renderer library for stream %u", id);
warn("Failed to find renderer library for stream %u", id);
def_free(self);
return 0;
}
Expand Down Expand Up @@ -145,7 +145,7 @@ audio_elements_renderer_t *audio_elements_renderer_new(
wav_writer_open(ck_tag_rendered, id, oar_config->sampling_rate,
layout_channels_count(oar_config->target_layout));
if (!self->rendered)
warning("Failed to open WAV file for rendered stream %u", id);
warn("Failed to open WAV file for rendered stream %u", id);
#endif

return self;
Expand Down Expand Up @@ -178,7 +178,7 @@ int audio_elements_renderer_add_element(
if (!self || !config) return ck_oar_error_inval;

if (hash_map_get(self->element_map, element_id)) {
warning("Element %u already exists", element_id);
warn("Element %u already exists", element_id);
return ck_oar_error_busy;
}

Expand All @@ -205,7 +205,7 @@ int audio_elements_renderer_add_element(
&self->base.ctx, ck_attribute_head_tracking,
&self->base.head_tracking_enabled);
if (err != ck_oar_ok)
warning("Failed to propagate head tracking state: %d", err);
warn("Failed to propagate head tracking state: %d", err);
}
}

Expand Down Expand Up @@ -242,7 +242,7 @@ int audio_elements_renderer_remove_element(audio_renderer_base_t *base,
audio_element_context_t *ctx = def_value_wrap_optional_type_ptr(
audio_element_context_t, hash_map_get(self->element_map, element_id));
if (!ctx) {
warning("Element %u not found for removal", element_id);
warn("Element %u not found for removal", element_id);
return ck_oar_error_inval;
}

Expand All @@ -251,7 +251,7 @@ int audio_elements_renderer_remove_element(audio_renderer_base_t *base,
int ret = self->base.lib->set_attribute(
&self->base.ctx, ck_attribute_remove_element, &lib_index);
if (ret != ck_oar_ok) {
warning(
warn(
"Cannot remove element %u from renderer library (error %d). "
"Removal aborted; element remains active.",
element_id, ret);
Expand Down Expand Up @@ -316,7 +316,7 @@ int audio_elements_renderer_update_element_metadata(
(audio_element_context_t *)def_value_wrap_optional_ptr(
hash_map_get(self->element_map, element_id));
if (!ctx) {
warning("Element %u not found", element_id);
warn("Element %u not found", element_id);
return ck_oar_error_inval;
}

Expand All @@ -343,21 +343,21 @@ int audio_elements_renderer_add_data(audio_renderer_base_t *base,
(audio_element_context_t *)def_value_wrap_optional_ptr(
hash_map_get(self->element_map, element_id));
if (!ctx) {
warning("Element %u not found", element_id);
warn("Element %u not found", element_id);
return ck_oar_error_inval;
}

// Validate block dimensions match config to prevent OBR buffer size mismatch
// crash and heap overflow from inconsistent stride/length in memcpy.
if (block->samples_per_channel != self->base.ctx.samples_per_frame) {
warning("Input block samples per channel (%u) don't match config (%u)",
block->samples_per_channel, self->base.ctx.samples_per_frame);
warn("Input block samples per channel (%u) don't match config (%u)",
block->samples_per_channel, self->base.ctx.samples_per_frame);
return ck_oar_error_inval;
}

if (block->channels != (uint32_t)rid_channels_count(ctx->rid)) {
warning("Input block channels (%u) don't match element channels (%u)",
block->channels, rid_channels_count(ctx->rid));
warn("Input block channels (%u) don't match element channels (%u)",
block->channels, rid_channels_count(ctx->rid));
return ck_oar_error_inval;
}

Expand Down Expand Up @@ -483,7 +483,7 @@ int audio_elements_renderer_set_element_head_locked(audio_renderer_base_t *base,
(audio_element_context_t *)def_value_wrap_optional_ptr(
hash_map_get(self->element_map, element_id));
if (!ctx) {
warning("Element %u not found", element_id);
warn("Element %u not found", element_id);
return ck_oar_error_inval;
}

Expand Down
Loading
Loading