]> rtime.felk.cvut.cz Git - frescor/streamer.git/blobdiff - streamer.c
Change default frame rate to 30 fps
[frescor/streamer.git] / streamer.c
index 06da889112d95a696a3d96253e9069025dcdd1c1..c34f01760bcacd6484ae6b919807b63baa7e21e8 100644 (file)
@@ -38,7 +38,7 @@ static int dport = 20000;
 static int width = 320;
 static int height = 240;
 static int bitrate = 1000000;
-int fps = 15;
+int fps = 30;
 static const char *impform = "video4linux2";
 AVFormatContext *s, *os;
 
@@ -162,10 +162,18 @@ void* streamer_run(void* args)
   static unsigned max_size = 0, min_size = -1;
   static double avg_size = 0;
   clock_gettime(CLOCK_MONOTONIC, &start);
+  start.tv_sec--;              /* Avoid division by zero */
   done = 0;
   while (!(done = streamer_run_done_rq)) {
     AVPacket *pkt;
     pkt = read_input_packet(s);
+
+    clock_gettime(CLOCK_MONOTONIC, &end);
+    timespec_subtract(&d, &end, &start);
+    start = end;
+    int fps_now = (1000<<16)/(d.tv_sec*1000+d.tv_nsec/1000000);
+    fps_avg += (fps_now - fps_avg) >> 4;
+    
     if (pkt == NULL) {
       done = 1;
     } else {
@@ -180,20 +188,14 @@ void* streamer_run(void* args)
         if (opkt) {
           pkt_send(os, opkt);
 
-         clock_gettime(CLOCK_MONOTONIC, &end);
-         timespec_subtract(&d, &end, &start);
-         int fps_now = (1000<<8)/(d.tv_sec*1000+d.tv_nsec/1000000);
-         start = end;
-         fps_avg += (fps_now - fps_avg) >> 3;
-
          if (opkt->size > max_size)
                  max_size = opkt->size;
          if (opkt->size < min_size)
                  min_size = opkt->size;
          avg_size = avg_size*frame/(frame+1) + (double)opkt->size/(frame+1);
-         printf("%5d: %2d fps  opkt size: %5d b  max=%5u b min=%5u b avg=%5.0f\n",
+         printf("%5d: %2d (%4.1f) fps  opkt size: %5d b  max=%5u b min=%5u b avg=%5.0f\n",
                 frame,
-                fps_avg>>8,
+                fps_avg>>16, 1000.0/(d.tv_sec*1000+d.tv_nsec/1000000),
                 opkt->size, max_size, min_size, avg_size);
          if (frame % 100 == 0) max_size=0;
          frame++;// = (frame + 1) % fps;