Commit Graph

378 Commits

Author SHA1 Message Date
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
Pedro Beschorner Marin
15c6420e97 Merge tag 'v1.1.0' into 1.1-transcode
tagging v1.1.0 release

 Conflicts:
	bbb-common-message/src/main/java/org/bigbluebutton/common/messages/RegisterUserMessage.java
	bbb-web-api/src/main/java/org/bigbluebutton/api/messaging/RedisMessagingService.java
	bigbluebutton-client/resources/config.xml.template
	bigbluebutton-client/src/org/bigbluebutton/modules/layout/managers/LayoutManager.as
	bigbluebutton-client/src/org/bigbluebutton/modules/phone/PhoneOptions.as
	bigbluebutton-client/src/org/bigbluebutton/modules/phone/views/components/ToolbarButton.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/view/components/ScreensharePublishWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/view/components/ScreenshareViewWindow.mxml
	record-and-playback/core/scripts/rap-process-worker.rb
2017-06-13 17:44:12 +00:00
Pedro Beschorner Marin
719ef1377a Merge remote-tracking branch 'mconf' into merging-into-bbb-1.1
Conflicts:
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/MeetingActor.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/api/ValueObjects.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/UsersApp.scala
	bbb-video/src/main/java/org/bigbluebutton/app/video/VideoApplication.java
	bbb-video/src/main/java/org/bigbluebutton/app/video/converter/VideoRotator.java
	bigbluebutton-client/locale/en_US/bbbResources.properties
	bigbluebutton-client/locale/pt_BR/bbbResources.properties
	bigbluebutton-client/resources/prod/MconfLive.html
	bigbluebutton-client/src/org/bigbluebutton/common/Images.as
	bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/utils/BrowserCheck.as
	bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/utils/JavaCheck.as
	bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/view/components/DesktopPublishWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/PresentationWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/users/views/UsersWindow.mxml
	bigbluebutton-config/bin/bbb-conf
	record-and-playback/core/lib/recordandplayback/generators/audio_processor.rb
	record-and-playback/core/lib/recordandplayback/generators/video.rb
	record-and-playback/core/scripts/rap-worker.rb
	record-and-playback/presentation/playback/presentation/0.9.0/lib/writing.js
	record-and-playback/presentation/scripts/process/presentation.rb
	record-and-playback/presentation/scripts/publish/presentation.rb
2017-06-07 19:31:15 +00:00
alexandre
cbd01875b9 Storing meeting duration
We were getting the duration with a Popcorn temporary instance. This was causing a slowly increase on the cpu usage, which could compromise the performance of long recordings.
2017-06-02 15:45:09 -03:00
Felipe Cecagno
6dd0641de2 disable padding on body to handle the case when the playback is embedded in a third party app with a header 2017-05-31 20:37:57 -03:00
alexandre
fc3c6134a7 Reverting shapes drawing refactoring
There are some cases in which annotations does not appear. It needs more testing.
2017-05-30 14:51:20 -03:00
alexandre
d7b38ced81 Removing deskshare intervals in the slide aspect calculations
Deskshare has it own functions to set its aspect. We were causing wrong annotations positioning as well as wrong slide resizing.
2017-05-30 14:39:55 -03:00
Felipe Cecagno
e45fd8794a Merge branch 'mconf' of github.com:alexandrekreis/bigbluebutton into mconf 2017-05-24 16:54:36 -03:00
alexandre
c75a19d990 function is_video_valid returns true if video is valid 2017-05-23 17:02:26 -03:00
alexandre
155cc4edad Video sync mechanism refactoring
- Created function "seySync( )" which sets the sync logic. Basically, we sync all medias when pausing the master video. We pause the master video when any video receives a waiting event, or when the master video is seeked. If necessary, we resume playing after the sync.

- Refactored when 'media-ready' event is fired.  We fire this event only when the medias receive a 'canplayall' event.
2017-05-18 18:05:49 -03:00
alexandre
81b2242055 Improving playback performance and video sync
- Popcorn "onFrame" method runs around 6 times per second. That was unnecessary , causing the CPU work to significantly increase, and preventing the two videos (deskshare and webcam) to run together smoothly

- We only synchronize the medias if one of them fires a "waiting" event. If the user pauses the playback, we synchronize them as well.
2017-05-16 18:34:10 -03:00
alexandrekreis
6a497c27f8 Merge pull request #4 from pedrobmarin/shapes-drawing
Refactored shapes drawing
2017-05-16 17:31:05 -03:00
Felipe Cecagno
654fd8c553 fix issue introduced by last commit, in which the full path of the deskshare video file was not provided in order to check if it was a valid video or not 2017-05-16 13:55:48 -03:00
Pedro Beschorner Marin
8ec81f84d4 Refactored shapes drawing 2017-05-15 21:07:42 +00:00