RTP Header Information for programming.
printf ("Version (V): %d\n", (buf[0] >> 6) & 0x03);
printf ("Padding (P): %d\n", (buf[0] >> 5) & 0x01);
printf ("Extension (X): %d\n", (buf[0] >> 4) & 0x01);
printf ("CSRC count (CC): %d\n", (buf[0] >> 0) & 0x0F);
printf ("Marker bit (M): %d\n", (buf[1] >> 7) & 0x01);
printf ("Payload Type (PT): %d\n", (buf[1] >> 0) & 0x7F);
memcpy (&temp16, &buf[2], 2);
printf ("Sequence Number: %d\n", ntohs(temp16));
memcpy (&temp32, &buf[4], 4);
printf ("Timestamp: %d\n", ntohl(temp32));
memcpy (&temp32, &buf[8], 4);
printf ("SSRC: %d\n", ntohl(temp32));
-----------------------
Version : 2 bits
Padding : 1 bit
Extension : 1 bit
CSRC : 4 bit
Marker : 1 bit
Payload Type : 7 bits
Sequence : 16 bits (2 bytes)
Timestamp : 32 bits (4 bytes)
SSRC : 32 bits (4 bytes)
------------------------
Thus, IP header(20) + UDP header(8) + RTP header(12) = 40 bytes.
printf ("Version (V): %d\n", (buf[0] >> 6) & 0x03);
printf ("Padding (P): %d\n", (buf[0] >> 5) & 0x01);
printf ("Extension (X): %d\n", (buf[0] >> 4) & 0x01);
printf ("CSRC count (CC): %d\n", (buf[0] >> 0) & 0x0F);
printf ("Marker bit (M): %d\n", (buf[1] >> 7) & 0x01);
printf ("Payload Type (PT): %d\n", (buf[1] >> 0) & 0x7F);
memcpy (&temp16, &buf[2], 2);
printf ("Sequence Number: %d\n", ntohs(temp16));
memcpy (&temp32, &buf[4], 4);
printf ("Timestamp: %d\n", ntohl(temp32));
memcpy (&temp32, &buf[8], 4);
printf ("SSRC: %d\n", ntohl(temp32));
-----------------------
Version : 2 bits
Padding : 1 bit
Extension : 1 bit
CSRC : 4 bit
Marker : 1 bit
Payload Type : 7 bits
Sequence : 16 bits (2 bytes)
Timestamp : 32 bits (4 bytes)
SSRC : 32 bits (4 bytes)
------------------------
Thus, IP header(20) + UDP header(8) + RTP header(12) = 40 bytes.

Prev
Rss Feed