Commit Graph

1531 Commits

Author SHA1 Message Date
Ramón Souza
0405030c87 Adds the bbb_version to tldraw.json so Playback can know what version was used and react to the changes 2023-03-24 09:06:29 -03:00
Calvin Walton
6709aba39b recording/video: Fix typo in area layout
The deskshare video was accidentally set to 920px wide instead of 960px
wide, so it was not completely covering the presentation area.
2023-03-23 13:44:37 -04:00
Calvin Walton
e4f9493bd7 recording: Fix handling of demoting a moderator when webcams locked
A comparison was being done against the wrong variable, resulting in the
empty string filename being added to the inactive videos list. This
caused a crash later in the code.
2023-03-21 18:07:45 -04:00
Calvin Walton
057d3abaf5 recording: Fix video processing OOM, Broken pipe errors
In a particular case where you have a large timestamp gap followed by a
frame which re-initializes the filters in the pre-processing ffmpeg
(e.g. due to a resolution change), the fps filter will keep generating
frames to fill this gap even if downstream filters aren't accepting more
frames. Add a trim filter which will eat the frames past the desired end
timestamp to prevent them from getting queued up.

Additionally, in cases with unlucky timing on the filter
re-initialization, the pre-processing ffmpeg can end up generating some
output past the set end time. Since the compositing ffmpeg exits once it
has read enough input, this can cause the pre-processing ffmpeg to fail
with a "Broken pipe" error. To work around this problem, the processing
scripts themselves can open the pipe for reading to hold it open, and
then send a signal to the pre-processing ffmpeg to tell it to exit. This
results in ffmpeg exiting with the return code 255, which can be
distinguished from actual errors.

As a bonus, opening the fifo in the processing script allows increasing
the size of the pipe buffer, which should result in slightly better
performance.
2023-03-21 18:07:45 -04:00
Ramón Souza
3d4d623f16 update bbb version in record-and-playback 2023-03-21 15:07:10 -03:00
Calvin Walton
dc9126b67b recording: Skip EDL area if it is nil
The recording processing would crash if an area was present in the
layout, but was missing in the EDL entry being processed.

This doesn't happen in normal conditions, since most of the methods for
generating an EDL will result in areas being present, even if there are
no videos for that area.

But the EDL cleanup recently added can sometimes cause an EDL entry with
no areas to be processed, so add the code to handle this possibility.
2023-02-21 15:28:24 -05:00
Calvin Walton
54e128f0d3 recording: Don't use tpad to pad start of videos
The tpad filter doesn't actually extend the video backwards (i.e. it
does not create frames with timestamps earlier than the first video
timestamp). Instead, it *delays* the start of the video.

Using it incorrectly was causing audio/video desyncs in the desktop
sharing, and also occasional processing failure if it pushed back the
video enough that the compositing ffmpeg process didn't end up reading
to the end of the input video.

Use the fps filter's "start_time" option instead, which *does* extend
the video backwards to the configured start time by duplicating the
first frame.
2023-02-21 15:23:44 -05:00
Calvin Walton
49cf81f4a0 recording: Enforce minimum length of video segments
The "EDL" provided to the recording video processing can sometimes
contain a series of cuts in very close succession - just milliseconds
between them - purely by chance (e.g. two webcams disconnect at almost
the same time). Right now this can result in segments failing to
process (in some rare cases) or if a segment processes but was detected
to be empty (no frames), it'll get discarded.

There's also some problems which can occur that cause a too-short
recording - just milliseconds between start and stop, or between start
and the meeting end - which also currently fail to process. We've found
it's better for user feedback/support if the recording successfully
processes with no content in this case.

Add a cleanup function that goes through the EDL and consolidates cuts
which are too close together, and ensures that the final output meets
a minimum length.
2023-02-16 11:46:45 -05:00
Calvin Walton
5adbcae7cb recording: Add workaround for webacmsOnlyForModerator typo
There was a brief period during 2.5 development when recordings had the
typo "webacms" instead of "webcams" on one of the event names. I hit
this now and then, so just check for both names in the recording
processing.
2023-02-15 11:50:56 -05:00
Calvin Walton
27e66df19c recording: Fix tests for get_chat_events
The code no longer retrieves chat or avatar color, so stop checking for
those in the tests.

