Commit Graph

33981 Commits

Author SHA1 Message Date
GuiLeme
af49e25c21 Merge remote-tracking branch 'upstream/v2.5.x-release' into update-gem-tzinfo 2022-12-15 09:42:18 -03:00
GuiLeme
1ba26ea3c3 [update-gem-tzinfo] - update of dependencies - nokogiri, loofah, tzinfo, rack 2022-12-15 09:07:16 -03:00
Ramón Souza
1fda877450
Merge pull request #15929 from prlanzarin/u25/fix/cam-reconn-issues
fix: guarantee cleanup of stale data on re-subscriptions
2022-12-13 13:12:41 -03:00
Anton Georgiev
de2712b170
Merge pull request #16108 from zhem0004/tomcatTo9.0.70ON2.5
chore: upgrade tomcat to 9.0.70 on branch 2.5
2022-12-12 13:41:53 -05:00
Bohdan Zhemelinskyi
b5374f5b28 bump up tomcat 2022-12-08 23:18:20 +00:00
Anton Georgiev
9a39751fb2
Merge pull request #16050 from kepstin/recording-speed-fix-25
Recording: Don't use stateful filters in ffmpeg video processing (2.5 backport)
2022-12-08 11:00:04 -05:00
Calvin Walton
06d0e4d454 Recording: Move tpad filter to after fps filter
The tpad filter is problematic on the variable-framerate webcam files,
and the result can end up being hangs (or, at least, very slow
processing) in the compositing.

Move the tpad filter to the compositing process where it can run after
the fps filter has converted the video to constant framerate. It still
needs to run before the start trimming, so switch to using the trim
filter rather than the fps filter's start_pts feature.
2022-12-06 16:00:39 -05:00
Calvin Walton
4127f4ccc7 Recording: Pre-process video files using separate ffmpeg
Even with the filter changes made, there's still some cases where
filter chain hangs can result from filter reconfigurations. To solve the
issue completely, I have split out pre-processing video files to
separate ffmpeg processes, so that the filter chain for compositing will
not ever be reconfigured.

Each input video now has a separate ffmpeg process run for it which
does the scaling, padding, and video extending steps. To avoid issues
with disk space usage and extra cpu usage or quality loss, the output
from these separate processes is sent to the compositing ffmpeg process
as uncompressed video in a pipe. To simplify the setup, named pipes
(special files) are used rather than setting up pipes in the ruby code
programmatically.

The extra ffmpeg processes are configured to log to files, and when
complete their log output is copied to the recording processing log.
Processes are joined to ensure zombie processes are not created, and
the return codes of all the processes are checked so errors can be
detected.

Due to the overhead of transferring video through pipes, this might
be a bit slower than the 2.4 recording processing - but on the other
hand, some of the video decoding and scaling happens in parallel, so it
might balance out.
2022-12-05 11:55:59 -05:00
Calvin Walton
276e592c01 Recording: Don't use stateful filters in ffmpeg video processing
Because the input videos for BigBlueButton recording processing switch
resolution and aspect ratio, the filter chain gets re-initialized, and
any state in the filters is lost. This causes problems with the
following filters:

`color`: Timestamps restart from 0, rather than continuing at the point
where they left off.
`fps=start_time=12.345`: After reset, the fps filter thinks it's at the
start of the file again, so the next frame it sees gets duplicated
output for timestamps from the `start_time` until it catches back up.
`setpts=PTS-STARTPTS`: The 'STARTPTS' is re-read as the first pts the
filter sees after reinitialization, so timestamp of the next frame is
reset to 0. (In practise, this didn't cause any problems because the
duplicate frames created by the fps filter had the original start time.)

The end result of all of these issues is that a lot of duplicate frames
were created with invalid timestamps, which eventually get discarded
by ffmpeg. But a lot of time is wasted, causing recordings to sometimes
take hours to process when they should be ready in minutes.

