src/jlibrtp/ValidatePktBuffer.java
author Da Risk <darisk972@gmail.com>
Tue, 14 Apr 2009 16:56:20 +0200
changeset 105 c6e4728ac9f7
parent 13 e684f11070d5
permissions -rw-r--r--
Passage sous cupcake :) Peu de modification de code, il faut juste creer des fichier aidl pour les classes parcelables. Sinon les fichier de build.xml ont ete completement modifiés, j'ai remplacé par les nouveaux. (il doit y avoir un manque de precision dans le fichier build.properties)

/**
 * Java RTP Library (jlibrtp)
 * Copyright (C) 2006 Arne Kepp
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */
package jlibrtp;

import java.net.DatagramSocket;


/**
 * Validates the PktBuffer and associated classes.
 * 
 * @author Arne Kepp
 *
 */
public class ValidatePktBuffer {

	/**
	 * Instantiates a buffer, creates some packets, adds them and sorts them.
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		DatagramSocket rtpSocket = null;
		DatagramSocket rtcpSocket = null;
		try {
			rtpSocket = new DatagramSocket(6002);
			rtcpSocket = new DatagramSocket(6003);
		} catch (Exception e) {
			System.out.println("RTPSession failed to obtain port");
		}
		RTPSession rtpSession = new RTPSession(rtpSocket, rtcpSocket);
		
		
		String str1 = "ab";
		String str2 = "cd";
		String str3 = "ef";
		String str4 = "gh";
		String str5 = "ij";
		String str6 = "kl";
		//String str7 = "mn";
		
		long syncSource1 = 1;
		int seqNumber1 = 1;
		//int seqNumber2 = 1;
		RtpPkt pkt1 = new RtpPkt(10, syncSource1, 1, 0, str1.getBytes());
		RtpPkt pkt2 = new RtpPkt(20, syncSource1, 2, 0, str2.getBytes());
		RtpPkt pkt3 = new RtpPkt(30, syncSource1, 3, 0, str3.getBytes());
		RtpPkt pkt4 = new RtpPkt(40, syncSource1, 4, 0, str4.getBytes());
		RtpPkt pkt6 = new RtpPkt(60, syncSource1, 6, 0, str5.getBytes());
		RtpPkt pkt7 = new RtpPkt(70, syncSource1, 7, 0, str6.getBytes());
		
		Participant p = new Participant();
		
		PktBuffer pktBuf = new PktBuffer(rtpSession, p, pkt1);
		pktBuf.addPkt(pkt3); //2
		pktBuf.addPkt(pkt2); //3
		DataFrame aFrame = pktBuf.popOldestFrame();
		String outStr = new String(aFrame.getConcatenatedData());
		System.out.println("** 1 Data from first frame: " + outStr + ", should be ab");
		pktBuf.addPkt(pkt4); //3
		pktBuf.addPkt(pkt7); //4
		System.out.println("** 1.5 sixth");		
		pktBuf.addPkt(pkt6); //5
		System.out.println("** 2 Duplicate, should be dropped");
		pktBuf.addPkt(pkt3); //5
		// Pop second frame
		aFrame = pktBuf.popOldestFrame(); //4
		outStr = new String(aFrame.getConcatenatedData());
		System.out.println("** 3 Data from second frame: " + outStr + ", should be cd");
		
		// Pop third frame
		aFrame = pktBuf.popOldestFrame(); //3
		outStr = new String(aFrame.getConcatenatedData());
		System.out.println("** 4 Data from third frame: " + outStr + ", should be ef");
		System.out.println("** 5 pktBuf.getLength is " + pktBuf.getLength() + ", should be 3");
		
		System.out.println("** 6 Late arrival, should be dropped");
		pktBuf.addPkt(pkt2);
		
		aFrame = pktBuf.popOldestFrame();
		outStr = new String(aFrame.getConcatenatedData());
		System.out.println("** 7 Data from fourth frame: " + outStr + ", should be gh");
		
		aFrame = pktBuf.popOldestFrame();
		outStr = new String(aFrame.getConcatenatedData());
		System.out.println("** 8 Data from fifth frame: " + outStr + ", should be ij");

		aFrame = pktBuf.popOldestFrame();
		outStr = new String(aFrame.getConcatenatedData());
		System.out.println("** 9 Data from fifth frame: " + outStr + ", should be kl");
	}

}