00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _RTP_H_
00019 #define _RTP_H_
00020
00021 #include "nalu.h"
00022
00023 #define MAXRTPPAYLOADLEN (65536 - 40)
00024 #define MAXRTPPACKETSIZE (65536 - 28)
00025 #define H264PAYLOADTYPE 105
00026 #define H264SSRC 0x12345678
00027 #define RTP_TR_TIMESTAMP_MULT 1000
00028
00029 typedef struct
00030 {
00031 unsigned int v;
00032 unsigned int p;
00033 unsigned int x;
00034 unsigned int cc;
00035
00036 unsigned int m;
00037 unsigned int pt;
00038 unsigned int seq;
00039
00040 unsigned int timestamp;
00041 unsigned int ssrc;
00042 byte * payload;
00043 unsigned int paylen;
00044 byte * packet;
00045 unsigned int packlen;
00046 } RTPpacket_t;
00047
00048 #if 0
00049 int ComposeRTPPacket (RTPpacket_t *p);
00050 int DecomposeRTPpacket (RTPpacket_t *p);
00051 int WriteRTPPacket (RTPpacket_t *p, FILE *f);
00052 void DumpRTPHeader (RTPpacket_t *p);
00053 void RTPUpdateTimestamp (int tr);
00054 int RTPWriteBits (int Marker, int PacketType, void * bitstream,
00055 int BitStreamLenInByte, FILE *out);
00056
00057 Boolean isAggregationPacket(void);
00058 int aggregationRTPWriteBits (int Marker, int PacketType, int subPacketType, void * bitstream, int BitStreamLenInByte, FILE *out);
00059
00060 void begin_sub_sequence_rtp(void);
00061 void end_sub_sequence_rtp(void);
00062 #endif
00063
00064 void RTPUpdateTimestamp (int tr);
00065 void OpenRTPFile (char *Filename);
00066 void CloseRTPFile (void);
00067 int WriteRTPNALU (NALU_t *n);
00068
00069
00070
00071 #endif
00072