Merge pull request #19102 from Scroody/27-to-30-part-2
v27 changes ported to v30 part 2.
This commit is contained in:
commit
8f7b20722f
@ -872,6 +872,7 @@ class MeetingActor(
|
||||
val hasModeratorLeftRecently = (TimeUtil.timeNowInMs() - state.expiryTracker.endWhenNoModeratorDelayInMs) < state.expiryTracker.lastModeratorLeftOnInMs
|
||||
if (!hasModeratorLeftRecently) {
|
||||
log.info("Meeting will end due option endWhenNoModerator is enabled and all moderators have left the meeting. meetingId=" + props.meetingProp.intId)
|
||||
endAllBreakoutRooms(eventBus, liveMeeting, state, MeetingEndReason.ENDED_DUE_TO_NO_MODERATOR)
|
||||
sendEndMeetingDueToExpiry(
|
||||
MeetingEndReason.ENDED_DUE_TO_NO_MODERATOR,
|
||||
eventBus, outGW, liveMeeting,
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
set -ex
|
||||
RELEASE=4.0.3
|
||||
RELEASE=4.0.4
|
||||
cat <<MSG
|
||||
This tool downloads prebuilt packages built on Github Actions
|
||||
The corresponding source can be browsed at https://github.com/bigbluebutton/bbb-presentation-video/tree/${RELEASE}
|
||||
|
@ -1,4 +1,3 @@
|
||||
import { throttle } from '/imports/utils/throttle';
|
||||
import { diff } from '@mconf/bbb-diff';
|
||||
import { Session } from 'meteor/session';
|
||||
import Auth from '/imports/ui/services/auth';
|
||||
@ -8,9 +7,9 @@ import Users from '/imports/api/users';
|
||||
import AudioService from '/imports/ui/components/audio/service';
|
||||
import deviceInfo from '/imports/utils/deviceInfo';
|
||||
import { isLiveTranscriptionEnabled } from '/imports/ui/services/features';
|
||||
import { unique } from 'radash';
|
||||
import { unique, throttle } from 'radash';
|
||||
|
||||
const THROTTLE_TIMEOUT = 1000;
|
||||
const THROTTLE_TIMEOUT = 200;
|
||||
|
||||
const CONFIG = Meteor.settings.public.app.audioCaptions;
|
||||
const ENABLED = CONFIG.enabled;
|
||||
@ -105,17 +104,13 @@ const updateTranscript = (id, transcript, locale, isFinal) => {
|
||||
makeCall('updateTranscript', id, start, end, text, transcript, locale, isFinal);
|
||||
};
|
||||
|
||||
const throttledTranscriptUpdate = throttle(updateTranscript, THROTTLE_TIMEOUT, {
|
||||
leading: false,
|
||||
trailing: true,
|
||||
});
|
||||
const throttledTranscriptUpdate = throttle({ interval: THROTTLE_TIMEOUT }, updateTranscript);
|
||||
|
||||
const updateInterimTranscript = (id, transcript, locale) => {
|
||||
throttledTranscriptUpdate(id, transcript, locale, false);
|
||||
};
|
||||
|
||||
const updateFinalTranscript = (id, transcript, locale) => {
|
||||
throttledTranscriptUpdate.cancel();
|
||||
updateTranscript(id, transcript, locale, true);
|
||||
};
|
||||
|
||||
|
@ -120,13 +120,20 @@ module BigBlueButton
|
||||
|
||||
# Check for and handle audio files with mismatched lengths (generated
|
||||
# by buggy versions of freeswitch in old BigBlueButton
|
||||
if entry[:original_duration] && (audioinfo[audio[:filename]][:duration].to_f / entry[:original_duration]) < 0.997 &&
|
||||
((entry[:original_duration] - audioinfo[audio[:filename]][:duration]).to_f /
|
||||
entry[:original_duration]).abs < 0.05
|
||||
BigBlueButton.logger.warn " Audio file length mismatch, adjusting speed to #{speed}"
|
||||
speed = audioinfo[audio[:filename]][:duration].to_f / entry[:original_duration]
|
||||
seek = 0
|
||||
end
|
||||
if (audioinfo[audio[:filename]][:format][:format_name] == 'wav' ||
|
||||
audioinfo[audio[:filename]][:audio][:codec_name] == 'vorbis') &&
|
||||
entry[:original_duration] &&
|
||||
(audioinfo[audio[:filename]][:duration].to_f / entry[:original_duration]) < 0.997 &&
|
||||
((entry[:original_duration] - audioinfo[audio[:filename]][:duration]).to_f /
|
||||
entry[:original_duration]).abs < 0.05
|
||||
BigBlueButton.logger.warn " Audio file length mismatch, adjusting speed to #{speed}"
|
||||
@@ -141,9 +144,9 @@ def self.render(edl, output_basename)
|
||||
ffmpeg_filter << "#{FFMPEG_AEVALSRC},#{FFMPEG_AFORMAT}"
|
||||
end
|
||||
|
||||
ffmpeg_filter << ',asetpts=N'
|
||||
|
||||
ffmpeg_filter << ",atempo=#{speed},atrim=start=#{ms_to_s(audio[:timestamp])}" if speed != 1
|
||||
|
||||
# Skip this input and generate silence if the seekpoint is past the end of the audio, which can happen
|
||||
# if events are slightly misaligned and you get unlucky with a start/stop or chapter break.
|
||||
|
Loading…
Reference in New Issue
Block a user