The fixes are as follows:

* The `color` filters are used to generate the background and
  substitutes for missing videos. Move them out to separate filter
  chains by using the 'lavfi' input format, which lets you use a filter
  as if it was an input file.
* Rather than use the `fps` filter's `start_time` feature, use the
  `trim` filter to remove early frames.
* The actual start pts is already known by the script, so replace
  `setpts=PTS-STARTPTS` with `setpts=PTS-12.345/TB`, substituting in the
  absolute time.
2022-11-22 15:01:45 -05:00
GuiLeme
3f9fcc693f [update-gem-tzinfo] - updated resque gem 2022-11-21 17:05:26 -03:00
Ramón Souza
a2d6a45782
Merge pull request #15903 from BrentBaccala/testsuite-console-log
Testsuite console log
2022-11-18 15:36:36 -03:00
Ramón Souza
0ac798d261
Merge pull request #16026 from Tainan404/new-nginx-rule-25
Add new nginx rules
2022-11-18 10:52:18 -03:00
Tainan Felipe
e3e94fff75 Add new nginx rules 2022-11-18 10:44:50 -03:00
Ramón Souza
c97af6ab8e
Merge pull request #15619 from Arthurk12/bbb/15595
fix(whiteboard): text annotations stuck as fake and re-adds right click to cancel
2022-11-10 13:19:45 -03:00
Brent Baccala
0c32f307a7 testsuite console logging: still addressing SonarCloud issues 2022-11-09 13:43:36 -05:00
Brent Baccala
ed39b09f6f testsuite console logging: address SonarCloud complaints 2022-11-09 13:43:36 -05:00
Brent Baccala
ee44663de8 testsuite console logging: use node.js util.format to process format string 2022-11-09 13:43:36 -05:00
Brent Baccala
d2700acb92 testsuite console logging: use npm package 'chalk' to parse colors 2022-11-09 13:43:36 -05:00
Brent Baccala
d3f9625bfa testsuite console logging: handle Firefox, add five options and update README 2022-11-09 13:41:50 -05:00
Brent Baccala
9a6cb96723 testsuite: update outdated instructions in README for browser selection 2022-11-09 13:41:50 -05:00
Brent Baccala
ad1ea593d8 Initial attempt at console logging. Handles format strings, colorization, drops http references 2022-11-09 13:41:50 -05:00
Gustavo Trott
cef10a32ab
Merge pull request #15653 from BrentBaccala/testsuite-api-calls 2022-11-09 14:07:54 -03:00
Ramón Souza
379c6ec8c6
Merge pull request #15852 from BrentBaccala/fix-sonarcloud-warnings
Silence sonarcloud warnings on some old HTML
2022-11-08 08:26:21 -03:00
Gustavo Trott
1c7ccdc24f
Merge pull request #15733 from BrentBaccala/lookup-parentmeetingid 2022-11-07 21:16:33 -03:00
Brent Baccala
04d97e57a7 test suite: can't check XML data before it's been parsed; check HTTP status instead 2022-11-07 18:22:14 -05:00
Brent Baccala
8ba3d236b7 test suite: explicitly require create meeting API calls to return SUCCESS,
instead of waiting for a more confusing message when parsing the response
2022-11-07 17:00:55 -05:00
Brent Baccala
f2b53df4fc move two simple API routines from core/helpers.js to api/api.js 2022-11-07 17:00:55 -05:00
Brent Baccala
6f7c82641f API calls: refactor code to call joinMicrophone instead of duplicating that logic 2022-11-07 17:00:54 -05:00
Brent Baccala
e2b65c546a API calls: refactor createMeeting to separate out URL calculation,
creating a promise, and resolving the promise.  Also split API
tests apart and name them less confusingly.
2022-11-07 17:00:54 -05:00
Brent Baccala
0e57e6049e test suite: add API tests for getMeetings/getMeetingInfo
This also creates a new package requirement (xml2js) for the
playwright test suite and adds a new helper function to make an API
call and obtain its parsed XML response as a JavaScript object
2022-11-07 17:00:54 -05:00
Ramón Souza
0087a6527d
Merge pull request #15956 from JoVictorNunes/25-issue-15865
fix: poll chat message popup notification
2022-11-07 14:56:34 -03:00
Joao Victor
0c4f8b7c44 fix: don't show published poll notification if chat push alert is active 2022-11-07 14:47:20 -03:00
Joao Victor
94c91d8f79 fix: poll chat message popup notification 2022-11-07 10:23:31 -03:00
Ramón Souza
13b2d8791d
Merge pull request #15814 from danimo/fix/15803
fix: spelling errors in session keys
2022-11-04 13:15:59 -03:00
Ramón Souza
357e8a7694
Merge pull request #15952 from ramonlsouza/issue-15951
fix: Previous slide button icon inverted in RTL
2022-11-04 11:22:24 -03:00
Ramón Souza
1fb5240f70 fix previous slide icon in rtl 2022-11-04 10:13:16 -03:00
Gustavo Trott
b6e66ce2b1
Merge pull request #15932 from zhem0004/semiBackportUpdates 2022-10-31 15:40:55 -03:00
Gustavo Trott
2aa3a04e12
Merge pull request #15941 from gustavotrott/remove-repository-jcenter-25 2022-10-31 14:52:35 -03:00
Gustavo Trott
7530ac8019 Add mavenCentral as replacement for jcenter 2022-10-31 14:51:01 -03:00
Gustavo Trott
8b6f5179a1
Merge pull request #15938 from gustavotrott/remove-repository-jcenter-25 2022-10-31 11:15:58 -03:00
Gustavo Trott
13503b1db8 Removes JCenter from repositories list as it is failing 2022-10-31 11:13:49 -03:00
prlanzarin
401ddc4014 fix: guarantee cleanup of stale data on re-subscriptions
Currently, collection cleanup code is only run when an added event
is received from the server. Where that fails is in scenarios where
a server-side collection turns empty while an affected users is
disconnected - and then reconnects. There's no removed (or updated)
event so no cleanup code is run and you have stale data.

