All pastes #2128005 Raw Edit

Something

public text v1 · immutable
#2128005 ·published 2012-03-14 03:50 UTC
rendered paste body
	public RTPpacket(int PType, int Framenb, int Time, byte[] data,
			int data_length) {
		// fill by default header fields:
		Version = RTP_VERSION;
		Padding = 0;
		Extension = 0;
		CC = 0;
		Marker = 0;
		Ssrc = 0;

		// fill changing header fields:
		SequenceNumber = Framenb;
		TimeStamp = Time;
		PayloadType = PType;

		// build the header bitstream:
		// --------------------------
		header = new byte[HEADER_SIZE];

		// .............
		// TO COMPLETE
		// .............
		// fill the header array of byte with RTP header fields
		// header[0] = ...
		header[0] = (byte) (Version << 6);
		header[0] = (byte) (header[0] | ((Padding & 0x1) << 5));
		header[0] = (byte) (header[0] | ((Extension & 0x1) << 4));
		// 0xF to get lower 4 bits
		header[0] = (byte) (header[0] | (CC & 0xF));
		// .....
		header[1] = (byte) ((Marker & 0x1) << 7);
		// 0x7F to pull lower 7 bytes
		header[1] = (byte) (header[1] | (PayloadType & 0x7F));

		header[2] = (byte) ((SequenceNumber >> 8) & 0xFF);
		header[3] = (byte) (SequenceNumber & 0xFF);

		header[4] = (byte) ((TimeStamp >> 24) & 0xFF);
		header[5] = (byte) ((TimeStamp >> 16) & 0xFF);
		header[6] = (byte) ((TimeStamp >> 8) & 0xFF);
		header[7] = (byte) (TimeStamp & 0xFF);

		Ssrc = 0x1234;
		header[8] = (byte) ((Ssrc >> 24) & 0xFF);
		header[9] = (byte) ((Ssrc >> 16) & 0xFF);
		header[10] = (byte) ((Ssrc >> 8) & 0xFF);
		header[11] = (byte) (Ssrc & 0xFF);
		// fill the payload bitstream:
		// --------------------------
		payload_size = data_length;
		payload = new byte[data_length];

		// fill payload array of byte from data (given in parameter of the
		// constructor)
		// ......
		System.arraycopy(data, 0, payload, 0, data_length);
		// ! Do not forget to uncomment method printheader() below !
	}