// Path: src/org/nebula/client/rtp/RTPReceiverConfiguration.java
// public class RTPReceiverConfiguration {
// 	public static final RTPReceiverConfiguration instance = new RTPReceiverConfiguration();
// 	
// 	public int frequency = 8000;
// 	public int channelConfiguration = AudioFormat.CHANNEL_CONFIGURATION_MONO;
// 	public int audioEncoding = AudioFormat.ENCODING_PCM_16BIT;
// 
// 	public int bufferSize = AudioRecord.getMinBufferSize(frequency,
// 			channelConfiguration, audioEncoding);
// 	public int frameSize = 160;
// 
// 	public AudioTrack getNewTrack() {
// 		return new AudioTrack(AudioManager.STREAM_MUSIC, frequency,
// 				channelConfiguration, audioEncoding, bufferSize,
// 				AudioTrack.MODE_STREAM);
// 	}
// }


import java.net.InetSocketAddress;
import org.nebula.client.rtp.RTPReceiverConfiguration;
import android.media.AudioTrack;

			
			this.interArrivalJitter += ((double)D - this.interArrivalJitter) / 16.0;
		}

		lastRtpPkt = curTime;
		lastRtpTimestamp = pkt.getTimeStamp();
	}
	
	/**
	 * Calculates the extended highest sequence received by adding 
	 * the last sequence number to 65536 times the number of times 
	 * the sequence counter has rolled over.
	 * 
	 * @return extended highest sequence
	 */
	protected long getExtHighSeqRecv() {
		return (65536*seqRollOverCount + lastSeqNumber);
	}
	
	/**
	 * Get the fraction of lost packets, calculated as described
	 * in RFC 3550 as a fraction of 256.
	 * 
	 * @return the fraction of lost packets since last SR received
	 */
	protected int getFractionLost() {
		int expected = (lastSeqNumber - lastSRRseqNumber);
		if(expected < 0)
			expected = 65536 + expected;
                

// Path: src/org/nebula/client/rtp/RTPReceiverConfiguration.java
// public class RTPReceiverConfiguration {
// 	public static final RTPReceiverConfiguration instance = new RTPReceiverConfiguration();
// 	
// 	public int frequency = 8000;
// 	public int channelConfiguration = AudioFormat.CHANNEL_CONFIGURATION_MONO;
// 	public int audioEncoding = AudioFormat.ENCODING_PCM_16BIT;
// 
// 	public int bufferSize = AudioRecord.getMinBufferSize(frequency,
// 			channelConfiguration, audioEncoding);
// 	public int frameSize = 160;
// 
// 	public AudioTrack getNewTrack() {
// 		return new AudioTrack(AudioManager.STREAM_MUSIC, frequency,
// 				channelConfiguration, audioEncoding, bufferSize,
// 				AudioTrack.MODE_STREAM);
// 	}
// }


// Path: src_others/jlibrtp/Participant.java
import java.net.InetSocketAddress;
import org.nebula.client.rtp.RTPReceiverConfiguration;
import android.media.AudioTrack;

			
			this.interArrivalJitter += ((double)D - this.interArrivalJitter) / 16.0;
		}

		lastRtpPkt = curTime;
		lastRtpTimestamp = pkt.getTimeStamp();
	}
	
	/**
	 * Calculates the extended highest sequence received by adding 
	 * the last sequence number to 65536 times the number of times 
	 * the sequence counter has rolled over.
	 * 
	 * @return extended highest sequence
	 */
	protected long getExtHighSeqRecv() {
		return (65536*seqRollOverCount + lastSeqNumber);
	}
	
	/**
	 * Get the fraction of lost packets, calculated as described
	 * in RFC 3550 as a fraction of 256.
	 * 
	 * @return the fraction of lost packets since last SR received
	 */
	protected int getFractionLost() {
		int expected = (lastSeqNumber - lastSRRseqNumber);
		if(expected < 0)
			expected = 65536 + expected;
                

		int fraction = 256 * (expected - receivedSinceLastSR);
