[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