У меня есть сеанс приема в серверном приложении, и два клиента отправляют свои аудиоданные на этот сервер.
В серверном приложении я просто попробовал эти два примера: https://github.com/j0r1/JRTPLIB/blob/master/examples/example4.cpp https://github.com/j0r1/JRTPLIB/blob/master/examples/example2.cpp
, который сводится к этому коду для получения данных в отдельном потоке:
session.BeginDataAccess();
if (session.GotoFirstSource())
{
do
{
RTPPacket *packet;
while ((packet = session.GetNextPacket()) != 0)
{
//access to packet here
session.DeletePacket(packet);
}
} while (session.GotoNextSource());
}
session.EndDataAccess();
Для одного отправляющего клиента все работает нормально, но когда два клиента отправляют , это выглядит как получениесеанс не может идти в ногу .Это не целое серверное приложение, заблокированное, хотя, я могу запросить список клиентов, и поток TCP отвечает во время этого замедления.
Я очень новичок в использовании RTP, простите меня, если я неправильно понимаю пример кода, и я будуБуду очень благодарен за любой совет, который я могу получить о том, как решить эту проблему.
Поэтому я пытаюсь получить данные из нескольких клиентских приложений за один сеанс приемника, но по какой-то причине это не работает слишком быстро.Что может быть причиной?Сеанс RTP предназначен для получения данных из нескольких источников iirc.