Commit Graph

391 Commits

Author SHA1 Message Date
Richard Alam
9eae47dc82
Merge pull request #6099 from kepstin/bbb-20-rec-fixes
Recording fixes for BBB 2.0
2018-09-21 14:38:57 -04:00
Calvin Walton
7a64756bba RaP: When generating poll image, grab the presentation name correctly.
It was previously trying to get the presentation name from the wrong variable,
which resulted in a nil value (which was treated as a blank string in
filenames). This caused the poll images to not be inside the presentation
subdirectories, and the poll image references in the svg contained a `//`
path, which would break the recording if it was uploaded to e.g. AWS S3.
2018-09-21 14:28:24 -04:00
Calvin Walton
c6674833c7 RaP: Have <p> in presentation format inherit font size
This fixes font scaling in the presentation area, since that relied on
the <p> element inheriting the font size from the svg <g> that it was
inside of.

This was broken with the switch to the Foundation stylesheet base, which
set a fixed font size on the <p> element.
2018-09-13 17:22:25 -04:00
Felipe Cecagno
ec7356eb17 use video_formats prop while processing presentation 2018-07-31 11:37:02 -03:00
Calvin Walton
66ce4cde02 Revert copyright info in recording to say BigBlueButton 2018-07-24 13:18:18 -04:00
Felipe Cecagno
630224ab72 add support for mp4 in the presentation playback, disabled by default 2018-07-12 00:05:17 -03:00
Felipe Cecagno
fff9940c2a update meta tags to brand the playback to playback-logo-url and playback-copyright 2018-07-11 22:29:57 -03:00
Felipe Cecagno
79c13621d7 fix shapes display for the simple example 2018-07-11 22:27:25 -03:00
Felipe Cecagno
494b007ade bring back part of the implementation of 2.0, shapes still not showing 2018-07-11 21:46:26 -03:00
Felipe Cecagno
c1921670c3 change sequence of events and use only asynchronous HTTP requests 2018-07-10 00:51:28 -03:00
Calvin Walton
3d78745dd4 RaP: Don't error on pencil drawings with 0 dataPoints
In some cases, we get DRAW_END events for pencil shapes from the
html5 client that have no dataPoints. The only thing we can really
do here is detect the issue and ignore the shape.

In some cases, this may result in the shape's intermediate drawing
updates being shown, but it'll disappear when the end event happens.
2018-06-22 15:33:30 -04:00
Calvin Walton
36a6b0f5ac RaP: Scale to a square when generating slide images for pres. format
This improves the quality of portrait documents, before they were
1200px when landscape documents got 1600px.

Switching to scaling to a square means that we can use the "-scale-to"
option on pdftocaio, which means that it generates images directly
at the desired size. This can save quite a bit of time (and memory)
if a document was uploaded with extremely large page size.
2018-05-16 11:54:35 -04:00
Calvin Walton
bfcaa5aaa3 Check for new webrtc deskshare event in presentation slide code 2018-04-25 16:00:13 -04:00
Calvin Walton
3307fab99c Don't crash playback if text is not available for a slide.
This happens when the slide is a plain image, for example.
Fixes #4425
2017-09-28 14:34:19 -04:00
Calvin Walton
399b1cb543 RnP: Don't fail processing if an image can't be converted to png 2017-09-05 11:21:16 -04:00
Calvin Walton
b810939643 RnP: Fix parsing poll fields as numbers rather than text 2017-08-30 14:51:52 -04:00
Calvin Walton
e81d77a318 RnP: Fix shape type name for poll shapes 2017-08-30 14:42:29 -04:00
Calvin Walton
2d19cd7b7b Make the fallback slide images transparent, so the logo is visible 2017-08-25 16:05:46 -04:00
Calvin Walton
195b499e06 RnP: Fix square/circle rendering
Different parts of the code were using symbol vs string keys, so
the circle/square code never got applied. Use symbols everywhere for
consistency.
2017-08-25 15:46:03 -04:00
Calvin Walton
a3a530553a RnP: Force re-encoding text from textfiles into UTF-8
Some old recordings might have invalid or legacy encoding stuff
in the text files. To allow processing to continue, just re-encode int
UTF-8 with the invalid option set to replace, to remove the invalid
characters.
2017-08-25 14:02:09 -04:00
Calvin Walton
0d91b9444e RnP: Some shapes in BBB 2.0 now have sharp corners 2017-08-25 11:39:00 -04:00
Calvin Walton
243afcd90c RnP: Make 'presentation_props' a global var so it can be accessed in functions 2017-08-23 12:22:46 -04:00
Calvin Walton
ba1e0e09c2 RnP: Add image id to shape ids
This ensures that the same shape in two different images will
get different ids for each, so that the drawing code will handle it
correctly.
2017-08-21 16:40:53 -04:00
Calvin Walton
62465d4c47 RnP: Convert BBB 2.0 cursor positions to be relative to viewbox
In BBB 2.0, the cursor positions are given relative to the page
size (like annotation positions). Since the recording cursors
aren't actually drawn in the page like annotations, it's more
convenient to have them relative to the visible area (viewbox),
so do that conversion.

