├── src ├── site │ ├── img │ │ ├── dots.png │ │ ├── dots.xcf │ │ ├── icon.png │ │ ├── icon.xcf │ │ ├── gradient.png │ │ ├── h1_header.png │ │ ├── squarelogo.png │ │ ├── squarelogo.xcf │ │ └── squarelogo_alt.png │ ├── css │ │ └── stylesheet.css │ └── index.html ├── javadoc │ ├── resources │ │ ├── gradient.png │ │ ├── h1_header.png │ │ ├── nav_header.png │ │ ├── warning_24.png │ │ └── table_header.png │ ├── overview.html │ └── stylesheet.css ├── main │ ├── resources │ │ └── log4j.properties │ └── java │ │ └── com │ │ └── biasedbit │ │ └── efflux │ │ ├── participant │ │ ├── ParticipantOperation.java │ │ ├── ParticipantEventListener.java │ │ ├── ParticipantDatabase.java │ │ ├── SingleParticipantDatabase.java │ │ ├── RtpParticipant.java │ │ └── RtpParticipantInfo.java │ │ ├── network │ │ ├── DataPacketReceiver.java │ │ ├── ControlPacketReceiver.java │ │ ├── DataPacketDecoder.java │ │ ├── DataPacketEncoder.java │ │ ├── DataHandler.java │ │ ├── ControlHandler.java │ │ ├── ControlPacketDecoder.java │ │ └── ControlPacketEncoder.java │ │ ├── session │ │ ├── RtpSessionDataListener.java │ │ ├── RtpSessionControlListener.java │ │ ├── RtpSessionEventListener.java │ │ ├── RtpSession.java │ │ └── MultiParticipantSession.java │ │ ├── packet │ │ ├── AppDataPacket.java │ │ ├── RtpVersion.java │ │ ├── CompoundControlPacket.java │ │ ├── AbstractReportPacket.java │ │ ├── SdesChunkPrivItem.java │ │ ├── SdesChunkItems.java │ │ ├── SdesChunkItem.java │ │ ├── ControlPacket.java │ │ ├── ReceiverReportPacket.java │ │ ├── SdesChunk.java │ │ ├── SourceDescriptionPacket.java │ │ ├── ReceptionReport.java │ │ ├── ByePacket.java │ │ └── SenderReportPacket.java │ │ └── util │ │ ├── TimeUtils.java │ │ └── ByteUtils.java ├── test │ └── java │ │ └── com │ │ └── biasedbit │ │ └── efflux │ │ ├── packet │ │ ├── ReceiverReportPacketTest.java │ │ ├── SourceChunkTest.java │ │ ├── ControlPacketTest.java │ │ ├── SourceChunkItemsTest.java │ │ ├── SenderReportPacketTest.java │ │ ├── ByePacketTest.java │ │ └── SourceDescriptionPacketTest.java │ │ └── session │ │ └── MultiParticipantSessionTest.java ├── assembly │ └── default.xml ├── xref │ └── stylesheet.css └── functionaltest │ └── java │ └── com │ └── biasedbit │ └── efflux │ └── session │ └── MultiParticipantSessionFunctionalTest.java ├── .gitignore ├── COPYRIGHT.txt ├── TODO.txt ├── HISTORY.md ├── README.md ├── license └── LICENSE.slf4j.txt ├── NOTICE.txt └── pom.xml /src/site/img/dots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonbo372/efflux/HEAD/src/site/img/dots.png -------------------------------------------------------------------------------- /src/site/img/dots.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonbo372/efflux/HEAD/src/site/img/dots.xcf -------------------------------------------------------------------------------- /src/site/img/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonbo372/efflux/HEAD/src/site/img/icon.png -------------------------------------------------------------------------------- /src/site/img/icon.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonbo372/efflux/HEAD/src/site/img/icon.xcf -------------------------------------------------------------------------------- /src/site/img/gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonbo372/efflux/HEAD/src/site/img/gradient.png -------------------------------------------------------------------------------- /src/site/img/h1_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonbo372/efflux/HEAD/src/site/img/h1_header.png -------------------------------------------------------------------------------- /src/site/img/squarelogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonbo372/efflux/HEAD/src/site/img/squarelogo.png -------------------------------------------------------------------------------- /src/site/img/squarelogo.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonbo372/efflux/HEAD/src/site/img/squarelogo.xcf -------------------------------------------------------------------------------- /src/site/img/squarelogo_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonbo372/efflux/HEAD/src/site/img/squarelogo_alt.png -------------------------------------------------------------------------------- /src/javadoc/resources/gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonbo372/efflux/HEAD/src/javadoc/resources/gradient.png -------------------------------------------------------------------------------- /src/javadoc/resources/h1_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonbo372/efflux/HEAD/src/javadoc/resources/h1_header.png -------------------------------------------------------------------------------- /src/javadoc/resources/nav_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonbo372/efflux/HEAD/src/javadoc/resources/nav_header.png -------------------------------------------------------------------------------- /src/javadoc/resources/warning_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonbo372/efflux/HEAD/src/javadoc/resources/warning_24.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.project 2 | /.classpath 3 | /.settings 4 | /target 5 | /reports 6 | *.ipr 7 | *.iws 8 | *.iml 9 | 10 | -------------------------------------------------------------------------------- /src/javadoc/resources/table_header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jonbo372/efflux/HEAD/src/javadoc/resources/table_header.png -------------------------------------------------------------------------------- /COPYRIGHT.txt: -------------------------------------------------------------------------------- 1 | efflux is licensed under the Apache License version 2.0 as published by the 2 | Apache Software Foundation. 3 | 4 | Copyright 2010 Bruno de Carvalho 5 | -------------------------------------------------------------------------------- /TODO.txt: -------------------------------------------------------------------------------- 1 | * Finish off automated RTCP handling 2 | * Update local sender statistics 3 | * Process receiver reports and fire events related to traffic conditions changing 4 | * RTCP bandwidth adjustment 5 | * Automated sending of SR/RR packets -------------------------------------------------------------------------------- /src/javadoc/overview.html: -------------------------------------------------------------------------------- 1 | 3 | 4 |
5 |true if the event has expired, false otherwise
57 | */
58 | public static boolean hasExpired(long now, long eventTime, long timeBuffer) {
59 | return hasExpiredMillis(now, eventTime, timeBuffer * 1000);
60 | }
61 |
62 | /**
63 | * Test whether a given event has timed out (in milliseconds).
64 | *
65 | * @param now Current instant.
66 | * @param eventTime Instant at which the event took place.
67 | * @param timeBuffer The amount of time for which the event is valid (in milliseconds).
68 | *
69 | * @return true if the event has expired, false otherwise
70 | */
71 | public static boolean hasExpiredMillis(long now, long eventTime, long timeBuffer) {
72 | return (eventTime + timeBuffer) < now;
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/src/main/java/com/biasedbit/efflux/packet/CompoundControlPacket.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2010 Bruno de Carvalho
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.biasedbit.efflux.packet;
18 |
19 | import java.util.Arrays;
20 | import java.util.List;
21 |
22 | /**
23 | * @author 35 | efflux is an effort to provide a Java implementation of RFC 3550. 36 |
37 | 38 |
40 | Until this software hits version 1.0, it's considered to be in BETA stage.
41 | I encourage you to look & hack the code to your needs. Comments, improvements, patches, rants and praises are all
42 | welcome at the mailing list.
43 |
49 | The project is currently hosted at GitHub. 50 |
51 | 52 |Nothing yet.
55 | 56 |70 | efflux is distributed under Apache License, Version 2.0. 71 | Please see the enclosed NOTICE.txt, COPYRIGHT.txt, and LICENSE.txt for more information. 72 |
73 | 74 |78 | None yet... 79 |
80 | 81 |83 | efflux needs Netty 3.2, 84 | SLF4J 1.6 and JDK 1.6. 85 |
86 | 87 |Coming up soon...
96 | 97 |