This commit is contained in:
steveseguin 2022-11-17 15:23:11 -05:00
parent c2556bbc0b
commit 2bf7451fbe
3 changed files with 32 additions and 18 deletions

View File

@ -2295,11 +2295,11 @@
// session.defaultBackgroundImages = ["./media/bg_sample1.webp", "./media/bg_sample2.webp"]; // for &effects=5 (virtual backgrounds) // session.defaultBackgroundImages = ["./media/bg_sample1.webp", "./media/bg_sample2.webp"]; // for &effects=5 (virtual backgrounds)
// session.hidehome = true; // If used, 'hide home' will make the landing page inaccessible, along with hiding a few go-home elements. // session.hidehome = true; // If used, 'hide home' will make the landing page inaccessible, along with hiding a few go-home elements.
</script> </script>
<script type="text/javascript" crossorigin="anonymous" id="lib-js" src="./lib.js?ver=545"></script> <script type="text/javascript" crossorigin="anonymous" id="lib-js" src="./lib.js?ver=552"></script>
<!-- <!--
// If you wish to change branding, blank offers a good clean start. // If you wish to change branding, blank offers a good clean start.
<script type="text/javascript" id="main-js" src="./main.js" data-translation="blank"></script> <script type="text/javascript" id="main-js" src="./main.js" data-translation="blank"></script>
--> -->
<script type="text/javascript" crossorigin="anonymous" id="main-js" src="./main.js?ver=483"></script> <script type="text/javascript" crossorigin="anonymous" id="main-js" src="./main.js?ver=484"></script>
</body> </body>
</html> </html>

42
lib.js
View File

@ -4579,8 +4579,10 @@ function updateMixerRun(e=false){ // this is the main auto-mixing code. It's a
holder.paused.className = "hidden"; holder.paused.className = "hidden";
} }
var vw = vid.videoWidth || vid.naturalWidth; var vw = vid.naturalWidth || vid.videoWidth;
var vh = vid.videoHeight || vid.naturalHeight; var vh = vid.naturalHeight || vid.videoHeight;
// log(vw + " : "+vh);
if ((vw && vh) || (vid.width && vid.height)){ if ((vw && vh) || (vid.width && vid.height)){
if (("rotated" in vid) && ((vid.rotated==90) || (vid.rotated==270))){ if (("rotated" in vid) && ((vid.rotated==90) || (vid.rotated==270))){
@ -8095,13 +8097,20 @@ function playoutdelay(UUID){ // applies a delay to all videos
if (sync_offset<0){sync_offset=0;} if (sync_offset<0){sync_offset=0;}
session.rpcs[UUID].stats[tid]._sync_offset = sync_offset; session.rpcs[UUID].stats[tid]._sync_offset = sync_offset;
receiver.playoutDelayHint = parseFloat(sync_offset/1000); receiver.playoutDelayHint = parseFloat(sync_offset/1000);
var audio_delay = session.sync || 0; // video is typically showing greater delay than video
audio_delay += target_buffer - session.rpcs[UUID].stats[tid].Buffer_Delay_in_ms if (session.sync!==false){
if (receiver.track.id in session.rpcs[UUID].inboundAudioPipeline){ var audio_delay = session.sync || 0; // video is typically showing greater delay than video
if (session.rpcs[UUID].inboundAudioPipeline[receiver.track.id] && session.rpcs[UUID].inboundAudioPipeline[receiver.track.id].delayNode){ audio_delay += target_buffer - session.rpcs[UUID].stats[tid].Buffer_Delay_in_ms
if (audio_delay<0){audio_delay=0;} if (receiver.track.id in session.rpcs[UUID].inboundAudioPipeline){
session.rpcs[UUID].inboundAudioPipeline[receiver.track.id].delayNode.delayTime.setValueAtTime(parseFloat(audio_delay/1000.0), session.audioCtx.currentTime+1); if (session.rpcs[UUID].inboundAudioPipeline[receiver.track.id] && session.rpcs[UUID].inboundAudioPipeline[receiver.track.id].delayNode){
session.rpcs[UUID].stats[tid].Audio_Sync_Delay_ms = audio_delay; if (audio_delay<0){audio_delay=0;}
try {
session.rpcs[UUID].inboundAudioPipeline[receiver.track.id].delayNode.delayTime.linearRampToValueAtTime(parseFloat(audio_delay/1000.0), session.audioCtx.currentTime + parseFloat(session.statsInterval/3000));
} catch(e){
session.rpcs[UUID].inboundAudioPipeline[receiver.track.id].delayNode.delayTime.setValueAtTime(parseFloat(audio_delay/1000.0), session.audioCtx.currentTime+1);
}
session.rpcs[UUID].stats[tid].Audio_Sync_Delay_ms = audio_delay;
}
} }
} }
} else if (session.rpcs[UUID].stats[tid]._type=="video"){ } else if (session.rpcs[UUID].stats[tid]._type=="video"){
@ -18619,6 +18628,7 @@ async function grabVideo(quality = 0, eleName = 'previewWebcam', selector = "sel
} }
}); });
updateRenderOutpipe(); updateRenderOutpipe();
// senderAudioUpdate // senderAudioUpdate
@ -18651,7 +18661,7 @@ async function grabVideo(quality = 0, eleName = 'previewWebcam', selector = "sel
} }
} }
} else if (getById("gear_webcam3").style.display === "inline-block") { } else if (getById("gear_webcam3").style.display === "inline-block") {
updateStats(obscam); updateStats(obscam);
} }
// Once crbug.com/711524 is fixed, we won't need to wait anymore. This is // Once crbug.com/711524 is fixed, we won't need to wait anymore. This is
@ -18715,9 +18725,9 @@ async function grabVideo(quality = 0, eleName = 'previewWebcam', selector = "sel
} catch (e) { } catch (e) {
errorlog(e); errorlog(e);
} }
} else { } else if (toggleSettingsState) {
log("16047"); log("16047");
updateConstraintSliders(); updateConstraintSliders();//listCameraSettings();
} }
if (callback3){ if (callback3){
try { try {
@ -18746,9 +18756,13 @@ async function grabVideo(quality = 0, eleName = 'previewWebcam', selector = "sel
session.setResolution(); // this runs already when updateCameraConstraints succeeds session.setResolution(); // this runs already when updateCameraConstraints succeeds
} }
//log("16075"); //log("16075");
updateForceRotate(); updateForceRotate();
if (iOS || iPad){
updateMixer(); // if we don't do this, portrait videos may be detected as horizontal
}
// this will reset scaling for all viewers of this stream. I also call it when aspect ratio, width, or height is changed via applyConstraints // this will reset scaling for all viewers of this stream. I also call it when aspect ratio, width, or height is changed via applyConstraints
dragElement(session.videoElement); dragElement(session.videoElement);
@ -18897,7 +18911,7 @@ function updateRenderOutpipe(){ // video only.
} }
function pushOutVideoTrack(track){ function pushOutVideoTrack(track){
log("pushOutVideoTrack");
if (session.chunked){ if (session.chunked){
for (UUID in session.pcs) { for (UUID in session.pcs) {
session.chunkedStream(UUID); // make sure we check that this connection allows video / audio session.chunkedStream(UUID); // make sure we check that this connection allows video / audio

View File

@ -2855,8 +2855,8 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
} else { } else {
session.buffer = parseFloat(urlParams.get('buffer')) || 0; session.buffer = parseFloat(urlParams.get('buffer')) || 0;
log("buffer Changed: " + session.buffer); log("buffer Changed: " + session.buffer);
session.sync = 0; //session.sync = 0;
session.audioEffects = true; //session.audioEffects = true;
} }
} }