radio: адаптивный джиттер-буфер (pre-roll, симметричный темп, reorder) + AGC-компрессор микрофона
- voice_jitter: vj_create_cfg (target_ms/min_tempo/max_tempo/pre_roll), pre-roll с таймаутом, vj_end для дренажа остатка, глубина учитывает внутренний буфер SoundTouch - radio_audio: reorder по seq (mesh, out-of-order через соседей), force-flush pending по таймауту и FIN, компрессор микрофона (AGC, конфиг [chatserver]), статистика буфера - audio_compressor: clear_output для потокового слива без потери gain_smoothed - chatgui messagelist: fromUtf8 для emoji-строк - тесты: pre-roll/симметричный темп, reorder, late-drop
This commit is contained in:
1 parent
27e66f1092
commit
738cfe7835
8 files changed
+473
-62
No files matched your search
@@ -331,7 +331,7 @@ MessageList::MessageList(DbManager* db, AudioRecorder* recorder, QWidget *parent
|
||||
m_talkingLabel->hide();
|
||||
hl->addWidget(m_talkingLabel);
|
||||
|
||||
m_radioBtn = new QPushButton(QStringLiteral("\xF0\x9F\x93\xBB"), header);
|
||||
m_radioBtn = new QPushButton(QString::fromUtf8("\xF0\x9F\x93\xBB"), header);
|
||||
m_radioBtn->setCheckable(true);
|
||||
m_radioBtn->setFixedSize(34, 30);
|
||||
m_radioBtn->setCursor(Qt::PointingHandCursor);
|
||||
@@ -367,7 +367,7 @@ MessageList::MessageList(DbManager* db, AudioRecorder* recorder, QWidget *parent
|
||||
layout->addWidget(m_view, 1);
|
||||
|
||||
/* ── плавающая PTT-кнопка поверх чата (видна при включённой рации) ── */
|
||||
m_pttBtn = new QPushButton(QStringLiteral("\xF0\x9F\x8E\xA4"), this);
|
||||
m_pttBtn = new QPushButton(QString::fromUtf8("\xF0\x9F\x8E\xA4"), this);
|
||||
m_pttBtn->setFixedSize(96, 96);
|
||||
m_pttBtn->setCursor(Qt::PointingHandCursor);
|
||||
m_pttBtn->setToolTip(QStringLiteral("Держите и говорите"));
|
||||
@@ -1099,7 +1099,7 @@ void MessageList::onRadioTalk(quint64 groupId, quint64 srcNodeId, bool on) {
|
||||
if (on) {
|
||||
QString name = authorName(srcNodeId);
|
||||
if (name.isEmpty()) name = QStringLiteral("0x%1").arg(srcNodeId, 0, 16);
|
||||
m_talkingLabel->setText(QStringLiteral("\xF0\x9F\x8E\x99 %1 говорит").arg(name));
|
||||
m_talkingLabel->setText(QString::fromUtf8("\xF0\x9F\x8E\x99 %1 говорит").arg(name));
|
||||
m_talkingLabel->show();
|
||||
} else {
|
||||
m_talkingLabel->hide();
|
||||
|
||||
Reference in new issue
Block a user