Revision: 91ffff2862e9
Author: ivelin <[email protected]>
Date: Fri Jan 25 22:55:47 2013
Log: - cleaned up merge conflicts from previous commit
http://code.google.com/p/mediaserver/source/detail?r=91ffff2862e9
Modified:
/io/rtp/src/main/java/org/mobicents/media/server/impl/rtp/RTPDataChannel.java
=======================================
---
/io/rtp/src/main/java/org/mobicents/media/server/impl/rtp/RTPDataChannel.java
Fri Jan 25 21:57:10 2013
+++
/io/rtp/src/main/java/org/mobicents/media/server/impl/rtp/RTPDataChannel.java
Fri Jan 25 22:55:47 2013
@@ -22,40 +22,34 @@
package org.mobicents.media.server.impl.rtp;
-import org.mobicents.media.server.impl.rtp.sdp.RTPFormats;
-import org.mobicents.media.server.impl.rtp.sdp.AVProfile;
import java.io.IOException;
-import java.net.SocketAddress;
import java.net.InetSocketAddress;
-import java.net.SocketException;
import java.net.PortUnreachableException;
+import java.net.SocketAddress;
+import java.net.SocketException;
import java.nio.channels.DatagramChannel;
import java.nio.channels.SelectionKey;
-import java.text.Format;
-import org.mobicents.media.MediaSink;
-import org.mobicents.media.MediaSource;
+
+import org.apache.log4j.Logger;
import org.mobicents.media.server.component.audio.AudioComponent;
import org.mobicents.media.server.component.oob.OOBComponent;
import org.mobicents.media.server.impl.rtp.rfc2833.DtmfInput;
import org.mobicents.media.server.impl.rtp.rfc2833.DtmfOutput;
-import org.mobicents.media.server.impl.AbstractSink;
-import org.mobicents.media.server.impl.AbstractSource;
+import org.mobicents.media.server.impl.rtp.sdp.AVProfile;
import org.mobicents.media.server.impl.rtp.sdp.RTPFormat;
+import org.mobicents.media.server.impl.rtp.sdp.RTPFormats;
import org.mobicents.media.server.io.network.ProtocolHandler;
import org.mobicents.media.server.io.network.UdpManager;
import org.mobicents.media.server.scheduler.Scheduler;
import org.mobicents.media.server.scheduler.Task;
-import org.mobicents.media.server.spi.FormatNotSupportedException;
import org.mobicents.media.server.spi.ConnectionMode;
+import org.mobicents.media.server.spi.FormatNotSupportedException;
+import org.mobicents.media.server.spi.dsp.Processor;
import org.mobicents.media.server.spi.format.AudioFormat;
import org.mobicents.media.server.spi.format.FormatFactory;
import org.mobicents.media.server.spi.format.Formats;
import org.mobicents.media.server.spi.memory.Frame;
-import org.mobicents.media.server.spi.dsp.Codec;
-import org.mobicents.media.server.spi.dsp.Processor;
import org.mobicents.media.server.utils.Text;
-
-import org.apache.log4j.Logger;
/**
*
* @author Oifa Yulian
@@ -89,7 +83,7 @@
private TxTask tx = new TxTask();
//RTP clock
- private RtpClock rtpClock;
+ private RtpClock rtpClock, oobClock;
//allowed jitter
private int jitterBufferSize;
@@ -144,6 +138,7 @@
//create clock with RTP units
rtpClock = new RtpClock(channelsManager.getClock());
+ oobClock = new RtpClock(channelsManager.getClock());
rxBuffer = new JitterBuffer(rtpClock, jitterBufferSize);
@@ -156,7 +151,7 @@
//transmittor
output = new RTPOutput(scheduler,this);
- dtmfInput=new DtmfInput(scheduler,rtpClock);
+ dtmfInput=new DtmfInput(scheduler,oobClock);
dtmfOutput=new DtmfOutput(scheduler,this);
heartBeat=new HeartBeat();
@@ -655,7 +650,8 @@
* Writer job.
*/
private class TxTask {
- private RtpPacket rtpPacket = new RtpPacket(8192, true);
+ private RtpPacket rtpPacket = new RtpPacket(8192, true);
+ private RtpPacket oobPacket = new RtpPacket(8192, true);
private RTPFormat fmt;
private long timestamp=-1;
private long dtmfTimestamp=-1;
@@ -680,24 +676,18 @@
return;
}
- //ignore frames with duplicate timestamp
- if (frame.getTimestamp()/1000000L == dtmfTimestamp) {
- frame.recycle();
- return;
- }
-
//convert to milliseconds first
dtmfTimestamp = frame.getTimestamp() / 1000000L;
//convert to rtp time units
dtmfTimestamp = rtpClock.convertToRtpTime(dtmfTimestamp);
- rtpPacket.wrap(false, AVProfile.telephoneEventsID, sn++,
dtmfTimestamp,
+ oobPacket.wrap(false, AVProfile.telephoneEventsID, sn++,
dtmfTimestamp,
ssrc, frame.getData(), frame.getOffset(),
frame.getLength());
frame.recycle();
try {
if (dataChannel.isConnected()) {
-
dataChannel.send(rtpPacket.getBuffer(),dataChannel.socket().getRemoteSocketAddress());
+
dataChannel.send(oobPacket.getBuffer(),dataChannel.socket().getRemoteSocketAddress());
txCount++;
}
}
--