X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=nageru%2Faudio_clip.h;fp=nageru%2Faudio_clip.h;h=71248af99cc5ba1cdef3f5ac081c8f6e00c8682d;hb=bd01e11a41a19fef2315319909d8655cac359f0f;hp=0000000000000000000000000000000000000000;hpb=a944bad466ba5601a96f6833e1ea2eb31f9b55af;p=nageru diff --git a/nageru/audio_clip.h b/nageru/audio_clip.h new file mode 100644 index 0000000..71248af --- /dev/null +++ b/nageru/audio_clip.h @@ -0,0 +1,29 @@ +#ifndef AUDIO_CLIP_H +#define AUDIO_CLIP_H + +// A short single-channel recording of an audio clip, for the delay analyzer. +// Thread safe. + +#include +#include +#include +#include +#include + +class AudioClip +{ +public: + void clear(); + void add_audio(const float *samples, size_t num_samples, double sample_rate, std::chrono::steady_clock::time_point frame_time); + double get_length_seconds() const; + + std::unique_ptr[]> get_min_max_peaks(unsigned width) const; + +private: + mutable std::mutex mu; + std::vector vals; // Under . + double sample_rate; // Under . + std::chrono::steady_clock::time_point first_sample; // Under . +}; + +#endif