From ea07dba54353cf9c708dbd7f55baf64e875754e8 Mon Sep 17 00:00:00 2001
From: Richard Alam <ritzalam@gmail.com>
Date: Mon, 21 Jun 2010 16:44:38 -0400
Subject: [PATCH]  - putting timestamp into audio...if connection to a client
 is slow...audio packets are dropped.    (Which one do we prefer? Dropped
 audio or lag?)

---
 .../org/bigbluebutton/voiceconf/red5/media/CallStream.java  | 1 -
 .../voiceconf/red5/media/SipToFlashAudioStream.java         | 6 +++++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/bbb-voice/src/main/java/org/bigbluebutton/voiceconf/red5/media/CallStream.java b/bbb-voice/src/main/java/org/bigbluebutton/voiceconf/red5/media/CallStream.java
index 2db9dd1335..0ae575a9a3 100755
--- a/bbb-voice/src/main/java/org/bigbluebutton/voiceconf/red5/media/CallStream.java
+++ b/bbb-voice/src/main/java/org/bigbluebutton/voiceconf/red5/media/CallStream.java
@@ -38,7 +38,6 @@ public class CallStream implements StreamObserver {
 			throw new Exception("Exception while initializing CallStream");
 		}     
 		
-
 		Transcoder rtmpToRtpTranscoder, rtpToRtmpTranscoder;
 		if (sipCodec.getCodecId() == SpeexCodec.codecId) {
 			rtmpToRtpTranscoder = new SpeexToSpeexTranscoder(sipCodec);
diff --git a/bbb-voice/src/main/java/org/bigbluebutton/voiceconf/red5/media/SipToFlashAudioStream.java b/bbb-voice/src/main/java/org/bigbluebutton/voiceconf/red5/media/SipToFlashAudioStream.java
index 637a791a31..fe291aa98c 100755
--- a/bbb-voice/src/main/java/org/bigbluebutton/voiceconf/red5/media/SipToFlashAudioStream.java
+++ b/bbb-voice/src/main/java/org/bigbluebutton/voiceconf/red5/media/SipToFlashAudioStream.java
@@ -20,6 +20,7 @@ public class SipToFlashAudioStream implements TranscodedAudioDataListener, RtpSt
 	private final String listenStreamName;
 	private RtpStreamReceiver rtpStreamReceiver;
 	private StreamObserver observer;
+	private long startTimestamp;
 	
 	public SipToFlashAudioStream(IScope scope, Transcoder transcoder, DatagramSocket socket) {
 		this.scope = scope;
@@ -62,7 +63,7 @@ public class SipToFlashAudioStream implements TranscodedAudioDataListener, RtpSt
 			log.error("could not register broadcast stream");
 			throw new RuntimeException("could not register broadcast stream");
 		}
-	    
+	    startTimestamp = System.currentTimeMillis();
 	    audioBroadcastStream.start();
 	    rtpStreamReceiver.start();
 	}
@@ -71,7 +72,10 @@ public class SipToFlashAudioStream implements TranscodedAudioDataListener, RtpSt
 		/* NOTE:
 		 * Don't set the timestamp as it results in choppy audio. Let the client
 		 * play the audio as soon as they receive the packets. (ralam dec 10, 2009)
+		 * 
+		 * Let's try this out...if connection to client is slow...audio should be dropped.
 		 */
+		audioData.setTimestamp((int)(System.currentTimeMillis() - startTimestamp));
 		audioBroadcastStream.dispatchEvent(audioData);
 		audioData.release();
 	}
-- 
GitLab