You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openmeetings.apache.org by co...@google.com on 2013/03/06 11:29:18 UTC

[red5phone] r103 committed - setUserAVSettings is fixed: customizable mode+valid set of parameters;...

Revision: 103
Author:   solomax666@gmail.com
Date:     Wed Mar  6 02:28:58 2013
Log:      setUserAVSettings is fixed: customizable mode+valid set of  
parameters;
AV settings are set to "av" on video stream start;
http://code.google.com/p/red5phone/source/detail?r=103

Modified:
  /branches/red5sip/src/java/org/red5/sip/app/RTMPRoomClient.java

=======================================
--- /branches/red5sip/src/java/org/red5/sip/app/RTMPRoomClient.java	Tue  
Mar  5 21:44:18 2013
+++ /branches/red5sip/src/java/org/red5/sip/app/RTMPRoomClient.java	Wed  
Mar  6 02:28:58 2013
@@ -59,6 +59,7 @@
  	private String sipNumber = null;
  	private ISipNumberListener sipNumberListener = null;
  	private long lastSendActivityMS = 0L;
+	private boolean videoStarted = false;
  	private final Runnable updateTask = new Runnable() {
  		public void run() {
  			while (true) {
@@ -199,12 +200,12 @@
  		conn.invoke("setSipTransport", new Object[] { Long.valueOf(roomId),  
publicSID, "" + broadCastId }, this);
  	}

-	protected void setUserAVSettings() {
+	protected void setUserAVSettings(String mode) {
  		String[] remoteMessage = new String[3];
  		remoteMessage[0] = "avsettings";
  		remoteMessage[1] = "0";
-		remoteMessage[2] = "av";
-		conn.invoke("setUserAVSettings", new Object[] { "av", remoteMessage,  
120, 90 }, this);
+		remoteMessage[2] = mode;
+		conn.invoke("setUserAVSettings", new Object[] { mode, remoteMessage,  
120, 90, Long.valueOf(roomId), publicSID, -1 }, this);
  	}

  	protected void getSipNumber() {
@@ -396,7 +397,7 @@
  		case getBroadCastId:
  			log.info("getBroadCastId");
  			this.broadCastId = ((Number) call.getResult()).intValue();
-			this.setUserAVSettings();
+			this.setUserAVSettings("a");
  			break;
  		case getPublicSID:
  			log.info("getPublicSID");
@@ -516,8 +517,12 @@
  	public void pushVideo(byte[] video, long ts) throws IOException {
  		if(publishStreamId == null) {
  			log.debug("publishStreamId == null !!!");
-            return;
-        }
+			return;
+		}
+		if (!videoStarted) {
+			setUserAVSettings("av");
+			videoStarted = true;
+		}
  		if (videoBuffer == null || (videoBuffer.capacity() < video.length  
&& !videoBuffer.isAutoExpand())) {
  			videoBuffer = IoBuffer.allocate(video.length);
  			videoBuffer.setAutoExpand(true);