Russian Qt Forum
Ноябрь 23, 2024, 07:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: QtMobility трансляция video.  (Прочитано 11735 раз)
Ubuntu_linux
Гость
« Ответ #15 : Январь 05, 2011, 23:51 »

Для более детального анализа и для передачи видео в перспективе, реализовал собственный клиент(телефон)-сервер(комп).
И при передачи дискретных сообщений (типа таких: 4,54;9,48;1,32) удалось  уменьшит задержку между сообщениями до 300мс.

Теперь хочу реализовать непрерывающийся поток данных, чтоб  уменьшить  задержку. Идеально если она будет 50-100мс.

В кого какие идеи? Непонимающий
Записан
ufna
Гость
« Ответ #16 : Январь 06, 2011, 00:54 »

Хмм, а как шлешь данные?
Записан
Ubuntu_linux
Гость
« Ответ #17 : Январь 06, 2011, 01:25 »

Хмм, а как шлешь данные?

Записываю данные в сокет (который поворачивает изображения на виджете):

Код
C++ (Qt)
void Dialog::sendAccelerometerMessge(){
/// start get data from QAccelerometer
   QString  str="",strOut="";
   str=str.setNum(reading->x());
   strOut+=str.left(str.indexOf(".")+2)+";";
   str=str.setNum(reading->y());
   strOut+=str.left(str.indexOf(".")+2)+";";
   str=str.setNum(reading->z());
   strOut+=str.left(str.indexOf(".")+2)+";";
/// end get data
 
/// write data to socket
   QByteArray block;
   QDataStream out(&block,QIODevice::WriteOnly);
   out.setVersion(QDataStream::Qt_4_0);
 
   out<<(quint16)0;
   out<<strOut;
   out.device()->seek(0);
   out<<(quint16)(block.size()-(int)sizeof(quint16));
 
   client->write(block);
   client->flush();
 
}//sendAccelerometerMessage
« Последнее редактирование: Январь 06, 2011, 01:59 от Ubuntu_linux » Записан
Ubuntu_linux
Гость
« Ответ #18 : Январь 06, 2011, 15:42 »

Поправил код  Показает язык, теперь клиент  дожидается, перед отправкой сообщения, когда сервер пришлет ему отчет, что он получил предыдущее сообщение. Для определения дискретной скорости передачи сообщений, я каждые 10 сек отправляю на сервер тестовою строку "### 10 sec ###". А потом определяю количество сообщений которые пришли между  тестовыми строками.
В результате я получил, в среднем (+- 5 сообщений) 160 сообщений за 10 сек.  В одну сторону с клиента на сервер! (естественно в обратную сторону столько же )
За 1 сек. количество сообщений =16.
В результате будем иметь задержку между сообщениями в 1/16 =0.0625 сек. , или 63 мили-секунды ,  это  очень хорошо!
Притом это  общая задержка (туда - сюда)!  Смеющийся
« Последнее редактирование: Январь 06, 2011, 15:58 от Ubuntu_linux » Записан
Ubuntu_linux
Гость
« Ответ #19 : Январь 07, 2011, 01:26 »

Зависимость принятых сообщений со временем, всего 10 минут.  Подмигивающий

Записан
ufna
Гость
« Ответ #20 : Февраль 25, 2011, 14:28 »

кстати, задержка тут скорее всего из-за буферизации данных. Точно так же винда делает, примерно в 100-200 мс отправляет данные. Для сокета это надо отрубаить.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.092 секунд. Запросов: 21.