o ( ̄ ヘ  ̄o #) Почему нет ответа? Никто не видит такой же проблемы?
Я отлаживаю проблемы с запуском RTC на Android, и я пробовал обслуживать разные устройства. Чтобы упростить этот вопрос, я просто продолжаю отправлять пакеты udp с интервалом около 10 мс от MAC и получать их на Android с хорошим wifi. Я вижу большие дрожания (более 200 мс) почти каждую минуту, иногда они могут превышать 600 мс. Особенно, когда я открываю и закрываю диспетчер задач. Не дублируется тестированием на локальном хосте. Это можно исправить?
while(1) {
int s = recvfrom(socket_fd, buffer, sizeof(buffer), 0, (struct sockaddr *)&recv_addr, (socklen_t *)&addr_len);
if (s > 0) {
struct timeval tv_ioctl;
tv_ioctl.tv_sec = 0;
tv_ioctl.tv_usec = 0;
int error = ioctl(socket_fd, SIOCGSTAMP, &tv_ioctl);
if (error == 0) {
int64_t ms = tv_ioctl.tv_sec * 1000LL + tv_ioctl.tv_usec/1000;
if (pre_rev_ms == 0) {
pre_rev_ms = ms;
}
if (ms - pre_rev_ms > 200) {
LOGV("Udp glitches\n");
}
pre_rev_ms = ms;
}
}
}