Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add reason of track being added/removed in onremotetrack in janus.js #3150

Merged
merged 3 commits into from
Feb 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions html/audiobridgetest.js
Original file line number Diff line number Diff line change
Expand Up @@ -298,8 +298,12 @@ $(document).ready(function() {
$('#room').removeClass('hide').show();
$('#participant').removeClass('hide').html(myusername).show();
},
onremotetrack: function(track, mid, on) {
Janus.debug("Remote track (mid=" + mid + ") " + (on ? "added" : "removed") + ":", track);
onremotetrack: function(track, mid, on, metadata) {
Janus.debug(
"Remote track (mid=" + mid + ") " +
(on ? "added" : "removed") +
(metadata ? " (" + metadata.reason + ") " : "") + ":", track
);
if(remoteStream || track.kind !== "audio")
return;
if(!on) {
Expand Down
8 changes: 6 additions & 2 deletions html/canvas.js
Original file line number Diff line number Diff line change
Expand Up @@ -169,8 +169,12 @@ $(document).ready(function() {
});
}
},
onremotetrack: function(track, mid, on) {
Janus.debug("Remote track (mid=" + mid + ") " + (on ? "added" : "removed") + ":", track);
onremotetrack: function(track, mid, on, metadata) {
Janus.debug(
"Remote track (mid=" + mid + ") " +
(on ? "added" : "removed") +
(metadata? " (" + metadata.reason + ") " : "") + ":", track
);
if(!on) {
// Track removed, get rid of the stream and the rendering
$('#peervideo' + mid).remove();
Expand Down
8 changes: 6 additions & 2 deletions html/echotest.js
Original file line number Diff line number Diff line change
Expand Up @@ -281,8 +281,12 @@ $(document).ready(function() {
});
}
},
onremotetrack: function(track, mid, on) {
Janus.debug("Remote track (mid=" + mid + ") " + (on ? "added" : "removed") + ":", track);
onremotetrack: function(track, mid, on, metadata) {
Janus.debug(
"Remote track (mid=" + mid + ") " +
(on ? "added" : "removed") +
(metadata ? " (" + metadata.reason + ") ": "") + ":", track
);
if(!on) {
// Track removed, get rid of the stream and the rendering
$('#peervideo' + mid).remove();
Expand Down
8 changes: 4 additions & 4 deletions html/janus.js
Original file line number Diff line number Diff line change
Expand Up @@ -1913,7 +1913,7 @@ function Janus(gatewayCallbacks) {
// Notify about the new track event
let mid = event.transceiver ? event.transceiver.mid : event.track.id;
try {
pluginHandle.onremotetrack(event.track, mid, true);
pluginHandle.onremotetrack(event.track, mid, true, { reason: 'created' });
} catch(e) {
Janus.error("Error calling onremotetrack", e);
}
Expand All @@ -1930,7 +1930,7 @@ function Janus(gatewayCallbacks) {
t => t.receiver.track === ev.target) : null;
let mid = transceiver ? transceiver.mid : ev.target.id;
try {
pluginHandle.onremotetrack(ev.target, mid, false);
pluginHandle.onremotetrack(ev.target, mid, false, { reason: 'ended' });
} catch(e) {
Janus.error("Error calling onremotetrack on removal", e);
}
Expand All @@ -1946,7 +1946,7 @@ function Janus(gatewayCallbacks) {
t => t.receiver.track === ev.target) : null;
let mid = transceiver ? transceiver.mid : ev.target.id;
try {
pluginHandle.onremotetrack(ev.target, mid, false);
pluginHandle.onremotetrack(ev.target, mid, false, { reason: 'mute' } );
} catch(e) {
Janus.error("Error calling onremotetrack on mute", e);
}
Expand All @@ -1968,7 +1968,7 @@ function Janus(gatewayCallbacks) {
let transceiver = transceivers ? transceivers.find(
t => t.receiver.track === ev.target) : null;
let mid = transceiver ? transceiver.mid : ev.target.id;
pluginHandle.onremotetrack(ev.target, mid, true);
pluginHandle.onremotetrack(ev.target, mid, true, { reason: 'unmute' });
} catch(e) {
Janus.error("Error calling onremotetrack on unmute", e);
}
Expand Down
8 changes: 6 additions & 2 deletions html/multiopus.js
Original file line number Diff line number Diff line change
Expand Up @@ -204,8 +204,12 @@ $(document).ready(function() {
});
}
},
onremotetrack: function(track, mid, on) {
Janus.debug("Remote track (mid=" + mid + ") " + (on ? "added" : "removed") + ":", track);
onremotetrack: function(track, mid, on, metadata) {
Janus.debug(
"Remote track (mid=" + mid + ") " +
(on ? "added" : "removed") +
(metadata? " (" + metadata.reason + ") ": "") + ":", track
);
if(!on) {
// Track removed, get rid of the stream and the rendering
$('#peervideo' + mid).remove();
Expand Down
8 changes: 6 additions & 2 deletions html/mvideoroomtest.js
Original file line number Diff line number Diff line change
Expand Up @@ -744,8 +744,12 @@ function subscribeTo(sources) {
onlocaltrack: function(track, on) {
// The subscriber stream is recvonly, we don't expect anything here
},
onremotetrack: function(track, mid, on) {
Janus.debug("Remote track (mid=" + mid + ") " + (on ? "added" : "removed") + ":", track);
onremotetrack: function(track, mid, on, metadata) {
Janus.debug(
"Remote track (mid=" + mid + ") " +
(on ? "added" : "removed") +
(metadata ? " (" + metadata.reason + ") ": "") + ":", track
);
// Which publisher are we getting on this mid?
let sub = subStreams[mid];
let feed = feedStreams[sub.feed_id];
Expand Down
8 changes: 6 additions & 2 deletions html/recordplaytest.js
Original file line number Diff line number Diff line change
Expand Up @@ -276,10 +276,14 @@ $(document).ready(function() {
});
}
},
onremotetrack: function(track, mid, on) {
onremotetrack: function(track, mid, on, metadata) {
if(playing === false)
return;
Janus.debug("Remote track (mid=" + mid + ") " + (on ? "added" : "removed") + ":", track);
Janus.debug(
"Remote track (mid=" + mid + ") " +
(on ? "added" : "removed") +
(metadata? " (" + metadata.reason + ") ": "") + ":", track
);
if(!on) {
// Track removed, get rid of the stream and the rendering
$('#thevideo' + mid).remove();
Expand Down
15 changes: 13 additions & 2 deletions html/screensharingtest.js
Original file line number Diff line number Diff line change
Expand Up @@ -511,8 +511,19 @@ function newRemoteFeed(id, display) {
onlocaltrack: function(track, on) {
// The subscriber stream is recvonly, we don't expect anything here
},
onremotetrack: function(track, mid, on) {
Janus.debug("Remote track (mid=" + mid + ") " + (on ? "added" : "removed") + ":", track);
onremotetrack: function(track, mid, on, metadata) {
Janus.debug(
"Remote track (mid=" + mid + ") " +
(on ? "added" : "removed") +
(metadata? " (" + metadata.reason + ") " : "") + ":", track
);
// Screen sharing tracks are sometimes muted/unmuted by browser
// when data is not flowing fast enough; this can make streams blink.
// We can ignore these.
if(track.kind === "video" && metadata && (metadata.reason === "mute" || metadata.reason === "unmute")) {
Janus.log("Ignoring mute/unmute on screen-sharing track.")
return
}
if(!on) {
// Track removed, get rid of the stream and the rendering
$('#screenvideo' + mid).remove();
Expand Down
8 changes: 6 additions & 2 deletions html/streamingtest.js
Original file line number Diff line number Diff line change
Expand Up @@ -152,8 +152,12 @@ $(document).ready(function() {
});
}
},
onremotetrack: function(track, mid, on) {
Janus.debug("Remote track (mid=" + mid + ") " + (on ? "added" : "removed") + ":", track);
onremotetrack: function(track, mid, on, metadata) {
Janus.debug(
"Remote track (mid=" + mid + ") " +
(on ? "added" : "removed") +
(metadata ? " (" + metadata.reason + ") ": "") + ":", track
);
var mstreamId = "mstream"+mid;
if(streamsList[selectedStream] && streamsList[selectedStream].legacy)
mstreamId = "mstream0";
Expand Down
8 changes: 6 additions & 2 deletions html/videocalltest.js
Original file line number Diff line number Diff line change
Expand Up @@ -358,8 +358,12 @@ $(document).ready(function() {
});
}
},
onremotetrack: function(track, mid, on) {
Janus.debug("Remote track (mid=" + mid + ") " + (on ? "added" : "removed") + ":", track);
onremotetrack: function(track, mid, on, metadata) {
Janus.debug(
"Remote track (mid=" + mid + ") " +
(on ? "added" : "removed") +
(metadata ? " (" + metadata.reason + ") ": "") + ":", track
);
if(!on) {
// Track removed, get rid of the stream and the rendering
$('#peervideo' + mid).remove();
Expand Down
9 changes: 7 additions & 2 deletions html/videoroomtest.js
Original file line number Diff line number Diff line change
Expand Up @@ -647,8 +647,13 @@ function newRemoteFeed(id, display, streams) {
onlocaltrack: function(track, on) {
// The subscriber stream is recvonly, we don't expect anything here
},
onremotetrack: function(track, mid, on) {
Janus.debug("Remote feed #" + remoteFeed.rfindex + ", remote track (mid=" + mid + ") " + (on ? "added" : "removed") + ":", track);
onremotetrack: function(track, mid, on, metadata) {
Janus.debug(
"Remote feed #" + remoteFeed.rfindex +
", remote track (mid=" + mid + ") " +
(on ? "added" : "removed") +
(metadata? " (" + metadata.reason + ") ": "") + ":", track
);
if(!on) {
// Track removed, get rid of the stream and the rendering
$('#remotevideo'+remoteFeed.rfindex + '-' + mid).remove();
Expand Down
8 changes: 6 additions & 2 deletions html/virtualbg.js
Original file line number Diff line number Diff line change
Expand Up @@ -232,8 +232,12 @@ $(document).ready(function() {
});
}
},
onremotetrack: function(track, mid, on) {
Janus.debug("Remote track (mid=" + mid + ") " + (on ? "added" : "removed") + ":", track);
onremotetrack: function(track, mid, on, metadata) {
Janus.debug(
"Remote track (mid=" + mid + ") " +
(on ? "added" : "removed") +
(metadata? " (" + metadata.reason + ") ": "") + ":", track
);
if(!on) {
// Track removed, get rid of the stream and the rendering
$('#peervideo' + mid).remove();
Expand Down
11 changes: 8 additions & 3 deletions html/vp9svctest.js
Original file line number Diff line number Diff line change
Expand Up @@ -434,7 +434,7 @@ function publishOwnFeed(useAudio) {
let tracks = [];
if(useAudio)
tracks.push({ type: 'audio', capture: true, recv: false });
tracks.push({ type: 'video', capture: true, recv: false, simulcast: doSimulcast });
tracks.push({ type: 'video', capture: true, recv: false, simulcast: false});
//~ tracks.push({ type: 'data' });

sfutest.createOffer(
Expand Down Expand Up @@ -604,8 +604,13 @@ function newRemoteFeed(id, display, streams) {
onlocaltrack: function(track, on) {
// The subscriber stream is recvonly, we don't expect anything here
},
onremotetrack: function(track, mid, on) {
Janus.debug("Remote feed #" + remoteFeed.rfindex + ", remote track (mid=" + mid + ") " + (on ? "added" : "removed") + ":", track);
onremotetrack: function(track, mid, on, metadata) {
Janus.debug(
"Remote feed #" + remoteFeed.rfindex +
", remote track (mid=" + mid + ") " +
(on ? "added" : "removed") +
(metadata? " (" + metadata.reason + ") ": "") + ":", track
);
if(!on) {
// Track removed, get rid of the stream and the rendering
$('#remotevideo'+remoteFeed.rfindex + '-' + mid).remove();
Expand Down
8 changes: 6 additions & 2 deletions html/webaudio.js
Original file line number Diff line number Diff line change
Expand Up @@ -144,8 +144,12 @@ $(document).ready(function() {
Janus.debug("Local track " + (on ? "added" : "removed") + ":", track);
// We don't do anything here, since we captured the stream ourselves
},
onremotetrack: function(track, mid, on) {
Janus.debug("Remote track (mid=" + mid + ") " + (on ? "added" : "removed") + ":", track);
onremotetrack: function(track, mid, on, metadata) {
Janus.debug(
"Remote track (mid=" + mid + ") " +
(on ? "added" : "removed") +
(metadata? " (" + metadata.reason + ") ": "") + ":", track
);
// Now that we're aware of the remote stream, we process it to visualize it
if(!on) {
// Track removed, get rid of the stream and the rendering
Expand Down
16 changes: 13 additions & 3 deletions src/mainpage.dox
Original file line number Diff line number Diff line change
Expand Up @@ -399,8 +399,11 @@ janus.attach(
onlocaltrack: function(track, added) {
// A local track to display has just been added (getUserMedia worked!) or removed
},
onremotetrack: function(track, mid, added) {
onremotetrack: function(track, mid, added, metadata) {
// A remote track (working PeerConnection!) with a specific mid has just been added or removed
// You can query metadata to get some more information on why track was added or removed
// metadata fields:
// - reason: 'created' | 'ended' | 'mute' | 'unmute'
},
oncleanup: function() {
// PeerConnection with the plugin closed, clean the UI
Expand Down Expand Up @@ -589,9 +592,12 @@ janus.attach(
// Invoked after createOffer
// This is info on a local track: when added, we can choose to render
},
onremotetrack: function(track, mid, added) {
onremotetrack: function(track, mid, added, metadata) {
// Invoked after handleRemoteJsep has got us a PeerConnection
// This is info on a remote track: when added, we can choose to render
// You can query metadata to get some more information on why track was added or removed
// metadata fields:
// - reason: 'created' | 'ended' | 'mute' | 'unmute'
},
[..]
\endverbatim
Expand Down Expand Up @@ -639,9 +645,13 @@ janus.attach(
onlocaltrack: function(track, added) {
// This will NOT be invoked, we chose recvonly
},
onremotetrack: function(track, mid, added) {
onremotetrack: function(track, mid, added, metadata) {
// Invoked after send has got us a PeerConnection
// This is info on a remote track: when added, we can choose to render
// This is info on a remote track: when added, we can choose to render
// You can query metadata to get some more information on why track was added or removed
// metadata fields:
// - reason: 'created' | 'ended' | 'mute' | 'unmute'
},
[..]
\endverbatim
Expand Down