ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
analysis.h
Go to the documentation of this file.
1
12
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
31typedef struct {
32 uint64_t total_samples; // Total samples processed
33 float peak_level; // Maximum sample value
34 float rms_level; // RMS (root mean square) level
35 uint64_t clipping_count; // Samples > 1.0 (clipping)
36 uint64_t silent_samples; // Samples < 0.001 (silence threshold)
37 float dc_offset; // DC bias in signal
38 uint32_t packets_count; // Number of packets
39 uint32_t packets_dropped; // Dropped packets
40 int64_t timestamp_start_ns; // Start timestamp (nanoseconds)
41 int64_t timestamp_end_ns; // End timestamp (nanoseconds)
42 // Quality indicators for "scratchy/distorted" detection
43 uint64_t jitter_count; // Rapid amplitude changes (jitter events)
44 uint64_t discontinuity_count; // Packet arrival gaps (sparse delivery)
45 uint64_t avg_packet_spacing_ns; // Average time between packets (nanoseconds)
46 uint64_t max_gap_ns; // Largest gap between consecutive packets (nanoseconds)
47 // Beep/tone artifact detection
48 uint64_t beep_events; // Short tonal bursts (codec artifacts, system beeps)
49 uint64_t tonal_samples; // Samples in tonal/beep-like patterns
53
59int audio_analysis_init(void);
60
65void audio_analysis_track_sent_sample(float sample);
66
71void audio_analysis_track_sent_packet(size_t size);
72
78
84
90
96
101
108void audio_analysis_set_aec3_metrics(double echo_return_loss, double echo_return_loss_enhancement, uint64_t delay_ns);
109
113void audio_analysis_destroy(void);
114
115#ifdef __cplusplus
116} /* extern "C" */
117#endif
const audio_analysis_stats_t * audio_analysis_get_sent_stats(void)
Get sent audio statistics.
Definition analysis.c:503
void audio_analysis_track_received_sample(float sample)
Track received audio sample.
Definition analysis.c:280
int audio_analysis_init(void)
Measurements used to diagnose sent or received audio quality.
Definition analysis.c:113
const audio_analysis_stats_t * audio_analysis_get_received_stats(void)
Get received audio statistics.
Definition analysis.c:509
void audio_analysis_track_sent_sample(float sample)
Track sent audio sample.
Definition analysis.c:181
void audio_analysis_set_aec3_metrics(double echo_return_loss, double echo_return_loss_enhancement, uint64_t delay_ns)
Set AEC3 echo cancellation metrics.
Definition analysis.c:517
void audio_analysis_track_received_packet(size_t size)
Track received packet.
Definition analysis.c:470
void audio_analysis_print_report(void)
Print audio analysis report.
Definition analysis.c:526
void audio_analysis_track_sent_packet(size_t size)
Track sent packet.
Definition analysis.c:253
void audio_analysis_destroy(void)
Cleanup audio analysis.
Definition analysis.c:885
unsigned int uint32_t
Definition common.h:62
unsigned long long uint64_t
Definition common.h:63
Measurements used to diagnose sent or received audio quality.
Definition analysis.h:31
uint32_t packets_dropped
Definition analysis.h:39
int64_t timestamp_start_ns
Definition analysis.h:40
uint64_t silent_samples
Definition analysis.h:36
uint64_t clipping_count
Definition analysis.h:35
uint64_t discontinuity_count
Definition analysis.h:44
uint64_t avg_packet_spacing_ns
Definition analysis.h:45