Test stream audio toggles and viewer scoped radio suppression

This commit is contained in:
evgeny committed 2026-10-16 01:49:30 +02:00
1 parent 2a572af2bb
commit 559d66ae20
2 files changed
+88 -4

No files matched your search

@@ -172,6 +172,31 @@ private slots:
gui_stream_publish_stop(id); QVERIFY(record(viewer, StreamRecordKind::End, out)); QTRY_VERIFY_WITH_TIMEOUT(ended(id), 4000);
QCOMPARE(gui_stream_publish_feed(id, true, 300000, true, second, &format), -1); gui_stream_stop(viewer);
}
void audioToggleKeepsEpochAndTrack() {
uint64_t id = 104;
stream_media_format format{160, 90, 0, STREAM_MEDIA_H264, STREAM_MEDIA_OPUS_STEREO, 1};
QVERIFY(gui_stream_publish_open(id, group, format)); QTRY_VERIFY(live(id));
stream_publisher_status status{}; QVERIFY(gui_stream_publish_status(id, status)); QVERIFY(status.audio_enabled);
uint64_t epoch = status.epoch;
stream_member_state member{};
QCOMPARE(stream_member_load(inst, group, inst->node_id, &member, nullptr), STREAM_OK); QVERIFY(member.audio_enabled);
QVERIFY(gui_stream_publish_audio(id, false));
QTRY_VERIFY(gui_stream_publish_status(id, status) && !status.audio_enabled);
QCOMPARE(status.epoch, epoch);
QCOMPARE(stream_member_load(inst, group, inst->node_id, &member, nullptr), STREAM_OK); QVERIFY(!member.audio_enabled);
QVERIFY(!gui_stream_publish_audio(id + 1, true));
QVERIFY(gui_stream_publish_audio(id, true));
QTRY_VERIFY(gui_stream_publish_status(id, status) && status.audio_enabled); QCOMPARE(status.epoch, epoch);
auto* encoder = opus_codec_encoder_create(48000, 2); QVERIFY(encoder);
int16_t silence[1920]{}; uint8_t packet[STREAM_MEDIA_MAX_OPUS];
int size = opus_codec_encode(encoder, silence, 960, packet, sizeof(packet)); QVERIFY(size > 0);
opus_codec_encoder_destroy(encoder);
QCOMPARE(gui_stream_publish_feed(id, false, 100000, false, QByteArray(reinterpret_cast<const char*>(packet), size)), 1);
gui_stream_publish_stop(id); QVERIFY(!gui_stream_publish_audio(id, false)); QTRY_VERIFY_WITH_TIMEOUT(ended(id), 4000);
format.audio_codec = 0;
QVERIFY(gui_stream_publish_open(++id, group, format)); QTRY_VERIFY(live(id));
QVERIFY(!gui_stream_publish_audio(id, true)); gui_stream_publish_stop(id); QTRY_VERIFY_WITH_TIMEOUT(ended(id), 4000);
}
void liveSoftwareBitrateKeepsDecoder() {
#ifdef HAVE_FFMPEG
LiveVideoEncoder encoder; LiveVideoConfig config; config.width = config.height = 16;