Fix the get_chat_events code to include the sender name when the sender
id is not available (this only happens on *really* old recordings, but
it's a trivial fix).
2023-02-15 10:46:12 -05:00
Anton Georgiev
b5759533d2
Merge pull request #16698 from kepstin/video-recording
recording: video format updates & fixes
2023-02-13 14:41:12 -05:00
Calvin Walton
6379a6f50d recording: video format updates & fixes
A few minor updates and fixes to the video recording format:

* The 'show_moderator_viewpoint' recording setting is now honoured.
* The desktop sharing video replaces the presentation area - it no
  longer hides webcams (it now matches the live meeting).
* The 'playback_protocol' recording setting is now honoured (recording
  links will correctly use https when that's configured).
2023-02-10 12:21:27 -05:00
Calvin Walton
1dd40b8380 recording: Fix handling deskshare with delayed video
When a deskshare stream with combined audio + video starts up, it can
happen that the audio starts before the video - so the first video frame
will be some amount of time after the file start.

If there's a recording processing cut in this gap, the procesing can
crash because it can generate an output video with no video frames.

There are two parts to the fix:
  * Trim input videos with the trim filter, configured to ensure at
    least 1 output frame is generated, even if it would be after the
    end timestamp.
  * Use the tpad filter to pad the *start* of a video stream to make
    sure there's something in the gap.
2023-02-10 11:27:18 -05:00
Anton Georgiev
6c2e8e25b2
Delete record-and-playback/presentation/playback/presentation/2.0 directory 2023-02-01 13:18:17 -05:00
Calvin Walton
0eaad64907 Add video recording publish script and playback files 2023-01-24 15:57:01 -05:00
Calvin Walton
3cb6c92609 Video recording format processing script and configuration
The publish script and packaging is still on the todo list.
2023-01-20 13:56:08 -05:00
Calvin Walton
46970162fb Recording: move tpad ffmpeg filter before fps
In cases of extremely short (single frame) input videos, the fps filter
can sometimes generate 0-frame output videos, resulting in the tpad
filter having no input (this breaks it, causing a busy loop).

Move the tpad filter to before the fps filter to solve this problem.
This isn't perfect, since the tpad filter doesn't work well on variable-
framerate video (it generates extremely high framerate video with a lot
of frames that will be discarded), but this only happens between the
tpad and fps filters, and only at the end of an input video (usually
right before a cut) so this seems acceptable.

Since the tpad and fps filter are in the same process, these duplicate
frames don't actually require copying any data (the frame is
reference-counted), and still process reasonably quickly.

Fixes #16407
2023-01-06 10:56:50 -05:00
Anton Georgiev
2841a78848 Merge branch 'v2.5.x-release' of github.com:bigbluebutton/bigbluebutton into port-15552 2022-12-15 13:55:24 +00:00
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
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
5cb32ec088 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 15:59:54 -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
58c4ffd068 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:49:16 -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
Calvin Walton
aa1aef6727 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 13:35:48 -05:00
GuiLeme
3f9fcc693f [update-gem-tzinfo] - updated resque gem 2022-11-21 17:05:26 -03:00
germanocaumo
835cf4f753 fix(whiteboard): diff shape update + shape permission +
Several improvements to tldraw whiteboard:
 - Only send the shape diff on shape updates (reduce a lot the message traffic)
 - Shape permissions (don't allow others to select/edit unless you are presenter/moderator)
  - This required some changes in akka model
 - Tldraw state patch changes to improve stability with fast updates (fix several crashes)
2022-10-21 14:05:31 +00:00
Ramón Souza
2b0971e2c8 Merge tag 'v2.5.6' into merge-256-26 2022-09-26 09:17:59 -03:00
Calvin Walton
fb43eba355 recording: Fix incorrect seek offsets in video
When converting from using the 'movie' source filter to using separate
ffmpeg command line inputs, it wasn't taken into account that the
'movie' filter passes through timestamps from the source file, while the
ffmpeg input adjusts timestamps so that '0' is the selected seek point.

The easiest fix is to add an option to the ffmpeg command to disable the
timestamp adjustments.

Fixes #15644 (This needs to go into BigBlueButton 2.5 and 2.6)
2022-09-16 12:14:19 -04:00
germanocaumo
d609628047 refactor(recording): remove not used event 2022-08-23 18:39:46 +00:00
GuiLeme
f160efe8fc [update-gem-tzinfo] - update tzinfo, redis-namspace and resque gem 2022-08-17 10:30:28 -03:00
germanocaumo
98d431ad92 fix(recording): correctly save tldraw pan/zoom events 2022-08-16 19:11:49 +00:00
germanocaumo
d4b8bdce7e fix(tldraw): sync viewed area between presenter/viewers +
- Return to the ResizeAndMoveSlide event to do pan&zoom, respecting the viewed width and height ratio
- Defaults zoom in toolbar to 100% like before to be more consistent
- Fit to width and Reset Zoom is back (fit tho width still has some sync problems)
- Fix to not change to first page when presenter reloads page
2022-08-16 12:12:43 +00:00
Ramón Souza
ded8493f05 Merge remote-tracking branch 'upstream/v2.5.x-release' into 2526-aug3 2022-08-03 09:53:41 -03:00
germanocaumo
1ae8e5c35d fix(recording): bump bbb_version to 2.6.0 in events.xml
- Update the version to 2.6.0 to ease the detection of old/new whiteboard events
- Fix recording cursor when there is no pan/zoom and annotations in tldraw
- Don't generate slides pngs for 2.6.0, they are not used anymore in playback (svgs instead).
2022-07-29 11:18:30 +00:00
GuiLeme
6f33111ea4 [issue-15439] - fix typo in presentation scripts 2022-07-27 10:24:07 -03:00
Anton Georgiev
cb1543e1fa
Merge pull request #15149 from kepstin/video-resize
fix: Support deskshare videos that resize
2022-07-25 13:36:00 -04:00
Ramon Souza
db5ac1428a Merge tag 'v2.5.3' into merge25-26-jul14 2022-07-15 11:08:02 -03:00
Anton Georgiev
55dbc34984
Merge pull request #14616 from danimo/bbb-target
build: Introduce bigluebutton.target
2022-07-06 14:42:09 -04:00
Daniel Petri Rocha
ef45c9675f Add cropbox parameter to thumbnails and recording processing step 2022-07-06 18:16:08 +02:00
germanocaumo
c2db91b5f9 Merge branch 'v2.6.x-release' of https://github.com/bigbluebutton/bigbluebutton into tldraw-recording 2022-06-30 14:31:08 +00:00
GuiLeme
be62c6d19a [update-rubocop] - ran bundle install and updated rubocop 2022-06-29 17:38:39 -03:00
Anton Georgiev
61b269eca8
Merge pull request #15171 from GuiLeme/issue-15051
refactor: Removed all traces of Red5
2022-06-29 12:09:02 -04:00
Daniel Molkentin
a7f43ba2b8 Merge remote-tracking branch 'origin/v2.6.x-release' into bbb-target 2022-06-27 17:03:01 +02:00
Anton Georgiev
fa5ea33c6c
Merge pull request #15100 from schrd/fix-issue-10989
Fix(build): add service dependency to redis for several services
2022-06-23 15:40:38 -04:00
germanocaumo
853d0dfd9b fix(whiteboard): tldraw recording processing/publishing
Changed the names of tldraw record events to differentiate from before.
Publish tldraw.json file with all shape information during the meeting to be used in playback.
Adapted cursor.xml and panzoom.xml to store tldraw data.
Publish slides svgs to be used by playback's tldraw component (otherwise we have different image sizes in pngs and thus messing the coordinates).
Retro-compatible with old recordings.
2022-06-23 17:04:09 +00:00
GuiLeme
ac2e68842c Merge remote-tracking branch 'upstream/v2.6.x-release' into issue-15051 2022-06-20 16:12:25 -03:00
GuiLeme
7363c36448 [issue-15160] - fixed error logs in recordings 2022-06-16 09:13:31 -03:00
Daniel Schreiber
887b0152fd fix: bbb-rap-starter also needs Redis
... so add it as a dependency for systemd.
2022-06-16 11:49:37 +02:00
GuiLeme
beb0b507e0 [issue-15051] - Refactored all traces from Red5 2022-06-13 08:19:08 -03:00
Calvin Walton
067b4e0c6b Support deskshare videos that resize
Based on work done by Tiago Jacobs and Guilherme Pereira Leme to
investigate the behaviour of ffmpeg on videos with changing input size.

Rather than having the EDL code set fixed sizes for the scale and pad
filters, instead use ffmpeg's built in features to calculate the scale
and pad automatically, dynamically updating if the input video size
changes.

In the version of ffmpeg in Ubuntu 20.04, the 'movie' input filter is
buggy and doesn't correctly handle the video size changing. Instead of
using the movie filter, use separate inputs to the ffmpeg command (the
design used here is based on the code in audio.rb). The filter chain is
now stored into a file (using -filter_complex_script) to reduce problems
with the command line getting too long.

We are using a version of ffmpeg that's new enough to have the tpad
filter now too, so use it to extend the video if needed instead of an
extra concat.
2022-06-08 15:37:47 -04:00
Calvin Walton
9abc934537 Fix rap-enqueue.rb to load gems with bundler
In BBB 2.5, we switched the recording system to use bundled gems
included privately in the recording package, rather than installed
system-wide. The rap-enqueue.rb script needs to be updated to load the
bundler gems.

According to bundler devs, setting the BUNDLE_GEMFILE environement
variable is the supported way to tell bundler where to find it
(otherwise bundler will search starting at the current working directory
- which in the case of rap-enqueue.rb is probably nowhere near the
Gemfile).

Use a relative path from the directory where the script is located so it
can be run both when installed and from a development environment.

Switch the script interpreter to use /usr/bin/env to load ruby from the
path. Doesn't make a difference in the installed package, but it makes
testing on development systems with multiple ruby environments easier.

Fixes #15085
2022-05-31 18:13:33 -04:00
GuiLeme
eb1331502b [update-ruby-gems] - Update of nokogiri and rack-gem 2022-05-30 14:43:58 -03:00
Daniel Schreiber
1a12514b61 Fix(build): add service dependency to redis for several services
* fix unit name: the unit name on Ubuntu is `redis-server.service`
* services which need a working redis require both After= and Wants=

See the description in the `systemd.unit` man page.
2022-05-29 22:31:03 +02:00
GuiLeme
148e1bd355 Updated nokogiri to version 1.13.5 2022-05-20 09:18:32 -03:00
Gustavo Trott
14815184e6
Merge pull request #14911 from GuiLeme/issue-9789 2022-05-10 13:24:11 -03:00
Anton Georgiev
f3080b9ad1
Merge pull request #14930 from GuiLeme/issue-14819
fix(recording): Override configuration `properties` file
2022-05-10 11:30:48 -04:00
Guilherme Pereira Leme
be6184c9e9
Changes in review
Co-authored-by: Gustavo Trott <gustavo@trott.com.br>
2022-05-05 09:53:38 -03:00
Guilherme Leme
d438367e36 [issue-14819] - Changes in review 2022-05-02 16:41:02 -03:00
Guilherme Leme
ab9d4fa9d4 [issue-14819] - implemented features. 2022-05-02 16:04:37 -03:00
Calvin Walton
2d4976cf72 record-and-playback: Don't seek past end of video input
In some cases with incomplete/partially corrupt files, the input video
file can be shorter than the displayed time. If there is a badly timed
cut, this can result in a seek being generated to a point where ffmpeg
is unable to start at.

Add a detection for this situation, and replace with a blank video.
2022-05-02 14:30:32 -04:00
Guilherme Leme
5763595d66 [issue-9789] - Changes in review. 2022-05-02 09:42:00 -03:00
Guilherme Leme
2c3c10115e [issue-9789] - change property showModeratorViewpoint's file 2022-04-29 16:43:24 -03:00
Guilherme Leme
6741232b3f [issue-9789] - Included the option to show the moderator's view. 2022-04-29 16:06:14 -03:00
Guilherme Leme
fe9585a004 [issue-9789] - Refactored webcamsOnlyForModerator to enhance computer processing. 2022-04-29 13:04:43 -03:00
Guilherme Leme
de344dbb81 [issue-9789] - Refactor userInfo List and its logics. 2022-04-29 11:56:26 -03:00
Guilherme Leme
7a513e0f06 [issue-9789] - process EDL differently (recording component) in order to include the webcmasOnlyForModerator property. 2022-04-28 14:58:47 -03:00
Guilherme Leme
a6f9bc6e9a [fix-PR-14628] - Include Return of the props in the read_props method. 2022-04-20 10:00:07 -03:00
Anton Georgiev
dd97ed5b5b
Merge pull request #14628 from GuiLeme/issue-14304
Implementation to read files from `/etc/bigbluebutton/` and override default configs.
2022-04-13 14:20:51 -04:00
Guilherme Leme
0319ecf371 [nokogiri-update] - Update of nokogiri to version 1.13.4+ 2022-04-12 11:07:59 -03:00
Guilherme Leme
021200a800 [Update to nokogiri] - Gemfile.lock 2022-04-05 14:41:03 -03:00
Guilherme Leme
a5601c0c8f [Update to nokogiri] - Change in the Gemfile to run in the new version. 2022-04-05 14:23:17 -03:00
Anton Georgiev
97dbc1aeb6
Merge branch 'v2.5.x-release' into bbb-target 2022-04-01 14:21:15 -04:00
Guilherme Leme
71e1ed8494 [issue-14304] - Resolving merging conflicts 2022-03-31 16:50:34 -03:00
Guilherme Leme
5d6401828c [issue-14304] - Changes in review. 2022-03-31 16:37:46 -03:00
Calvin Walton
97c0f51964 bbb-record-core: Restore systemd unit cwd to 'scripts' dir
The rap scripts might load or run some scripts using relative paths from
the scripts directory, so restore that.

Bundler automatically looks up in parent dirs to find the Gemfile, so
loading gems will work correctly.
2022-03-29 12:57:16 -04:00
Calvin Walton
db2d8efa0d bbb-record-core: Update systemd units to use bundler
Several scripts internally run bundler setup, so no explicit bundler
command is needed. For the others, start up using /usr/bin/bundle
(installed by ruby-bundler) to load the environment.
2022-03-29 12:41:27 -04:00
Daniel Molkentin
dc012a2548 fix(bbb-record-core): make package install again on focal
Now uses Ubuntu's bundler version to install all dependencies at build time
rather than install time. Gems are also now vendored, and no longer pollute the
operating system.
2022-03-23 22:55:04 +01:00
Calvin Walton
6f4a3fdf0b publish/presentation.rb: clean up some assignments in if statements 2022-03-23 09:55:42 -04:00
Daniel Petri Rocha
f9b022c7e4 Don't show slides after meeting ends 2022-03-22 18:02:07 +01:00
Daniel Petri Rocha
8a8a03fab5 Resolve merge conflict; update README 2022-03-22 16:11:44 +01:00
Guilherme Leme
b3320c2414 [issue-14304] - changes in review. 2022-03-21 10:47:01 -03:00
Guilherme Leme
c798eee1f7 [issue-14304] - Implemented reading of /etc/bigbluebutton/recording.yml and /etc/bigbluebutton/presentation.yml 2022-03-18 12:16:27 -03:00
Daniel Molkentin
9a71e8e0b3 make record-and-playback-scripts part of bbb.target 2022-03-17 15:15:21 +01:00
Guilherme Leme
b080e889f6 Merge remote-tracking branch 'upstream/v2.5.x-release' into issue-14243 2022-03-14 16:05:44 -03:00
Ramón Souza
138f4d64e4 Merge remote-tracking branch 'upstream/v2.4.x-release' into v2.5.x-release 2022-02-24 14:49:56 +00:00
Guilherme Leme
55f8d9266e [issue-14243] - Fix to accept the chatEmphasizedText in recording and akka components. 2022-02-22 12:00:36 -03:00
Guilherme Leme
f6e144d71c [issue-14243] - Changes in Akka, to save the events in redis, and changes in rap to process these changes. 2022-02-17 17:23:28 -03:00
Guilherme Leme
58223e416c Removed comments. 2022-02-17 08:24:37 -03:00
Daniel Petri Rocha
a280959f91 Remove comment 2022-01-31 17:09:15 +01:00
Daniel Petri Rocha
e02788545b Merge branch 'bigbluebutton:develop' into faster-publish 2022-01-31 16:29:31 +01:00
Daniel Petri Rocha
b5a52b8e89 Second round of stylistic changes; search for previous shape in DRAW_END 2022-01-31 16:26:22 +01:00
Daniel Petri Rocha
61bc318211
Merge branch 'bigbluebutton:develop' into faster-publish 2022-01-31 16:23:00 +01:00
Guilherme Leme
21e79373f6 Refactored record-and-playback's deploy script to work properly 2022-01-28 11:16:55 -03:00
Ramón Souza
16cd3c4ebb Merge remote-tracking branch 'upstream/v2.4.x-release' into dev-24-0125 2022-01-25 16:56:52 +00:00
Anton Georgiev
5f4c5cdedb
Merge branch 'develop' into r-r-e-acea 2022-01-24 16:05:57 -05:00
Pedro Beschorner Marin
810deb907b refactor(etherpad): access control et al.
Move all Etherpad's access control from Meteor to a separated [Node application](https://github.com/bigbluebutton/bbb-pads).
This new app uses [Etherpad's API](https://etherpad.org/doc/v1.8.4/#index_overview)
to create groups and manage session tokens for users to access them. Each group
represents one distinct pad at the html5 client.

- Removed locked users' access to pads: replaced readOnly pad's access with a new pad's content sharing routine
- Pad's access is now controlled by [Etherpad's API](https://etherpad.org/doc/v1.8.4/#index_overview)
- Closed captions edited content now reflects at it's live feedback
- Improved closed caption's dictation mode live feedback
- Moved all Etherpad's API control from Meteor to a separated [app](https://github.com/bigbluebutton/bbb-pads)
- Included access control both in akka-apps and bbb-pads
2022-01-21 16:56:01 -03:00
germanocaumo
74210787ba fix(recording): fix publish crash when poll has no options/answers 2022-01-21 13:23:23 +00:00
Anton Georgiev
e463993d01
Merge pull request #9837 from hiroshisuga/fix-thumbnails
fix(recording): Generate thumbnails from uploaded file
2022-01-20 13:39:38 -05:00