]> code.delx.au - pulseaudio/commitdiff
* change default multicast address
authorLennart Poettering <lennart@poettering.net>
Sat, 15 Apr 2006 15:26:42 +0000 (15:26 +0000)
committerLennart Poettering <lennart@poettering.net>
Sat, 15 Apr 2006 15:26:42 +0000 (15:26 +0000)
* fix timestamp calculation

git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@715 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/modules/rtp/module-rtp-monitor.c
src/modules/rtp/rtp.c
src/modules/rtp/rtp.h

index 663320937de6dfac71981efe5335ad8862e051d9..c153a9d585282acafdf9f0541c7ffdd859395f67 100644 (file)
@@ -61,9 +61,9 @@ PA_MODULE_USAGE(
         "mtu=<maximum transfer unit> "
 )
 
-#define DEFAULT_PORT 5666
+#define DEFAULT_PORT 5004
 #define SAP_PORT 9875
-#define DEFAULT_DESTINATION "224.0.0.252"
+#define DEFAULT_DESTINATION "224.0.1.2"
 #define MEMBLOCKQ_MAXLENGTH (1024*170)
 #define DEFAULT_MTU 1024
 #define SAP_INTERVAL 5000000
@@ -136,7 +136,6 @@ static void sap_event(pa_mainloop_api *m, pa_time_event *t, const struct timeval
 
     pa_sap_send(&u->sap_context, 0);
 
-    pa_log("SAP update");
     pa_gettimeofday(&next);
     pa_timeval_add(&next, SAP_INTERVAL);
     m->time_restart(t, &next);
@@ -280,7 +279,7 @@ int pa__init(pa_core *c, pa_module*m) {
                      af == AF_INET ? (void*) &sa4.sin_addr : (void*) &sa6.sin6_addr,
                      "Polypaudio RTP Stream", port, payload, &ss);
     
-    pa_rtp_context_init_send(&u->rtp_context, fd, 0, payload);
+    pa_rtp_context_init_send(&u->rtp_context, fd, 0, payload, pa_frame_size(&ss));
     pa_sap_context_init_send(&u->sap_context, sap_fd, p);
 
     pa_log_info("RTP stream initialized with mtu %u on %s:%u, SSRC=0x%08x, payload=%u, initial sequence #%u", mtu, dest, port, u->rtp_context.ssrc, payload, u->rtp_context.sequence);
index a3e78d849dc5561efaae25fd700255ee32e76aef..a3bce38bdc7537fc2245dc0273e98dc35695b3e7 100644 (file)
@@ -35,7 +35,7 @@
 
 #include "rtp.h"
 
-pa_rtp_context* pa_rtp_context_init_send(pa_rtp_context *c, int fd, uint32_t ssrc, uint8_t payload) {
+pa_rtp_context* pa_rtp_context_init_send(pa_rtp_context *c, int fd, uint32_t ssrc, uint8_t payload, size_t frame_size) {
     assert(c);
     assert(fd >= 0);
 
@@ -44,7 +44,8 @@ pa_rtp_context* pa_rtp_context_init_send(pa_rtp_context *c, int fd, uint32_t ssr
     c->timestamp = 0;
     c->ssrc = ssrc ? ssrc : (uint32_t) (rand()*rand());
     c->payload = payload & 127;
-
+    c->frame_size = frame_size;
+    
     return c;
 }
 
@@ -114,7 +115,7 @@ int pa_rtp_send(pa_rtp_context *c, size_t size, pa_memblockq *q) {
             } else
                 k = 0;
 
-            c->timestamp += skip;
+            c->timestamp += skip/c->frame_size;
             
             if (k < 0) {
                 if (errno != EAGAIN) /* If the queue is full, just ignore it */
index e925cc0eb18bc61d4690f286395d8ab87553fe54..3928815842a9f929c4e148e3ba554fe9145a3f12 100644 (file)
@@ -34,9 +34,10 @@ typedef struct pa_rtp_context {
     uint32_t timestamp;
     uint32_t ssrc;
     uint8_t payload;
+    size_t frame_size;
 } pa_rtp_context;
 
-pa_rtp_context* pa_rtp_context_init_send(pa_rtp_context *c, int fd, uint32_t ssrc, uint8_t payload);
+pa_rtp_context* pa_rtp_context_init_send(pa_rtp_context *c, int fd, uint32_t ssrc, uint8_t payload, size_t frame_size);
 int pa_rtp_send(pa_rtp_context *c, size_t size, pa_memblockq *q);
 
 pa_rtp_context* pa_rtp_context_init_recv(pa_rtp_context *c, int fd);