Define SoundTouch source spans and unity interpolation contract
This commit is contained in:
1 parent
183e66e97d
commit
ceb06bafcf
3 files changed
+30
No files matched your search
@@ -0,0 +1,22 @@
|
||||
/* uTun: происхождение PCM без изменения DSP. Индексы — сэмплы НА КАНАЛ от clear().
|
||||
* Copy: out[i] происходит из input0+i. Mix: источники input0+i и input1+i,
|
||||
* вес второго i/count, первого 1-i/count. Это описание происхождения, не PCM.
|
||||
* Reset начинает новую шкалу. Invalid запрещает её использование до clear().
|
||||
* Callback синхронный: нельзя вызывать SoundTouch повторно, блокировать поток или
|
||||
* сохранять ссылку на событие. Ошибки передаются через Invalid; логирует потребитель. */
|
||||
#ifndef SOUNDTOUCH_SOURCE_SPAN_H
|
||||
#define SOUNDTOUCH_SOURCE_SPAN_H
|
||||
#include <cstdint>
|
||||
|
||||
namespace soundtouch {
|
||||
enum class SourceKind { Reset, Copy, Mix, Invalid };
|
||||
enum class SourceError { None, Profile, Reconfigure, Flush, LateAttach };
|
||||
struct SourceSpan {
|
||||
SourceKind kind;
|
||||
SourceError error = SourceError::None;
|
||||
uint64_t output = 0, input0 = 0, input1 = 0;
|
||||
uint32_t count = 0;
|
||||
};
|
||||
using SourceCallback = void (*)(void*, const SourceSpan&);
|
||||
}
|
||||
#endif
|
||||
Reference in new issue
Block a user