[Pkg-voip-commits] [janus] 11/163: Fixed a couple of typos, and improved a couple of methods

Jonas Smedegaard dr at jones.dk
Sat Oct 28 01:22:03 UTC 2017


This is an automated email from the git hooks/post-receive script.

js pushed a commit to annotated tag debian/0.2.5-1
in repository janus.

commit 831bb62b58529642598335b7998f6d5138287465
Author: Lorenzo Miniero <lminiero at gmail.com>
Date:   Wed Jul 5 11:34:04 2017 +0200

    Fixed a couple of typos, and improved a couple of methods
---
 html/devicetest.js       | 13 ++++++++++---
 html/echotest.js         | 14 +++++++++++---
 html/janus.js            |  6 +++---
 ice.c                    |  2 --
 plugins/janus_echotest.c | 21 +++++++++++++++------
 rtcp.c                   |  9 ++-------
 utils.c                  | 19 +++++--------------
 utils.h                  | 13 ++++++++++++-
 8 files changed, 58 insertions(+), 39 deletions(-)

diff --git a/html/devicetest.js b/html/devicetest.js
index 9383910..f781a8b 100644
--- a/html/devicetest.js
+++ b/html/devicetest.js
@@ -263,6 +263,13 @@ $(document).ready(function() {
 											$('#datasend').val('').attr('disabled', true);
 											$('#datarecv').val('');
 											$('#outputdeviceset').html('Output device<span class="caret"></span>');
+											return;
+										}
+										// Any loss?
+										var status = result["status"];
+										if(status === "slow_link") {
+											var bitrate = result["bitrate"];
+											toastr.warning("The bitrate has been cut to " + (bitrate/1000) + "kbps", "Packet loss?", {timeOut: 2000});
 										}
 									}
 									// Is simulcast in place?
