Verify remote no-audio readiness independently of the audio buffer
This commit is contained in:
1 parent
827f3dc619
commit
4e28c518bd
1 file changed
+24
@@ -2125,6 +2125,20 @@ static void test_viewer_radio_mute(void) {
|
||||
CHECK(!radio_member_silenced(nodes[1], GROUP1, source));
|
||||
CHECK(stream_media_open(nodes[1], GROUP1, source, epoch, STREAM_MEDIA_TRACK_VIDEO, &first) == STREAM_OK);
|
||||
CHECK(stream_media_open(nodes[1], GROUP1, source, epoch, STREAM_MEDIA_TRACK_VIDEO | STREAM_MEDIA_TRACK_AUDIO, &second) == STREAM_OK);
|
||||
uint8_t video[8] = {0}, audio[1] = {1}, wire[512]; size_t length = 0;
|
||||
struct stream_media_block media = {.format = {64, 64, 0, STREAM_MEDIA_H264, STREAM_MEDIA_OPUS_STEREO, 1},
|
||||
.video_count = 1, .audio_count = 1};
|
||||
media.video[0] = (struct stream_media_video){1, 0, sizeof(video), 0, sizeof(video), STREAM_MEDIA_KEY, video};
|
||||
media.audio[0] = (struct stream_media_audio){0, sizeof(audio), 960, audio};
|
||||
CHECK(stream_media_encode(&media, wire, sizeof(wire), &length) == STREAM_OK);
|
||||
CHECK(stream_publish_block(publisher, wire, length) == STREAM_OK);
|
||||
struct stream_media_status status;
|
||||
uint64_t media_deadline = get_time_tb() + 100000;
|
||||
do {
|
||||
CHECK(get_time_tb() < media_deadline); test_clock_poll(ua, 100);
|
||||
CHECK(stream_media_get_status(second, &status) == STREAM_OK);
|
||||
} while (!status.initialized);
|
||||
CHECK(status.audio_enabled);
|
||||
CHECK(radio_member_silenced(nodes[1], GROUP1, source) && !radio_member_muted(nodes[1], GROUP1, source));
|
||||
CHECK(!radio_member_silenced(nodes[1], GROUP2, source));
|
||||
CHECK(!radio_member_silenced(nodes[1], GROUP1, nodes[2]->node_id));
|
||||
@@ -2132,10 +2146,20 @@ static void test_viewer_radio_mute(void) {
|
||||
CHECK(radio_member_silenced(nodes[1], GROUP1, source));
|
||||
CHECK(radio_set_member_muted(nodes[1], GROUP1, source, 1) == 0);
|
||||
CHECK(stream_publish_set_audio_enabled(publisher, 0) == STREAM_OK); wait_source_audio(epoch, 0);
|
||||
media.audio_count = 0; media.video[0].frame_id = 2; media.video[0].pts_us = 40000;
|
||||
CHECK(stream_media_encode(&media, wire, sizeof(wire), &length) == STREAM_OK);
|
||||
CHECK(stream_publish_block(publisher, wire, length) == STREAM_OK);
|
||||
media_deadline = get_time_tb() + 100000;
|
||||
do {
|
||||
CHECK(get_time_tb() < media_deadline); test_clock_poll(ua, 100);
|
||||
CHECK(stream_media_get_status(second, &status) == STREAM_OK);
|
||||
} while (status.video_us != 40000);
|
||||
CHECK(!status.audio_enabled && status.ready_us == 40000 && status.audio_us == 20000);
|
||||
CHECK(!stream_radio_muted(nodes[1], GROUP1, source) && radio_member_silenced(nodes[1], GROUP1, source));
|
||||
CHECK(radio_set_member_muted(nodes[1], GROUP1, source, 0) == 0);
|
||||
CHECK(!radio_member_silenced(nodes[1], GROUP1, source));
|
||||
CHECK(stream_publish_set_audio_enabled(publisher, 1) == STREAM_OK); wait_source_audio(epoch, 1);
|
||||
CHECK(stream_media_get_status(second, &status) == STREAM_OK && status.audio_enabled);
|
||||
CHECK(radio_member_silenced(nodes[1], GROUP1, source));
|
||||
stream_close(second); second = NULL;
|
||||
CHECK(!radio_member_silenced(nodes[1], GROUP1, source));
|
||||
|
||||
Reference in new issue
Block a user