ascii-chat 0.6.0
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
analysis.h
Go to the documentation of this file.
1
13#pragma once
14
15#include <stdint.h>
16#include <stdbool.h>
17#include <stddef.h>
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
26typedef struct {
27 uint64_t total_samples; // Total samples processed
28 float peak_level; // Maximum sample value
29 float rms_level; // RMS (root mean square) level
30 uint64_t clipping_count; // Samples > 1.0 (clipping)
31 uint64_t silent_samples; // Samples < 0.001 (silence threshold)
32 float dc_offset; // DC bias in signal
33 uint32_t packets_count; // Number of packets
34 uint32_t packets_dropped; // Dropped packets
35 int64_t timestamp_start_us; // Start timestamp (microseconds)
36 int64_t timestamp_end_us; // End timestamp (microseconds)
37 // Quality indicators for "scratchy/distorted" detection
38 uint64_t jitter_count; // Rapid amplitude changes (jitter events)
39 uint64_t discontinuity_count; // Packet arrival gaps (sparse delivery)
40 float avg_packet_spacing_ms; // Average time between packets (ms)
41 uint32_t max_gap_ms; // Largest gap between consecutive packets (ms)
42 // Beep/tone artifact detection
43 uint64_t beep_events; // Short tonal bursts (codec artifacts, system beeps)
44 uint64_t tonal_samples; // Samples in tonal/beep-like patterns
46
51int audio_analysis_init(void);
52
57void audio_analysis_track_sent_sample(float sample);
58
63void audio_analysis_track_sent_packet(size_t size);
64
70
76
82
88
93
100void audio_analysis_set_aec3_metrics(double echo_return_loss, double echo_return_loss_enhancement, int delay_ms);
101
105void audio_analysis_cleanup(void);
106
107#ifdef __cplusplus
108} /* extern "C" */
109#endif
const audio_analysis_stats_t * audio_analysis_get_sent_stats(void)
Get sent audio statistics.
Definition analysis.c:500
void audio_analysis_track_received_sample(float sample)
Track received audio sample.
Definition analysis.c:275
int audio_analysis_init(void)
Initialize audio analysis.
Definition analysis.c:113
const audio_analysis_stats_t * audio_analysis_get_received_stats(void)
Get received audio statistics.
Definition analysis.c:504
void audio_analysis_cleanup(void)
Cleanup audio analysis.
Definition analysis.c:882
void audio_analysis_track_sent_sample(float sample)
Track sent audio sample.
Definition analysis.c:174
void audio_analysis_track_received_packet(size_t size)
Track received packet.
Definition analysis.c:466
void audio_analysis_print_report(void)
Print audio analysis report.
Definition analysis.c:517
void audio_analysis_track_sent_packet(size_t size)
Track sent packet.
Definition analysis.c:246
void audio_analysis_set_aec3_metrics(double echo_return_loss, double echo_return_loss_enhancement, int delay_ms)
Set AEC3 echo cancellation metrics.
Definition analysis.c:508
unsigned int uint32_t
Definition common.h:58
unsigned long long uint64_t
Definition common.h:59
Audio analysis statistics for sent or received audio.
Definition analysis.h:26
int64_t timestamp_start_us
Definition analysis.h:35
uint32_t packets_dropped
Definition analysis.h:34
uint64_t silent_samples
Definition analysis.h:31
uint64_t clipping_count
Definition analysis.h:30
uint64_t discontinuity_count
Definition analysis.h:39