@@ -278,7 +285,7 @@ $(document).ready(function() {
 													$('#sl-2').removeClass('btn-primary btn-info btn-success').addClass('btn-primary');
 													$('#sl-1').removeClass('btn-primary btn-info btn-success').addClass('btn-primary');
 													$('#sl-0').removeClass('btn-primary btn-info btn-success').addClass('btn-info');
-													echotest.send({message: { simulcast: 0}});
+													echotest.send({message: { simulcast: 0 }});
 												});
 											$('#sl-1').removeClass('btn-primary btn-success').addClass('btn-success')
 												.unbind('click').click(function() {
@@ -286,7 +293,7 @@ $(document).ready(function() {
 													$('#sl-2').removeClass('btn-primary btn-info btn-success').addClass('btn-primary');
 													$('#sl-1').removeClass('btn-primary btn-info btn-success').addClass('btn-info');
 													$('#sl-0').removeClass('btn-primary btn-info btn-success').addClass('btn-primary');
-													echotest.send({message: { simulcast: 1}});
+													echotest.send({message: { simulcast: 1 }});
 												});
 											$('#sl-2').removeClass('btn-primary btn-success').addClass('btn-success')
 												.unbind('click').click(function() {
@@ -294,7 +301,7 @@ $(document).ready(function() {
 													$('#sl-2').removeClass('btn-primary btn-info btn-success').addClass('btn-info');
 													$('#sl-1').removeClass('btn-primary btn-info btn-success').addClass('btn-primary');
 													$('#sl-0').removeClass('btn-primary btn-info btn-success').addClass('btn-primary');
-													echotest.send({message: { simulcast: 1}});
+													echotest.send({message: { simulcast: 2 }});
 												});
 										}
 										// We just received notice that there's been a switch, update the buttons
diff --git a/html/echotest.js b/html/echotest.js
index 9d53c6d..c6a2bd5 100644
--- a/html/echotest.js
+++ b/html/echotest.js
@@ -187,6 +187,14 @@ $(document).ready(function() {
 											$('#bitrate').attr('disabled', true);
 											$('#curbitrate').hide();
 											$('#curres').hide();
+											return;
+										}
+										// Any loss?
+										var status = result["status"];
+										if(status === "slow_link") {
+											//~ var bitrate = result["bitrate"];
+											//~ toastr.warning("The bitrate has been cut to " + (bitrate/1000) + "kbps", "Packet loss?", {timeOut: 2000});
+											toastr.warning("Janus apparently missed many packets we sent, maybe we should reduce the bitrate", "Packet loss?", {timeOut: 2000});
 										}
 									}
 									// Is simulcast in place?
@@ -202,7 +210,7 @@ $(document).ready(function() {
 													$('#sl-2').removeClass('btn-primary btn-info btn-success').addClass('btn-primary');
 													$('#sl-1').removeClass('btn-primary btn-info btn-success').addClass('btn-primary');
 													$('#sl-0').removeClass('btn-primary btn-info btn-success').addClass('btn-info');
-													echotest.send({message: { simulcast: 0}});
+													echotest.send({message: { simulcast: 0 }});
 												});
 											$('#sl-1').removeClass('btn-primary btn-success').addClass('btn-success')
 												.unbind('click').click(function() {
@@ -210,7 +218,7 @@ $(document).ready(function() {
 													$('#sl-2').removeClass('btn-primary btn-info btn-success').addClass('btn-primary');
 													$('#sl-1').removeClass('btn-primary btn-info btn-success').addClass('btn-info');
 													$('#sl-0').removeClass('btn-primary btn-info btn-success').addClass('btn-primary');
-													echotest.send({message: { simulcast: 1}});
+													echotest.send({message: { simulcast: 1 }});
 												});
 											$('#sl-2').removeClass('btn-primary btn-success').addClass('btn-success')
 												.unbind('click').click(function() {
@@ -218,7 +226,7 @@ $(document).ready(function() {
 													$('#sl-2').removeClass('btn-primary btn-info btn-success').addClass('btn-info');
 													$('#sl-1').removeClass('btn-primary btn-info btn-success').addClass('btn-primary');
 													$('#sl-0').removeClass('btn-primary btn-info btn-success').addClass('btn-primary');
-													echotest.send({message: { simulcast: 2}});
+													echotest.send({message: { simulcast: 2 }});
 												});
 										}
 										// We just received notice that there's been a switch, update the buttons
diff --git a/html/janus.js b/html/janus.js
index 79e512e..7cfd6ba 100644
--- a/html/janus.js
+++ b/html/janus.js
@@ -1766,9 +1766,9 @@ function Janus(gatewayCallbacks) {
 			var parameters = sender.getParameters();
 			Janus.log(parameters);
 			sender.setParameters({encodings: [
-				{ rid: "high", active: true, priority: "high", maxBitrate: 2000000 },
-				{ rid: "medium", active: true, priority: "medium", maxBitrate: 400000 },
-				{ rid: "low", active: true, priority: "medium", maxBitrate: 200000 }
+				{ rid: "high", active: true, priority: "high", maxBitrate: 1000000 },
+				{ rid: "medium", active: true, priority: "medium", maxBitrate: 300000 },
+				{ rid: "low", active: true, priority: "low", maxBitrate: 100000 }
 			]});
 		}
 		config.pc.createOffer(
diff --git a/ice.c b/ice.c
index 141f810..3c4eac5 100644
--- a/ice.c
+++ b/ice.c
@@ -3695,10 +3695,8 @@ void *janus_ice_send_thread(void *data) {
 						rtcp_fb *rtcpfb = (rtcp_fb *)(rtcpbuf+rrlen);
 						rtcp_remb *remb = (rtcp_remb *)rtcpfb->fci;
 						remb->ssrc[1] = htonl(stream->video_ssrc_peer_sim_1);
-						JANUS_LOG(LOG_WARN, "Setting SSRC #2 in REMB: %"SCNu32"\n", stream->video_ssrc_peer_sim_1);
 						if(stream->video_ssrc_peer_sim_2 && pkt->length >= 32) {
 							remb->ssrc[2] = htonl(stream->video_ssrc_peer_sim_2);
-							JANUS_LOG(LOG_WARN, "Setting SSRC #3 in REMB: %"SCNu32"\n", stream->video_ssrc_peer_sim_2);
 						}
 					}
 					/* Free old packet and update */
diff --git a/plugins/janus_echotest.c b/plugins/janus_echotest.c
index dd36c1e..b6042f2 100644
--- a/plugins/janus_echotest.c
+++ b/plugins/janus_echotest.c
@@ -897,12 +897,21 @@ static void *janus_echotest_handler(void *data) {
 			session->simulcast_target = json_integer_value(simulcast);
 			JANUS_LOG(LOG_VERB, "Setting video SSRC to let through (simulcast): %"SCNu32" (index %d, was %d)\n",
 				session->ssrc[session->simulcast], session->simulcast_target, session->simulcast);
-			/* Send a PLI */
-			JANUS_LOG(LOG_VERB, "Simulcasting change, sending a PLI to kickstart it\n");
-			char buf[12];
-			memset(buf, 0, 12);
-			janus_rtcp_pli((char *)&buf, 12);
-			gateway->relay_rtcp(session->handle, 1, buf, 12);
+			if(session->simulcast_target == session->simulcast) {
+				/* No need to do anything, we're already getting the right substream, so notify the user */
+				json_t *event = json_object();
+				json_object_set_new(event, "echotest", json_string("event"));
+				json_object_set_new(event, "simulcast", json_integer(session->simulcast));
+				gateway->push_event(session->handle, &janus_echotest_plugin, NULL, event, NULL);
+				json_decref(event);
+			} else {
+				/* We need to change substream, send a PLI */
+				JANUS_LOG(LOG_VERB, "Simulcasting change, sending a PLI to kickstart it\n");
+				char buf[12];
+				memset(buf, 0, 12);
+				janus_rtcp_pli((char *)&buf, 12);
+				gateway->relay_rtcp(session->handle, 1, buf, 12);
+			}
 		}
 		if(record) {
 			if(msg_sdp) {
diff --git a/rtcp.c b/rtcp.c
index 5236d11..89c8c1a 100644
--- a/rtcp.c
+++ b/rtcp.c
@@ -335,13 +335,8 @@ int janus_rtcp_fix_ssrc(rtcp_context *ctx, char *packet, int len, int fixssrc, u
 						brMantissa += (_ptrRTCPData[2] << 8);
 						brMantissa += (_ptrRTCPData[3]);
 						uint64_t bitRate = brMantissa << brExp;
-						if(numssrc == 1) {
-							JANUS_LOG(LOG_HUGE, "       -- -- -- REMB: %u * 2^%u = %"SCNu64" (%d SSRCs, %u)\n",
-								brMantissa, brExp, bitRate, numssrc, ntohl(remb->ssrc[0]));
-						} else {
-							JANUS_LOG(LOG_WARN, "       -- -- -- REMB: %u * 2^%u = %"SCNu64" (%d SSRCs, %u, %u, %u)\n",
-								brMantissa, brExp, bitRate, numssrc, ntohl(remb->ssrc[0]), ntohl(remb->ssrc[1]), ntohl(remb->ssrc[2]));
-						}
+						JANUS_LOG(LOG_HUGE, "       -- -- -- REMB: %u * 2^%u = %"SCNu64" (%d SSRCs, %u)\n",
+							brMantissa, brExp, bitRate, numssrc, ntohl(remb->ssrc[0]));
 					} else {
 						JANUS_LOG(LOG_HUGE, "     #%d AFB ?? -- PSFB (206)\n", pno);
 					}
diff --git a/utils.c b/utils.c
index 668cec1..f3500c2 100644
--- a/utils.c
+++ b/utils.c
@@ -665,7 +665,7 @@ gboolean janus_h264_is_keyframe(char* buffer, int len) {
 	return FALSE;
 }
 
-static int janus_vp8_parse_descriptor(char *buffer, int len,
+int janus_vp8_parse_descriptor(char *buffer, int len,
 		uint16_t *picid, uint8_t *tl0picidx, uint8_t *tid, uint8_t *y, uint8_t *keyidx) {
 	if(!buffer || len < 0)
 		return -1;
@@ -726,7 +726,7 @@ static int janus_vp8_parse_descriptor(char *buffer, int len,
 	return 0;
 }
 
-static int janus_vp8_replace_descriptor(char *buffer, int len, uint16_t picid, uint8_t tl0picidx) {
+static int janus_vp8_replace_descriptor(char *buffer, int len, uint16_t picid) {
 	if(!buffer || len < 0)
 		return -1;
 	uint8_t vp8pd = *buffer;
@@ -754,12 +754,11 @@ static int janus_vp8_replace_descriptor(char *buffer, int len, uint16_t picid, u
 			}
 		}
 		if(lbit) {
-			/* Overwrite the TL0PICIDX octet */
+			/* FIXME Should we overwrite the TL0PICIDX octet? */
 			buffer++;
-			*buffer = tl0picidx;
 		}
 		if(tbit || kbit) {
-			/* TODO Overwrite the TID/Y/KEYIDX octet */
+			/* Should we overwrite the TID/Y/KEYIDX octet? */
 			buffer++;
 		}
 	}
@@ -773,9 +772,6 @@ void janus_vp8_simulcast_context_reset(janus_vp8_simulcast_context *context) {
 	context->last_picid = 0;
 	context->base_picid = 0;
 	context->base_picid_prev = 0;
-	context->last_tlzi = 0;
-	context->base_tlzi = 0;
-	context->base_tlzi_prev = 0;
 }
 
 void janus_vp8_simulcast_descriptor_update(char *buffer, int len, janus_vp8_simulcast_context *context, gboolean switched) {
@@ -789,16 +785,11 @@ void janus_vp8_simulcast_descriptor_update(char *buffer, int len, janus_vp8_simu
 	/* Parse the identifiers in the VP8 payload descriptor */
 	if(janus_vp8_parse_descriptor(buffer, len, &picid, &tlzi, &tid, &ybit, &keyidx) < 0)
 		return;
-	//~ JANUS_LOG(LOG_WARN, "%"SCNu16", %"SCNu8", %"SCNu8", %"SCNu8", %"SCNu8"\n",
-		//~ picid, tlzi, tid, ybit, keyidx);
 	if(switched) {
 		context->base_picid_prev = context->last_picid;
 		context->base_picid = picid;
-		context->base_tlzi_prev = context->last_tlzi;
-		context->base_tlzi = tlzi;
 	}
 	context->last_picid = (picid-context->base_picid)+context->base_picid_prev+1;
-	context->last_tlzi = (tlzi-context->base_tlzi)+context->base_tlzi_prev+1;
 	/* Overwrite the values in the VP8 payload descriptors with the ones we have */
-	janus_vp8_replace_descriptor(buffer, len, context->last_picid, context->last_tlzi);
+	janus_vp8_replace_descriptor(buffer, len, context->last_picid);
 }
diff --git a/utils.h b/utils.h
index a04170c..388374f 100644
--- a/utils.h
+++ b/utils.h
@@ -241,13 +241,24 @@ gboolean janus_h264_is_keyframe(char* buffer, int len);
 /*! \brief VP8 simulcasting context, in order to make sure SSRC changes result in coherent picid/temporal level increases */
 typedef struct janus_vp8_simulcast_context {
 	uint16_t last_picid, base_picid, base_picid_prev;
-	uint16_t last_tlzi, base_tlzi, base_tlzi_prev;
 } janus_vp8_simulcast_context;
 
 /*! \brief Set (or reset) the context fields to their default values
  * @param[in] context The context to (re)set */
 void janus_vp8_simulcast_context_reset(janus_vp8_simulcast_context *context);
 
+/*! \brief Helper method to parse a VP8 payload descriptor for useful info (e.g., when simulcasting)
+ * @param[in] buffer The RTP payload to process
+ * @param[in] len The length of the RTP payload
+ * @param[out] picid The Picture ID
+ * @param[out] tl0picidx Temporal level zero index
+ * @param[out] tid Temporal-layer index
+ * @param[out] y Layer sync bit
+ * @param[out] keyidx Temporal key frame index
+ * @returns 0 in case of success, a negative integer otherwise */
+int janus_vp8_parse_descriptor(char *buffer, int len,
+		uint16_t *picid, uint8_t *tl0picidx, uint8_t *tid, uint8_t *y, uint8_t *keyidx);
+
 /*! \brief Use the context info to update the RTP header of a packet, if needed
  * @param[in] buffer The RTP payload to process
  * @param[in] len The length of the RTP payload

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-voip/janus.git



More information about the Pkg-voip-commits mailing list