This commit guarantees a stale data check is run whenever a subscription
is established again. The `added` check was also maintained, although
I'm not too sure anymore it's is still needed. That may need to be
revisited.
2022-10-28 13:37:41 +00:00
Bohdan Zhemelinskyi
a0ddd9d178 upgrade dependencies 2022-10-25 15:08:04 +00:00
Ramón Souza
10cd20c1c0
Merge pull request #15905 from bigbluebutton/revert-15822-fix/lb-cluster-proxy
Revert "fix: show learning dashboard after session was ended in cluster proxy scenario"
2022-10-25 10:33:23 -03:00
Gustavo Trott
c0704bd6b1
Revert "fix: show learning dashboard after session was ended in cluster proxy scenario" 2022-10-25 10:28:12 -03:00
Paulo Lanzarin
222798463e
Merge pull request #15761 from bigbluebutton/sfu287
build(bbb-webrtc-sfu): v2.8.7
2022-10-25 10:14:24 -03:00
Fred Dixon
163f3fa5dd
Merge pull request #15904 from BrentBaccala/bbb-conf-stun-2
Add stun-client package dependency to bbb-config
2022-10-25 08:50:31 -03:00
Brent Baccala
25535e0cde Add stun-client package dependency to bbb-config, so that bbb-conf will run STUN checks 2022-10-24 23:02:53 -04:00
Ramón Souza
47d228c1fe
Merge pull request #15822 from danimo/fix/lb-cluster-proxy
fix: show learning dashboard after session was ended in cluster proxy scenario
2022-10-24 16:18:02 -03:00
Ramón Souza
2dae1774dc
chore: Bump version to 2.5.8 2022-10-21 09:18:53 -03:00