While I'm in here - since we switched to new incompatible scripts
for BBB 2.0 anyways - remove an extra factor in the cursor positions
in cursor.xml, and just use a simple ratio of width/height instead.
2017-08-21 14:44:41 -04:00
Calvin Walton
c925a36c7b RnP: Calculate the cursor position based on pan/zoom info 2017-08-21 12:24:19 -04:00
Calvin Walton
08f00eb35e RnP: Fix variable name of bbb 2.0 version check 2017-08-18 17:50:34 -04:00
Calvin Walton
919bb1a60f RnP: Don't unconditionally hide cursor if no updates 2017-08-18 17:45:46 -04:00
Calvin Walton
21255cf04a RnP: Hide the cursor when it goes offscreen
Remove the old 'hide cursor on inactivity' code, and just hide the
cursor when the cursor events say it should be hidden.
2017-08-18 17:16:16 -04:00
Calvin Walton
f66d4a2849 RnP: Syntax fixes for presentation text fix... 2017-08-18 17:07:14 -04:00
Calvin Walton
2b51f39c62 RnP: Fix issues in presentation publish
- Need to look in the process dir to find the images (and create new ones)
- Don't set the text attributes on slides that do not have text (logo)
2017-08-18 16:56:45 -04:00
Calvin Walton
1390224efc RnP: Use correct dir to find presentation images 2017-08-18 16:39:18 -04:00
Calvin Walton
dba5cd9196 Various recording script fixes & cleanups
This is just a bundle of a few things I've been fixing up in the past
while.

= Workaround for BBB 1.1 beta deskshare timestamp bug

This is unlikely to be used, but I have the code for it, might as
well merge it in.

= Rework video tiling code for ffmpeg

Render video using the 'hstack' and 'vstack' filters rather than the
'overlay' filter. This is somewhat faster, particularly with lots of
videos.

= Etc.

- Remove usage of the streamio-ffmpeg gem.
  The video rendering code has some stuff to directly read 'ffprobe'
  output, so re-use that instead of this gem (which is kind of old and
  has issues with newer ffmpeg versions).

- Don't hardcode the deskshare video area size, pull it from the
  properties file

- Remove some code that worked around missing video end events.
  In some cases this could cause flickering or strange video issues.
  It's no longer strictly needed, the new tiling code doesn't break if
  the seekpoint is after the end of the video.
2017-08-18 15:24:54 -04:00
Calvin Walton
321119a79e Create a new 2.0 recording playback directory, revert 0.9.0 to old shapes code.
The new shapes code, required for handling smooth shape updates & multi-user
whiteboard in the 2.0 BigBlueButton, hits a bug in old recordings where
the pencil tool incorrectly used "line" in its shape names, meaning that
there could be both a pencil mark and a line with the same shape name.

The old recording code didn't rely on the shape name to match shapes, since
there was no chance of concurrent shapes. As this is an incompatible playback
change, we need to make a new playback directory for the updated files.
2017-08-18 11:34:15 -04:00
Calvin Walton
d24c8f8af2 RnP: BBB <0.9 also had off-by-one on the undo and clear messages 2017-08-17 15:44:13 -04:00
Calvin Walton
04002f687f Revert to the pre-2.0 capitalization of 'userid' in presenter event 2017-08-17 14:29:54 -04:00
Calvin Walton
af4217c53e Set cursor opacity to match BBB flash client 2017-08-17 13:54:42 -04:00
Calvin Walton
50bf20f726 Rewrite recording processing handling of shapes, panzooms, cursor
The old code was very difficult to follow, and I couldn't figure out
a good way to retrofit the BigBlueButton 2.0 undo by shape id and clear
by user id into it - so I rewrote the entire thing instead.

It now generates the shapes.svg, panzooms.xml and cursor.xml all at the
same time during a single pass through the event.xml file. The result
is compatible with the existing recording javascript (at least once a few
minor issues in writing.js were fixed by earlier commits).
2017-08-17 13:33:00 -04:00
Calvin Walton
f0304a120a Handle panzoom at same time as slide change correctly.
Because of the >=, a panzoom at the same time as a slide change was matching
the previous slide rather than the expected new slide.
2017-08-17 11:59:06 -04:00
Calvin Walton
0087139f0d rnp: Fix playback to handle shape updates correctly.
The previous code would cause shapes to "blink" during updating if
the updates weren't continuous - in a gap between updates, the shape
would disappear.

Rework the logic for looking up "current" shapes to return the
nearest previous update rather than only exact matching timestamps,
and simplify the logic that decides whether to make a shape visible
or hidden.
2017-08-14 18:18:16 -04:00
Calvin Walton
aac50a077e Fix dot thickness for degenerate pencil shapes 2017-08-09 14:04:17 -04:00
Calvin Walton
005965e4b1 Pencil commands are strings 2017-08-03 12:42:38 -04:00
Calvin Walton
8a36ac5469 Fix typo in 'commands' variable name 2017-08-03 12:40:56 -04:00
Calvin Walton
05d6859170 Shape commands is spelt with an s 2017-08-03 12:24:35 -04:00
Calvin Walton
98fad425aa Add path 'command' handling for BBB 2.0 smooth drawing 2017-08-03 12:17:48 -04:00
Calvin Walton
8f142b9541 Shape thickness is a percentage, not fraction 2017-08-03 11:41:28 -04:00
Calvin Walton
f6c49847fb Use new shape thickness calculation on BBB 2.0
Thickness is now fraction of page width, rather than "pixels" on
an unspecified screen size.
2017-08-03 11:21:51 -04:00
Calvin Walton
f176682abb Move the slide size storage back inside the loop 2017-08-03 10:50:14 -04:00
Calvin Walton
728eb19dc6 Fix name of 'GotoSlideEvent' 2017-08-03 10:47:30 -04:00
Calvin Walton
3f43294dc0 Fix syntax issue in presentation publish script 2017-08-03 10:40:17 -04:00
Calvin Walton
0913534108 Have presentation recording script remember current slide
This fixes recording generation on BBB 2.0, where there is no longer
an automatic GotoSlide sent after every SharePresentation
2017-08-02 17:14:29 -04:00