src/jlibrtp/ValidatePktBuffer.java
author nikita@nikita-rack
Thu, 09 Apr 2009 20:26:58 +0200
changeset 99 8de21ac527ce
parent 13 e684f11070d5
permissions -rw-r--r--
revert pour refaire un push propre
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
     1
/**
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
     2
 * Java RTP Library (jlibrtp)
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
     3
 * Copyright (C) 2006 Arne Kepp
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
     4
 * 
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
     5
 * This library is free software; you can redistribute it and/or
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
     6
 * modify it under the terms of the GNU Lesser General Public
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
     7
 * License as published by the Free Software Foundation; either
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
     8
 * version 2.1 of the License, or (at your option) any later version.
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
     9
 *
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    10
 * This library is distributed in the hope that it will be useful,
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    13
 * Lesser General Public License for more details.
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    14
 * 
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    15
 * You should have received a copy of the GNU Lesser General Public
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    16
 * License along with this library; if not, write to the Free Software
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    18
 */
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    19
package jlibrtp;
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    20
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    21
import java.net.DatagramSocket;
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    22
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    23
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    24
/**
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    25
 * Validates the PktBuffer and associated classes.
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    26
 * 
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    27
 * @author Arne Kepp
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    28
 *
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    29
 */
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    30
public class ValidatePktBuffer {
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    31
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    32
	/**
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    33
	 * Instantiates a buffer, creates some packets, adds them and sorts them.
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    34
	 * @param args
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    35
	 */
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    36
	public static void main(String[] args) {
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    37
		// TODO Auto-generated method stub
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    38
		DatagramSocket rtpSocket = null;
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    39
		DatagramSocket rtcpSocket = null;
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    40
		try {
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    41
			rtpSocket = new DatagramSocket(6002);
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    42
			rtcpSocket = new DatagramSocket(6003);
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    43
		} catch (Exception e) {
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    44
			System.out.println("RTPSession failed to obtain port");
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    45
		}
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    46
		RTPSession rtpSession = new RTPSession(rtpSocket, rtcpSocket);
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    47
		
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    48
		
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    49
		String str1 = "ab";
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    50
		String str2 = "cd";
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    51
		String str3 = "ef";
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    52
		String str4 = "gh";
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    53
		String str5 = "ij";
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    54
		String str6 = "kl";
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    55
		//String str7 = "mn";
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    56
		
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    57
		long syncSource1 = 1;
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    58
		int seqNumber1 = 1;
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    59
		//int seqNumber2 = 1;
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    60
		RtpPkt pkt1 = new RtpPkt(10, syncSource1, 1, 0, str1.getBytes());
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    61
		RtpPkt pkt2 = new RtpPkt(20, syncSource1, 2, 0, str2.getBytes());
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    62
		RtpPkt pkt3 = new RtpPkt(30, syncSource1, 3, 0, str3.getBytes());
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    63
		RtpPkt pkt4 = new RtpPkt(40, syncSource1, 4, 0, str4.getBytes());
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    64
		RtpPkt pkt6 = new RtpPkt(60, syncSource1, 6, 0, str5.getBytes());
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    65
		RtpPkt pkt7 = new RtpPkt(70, syncSource1, 7, 0, str6.getBytes());
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    66
		
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    67
		Participant p = new Participant();
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    68
		
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    69
		PktBuffer pktBuf = new PktBuffer(rtpSession, p, pkt1);
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    70
		pktBuf.addPkt(pkt3); //2
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    71
		pktBuf.addPkt(pkt2); //3
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    72
		DataFrame aFrame = pktBuf.popOldestFrame();
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    73
		String outStr = new String(aFrame.getConcatenatedData());
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    74
		System.out.println("** 1 Data from first frame: " + outStr + ", should be ab");
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    75
		pktBuf.addPkt(pkt4); //3
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    76
		pktBuf.addPkt(pkt7); //4
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    77
		System.out.println("** 1.5 sixth");		
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    78
		pktBuf.addPkt(pkt6); //5
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    79
		System.out.println("** 2 Duplicate, should be dropped");
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    80
		pktBuf.addPkt(pkt3); //5
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    81
		// Pop second frame
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    82
		aFrame = pktBuf.popOldestFrame(); //4
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    83
		outStr = new String(aFrame.getConcatenatedData());
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    84
		System.out.println("** 3 Data from second frame: " + outStr + ", should be cd");
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    85
		
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    86
		// Pop third frame
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    87
		aFrame = pktBuf.popOldestFrame(); //3
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    88
		outStr = new String(aFrame.getConcatenatedData());
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    89
		System.out.println("** 4 Data from third frame: " + outStr + ", should be ef");
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    90
		System.out.println("** 5 pktBuf.getLength is " + pktBuf.getLength() + ", should be 3");
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    91
		
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    92
		System.out.println("** 6 Late arrival, should be dropped");
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    93
		pktBuf.addPkt(pkt2);
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    94
		
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    95
		aFrame = pktBuf.popOldestFrame();
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    96
		outStr = new String(aFrame.getConcatenatedData());
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    97
		System.out.println("** 7 Data from fourth frame: " + outStr + ", should be gh");
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    98
		
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
    99
		aFrame = pktBuf.popOldestFrame();
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
   100
		outStr = new String(aFrame.getConcatenatedData());
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
   101
		System.out.println("** 8 Data from fifth frame: " + outStr + ", should be ij");
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
   102
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
   103
		aFrame = pktBuf.popOldestFrame();
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
   104
		outStr = new String(aFrame.getConcatenatedData());
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
   105
		System.out.println("** 9 Data from fifth frame: " + outStr + ", should be kl");
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
   106
	}
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
   107
e684f11070d5 ajout de jlibrtp
nikita@nikita-rack
parents:
diff changeset
   108
}