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