summaryrefslogtreecommitdiffstats
path: root/libmpdemux/rtp.h
blob: 120c2053585f6dc9aa22a70a4794a0964bc72bee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef _RTP_H
#define _RTP_H

#include "config.h"
#ifndef HAVE_WINSOCK2
#include <sys/socket.h>
#else
#include <winsock2.h>
#endif

struct rtpbits {
  unsigned int v:2;           /* version: 2 */
  unsigned int p:1;           /* is there padding appended: 0 */
  unsigned int x:1;           /* number of extension headers: 0 */
  unsigned int cc:4;          /* number of CSRC identifiers: 0 */
  unsigned int m:1;           /* marker: 0 */
  unsigned int pt:7;          /* payload type: 33 for MPEG2 TS - RFC 1890 */
  unsigned int sequence:16;   /* sequence number: random */
};

struct rtpheader {	/* in network byte order */
  struct rtpbits b;
  int timestamp;	/* start: random */
  int ssrc;		/* random */
};


void initrtp(struct rtpheader *foo); /* fill in the MPEG-2 TS deefaults */
int sendrtp(int fd, struct sockaddr_in *sSockAddr, struct rtpheader *foo, char *data, int len);
int getrtp2(int fd, struct rtpheader *rh, char** data, int* lengthData);
int sendrtp2(int fd, struct sockaddr_in *sSockAddr, struct rtpheader *foo, char *data, int len);
int getrtp(int fd, struct rtpheader *rh, char** data, int* lengthData);
int makesocket(char *szAddr,unsigned short port,int TTL,struct sockaddr_in *sSockAddr);
int makeclientsocket(char *szAddr,unsigned short port,int TTL,struct sockaddr_in *sSockAddr);

#endif