Commit Graph

1527 Commits

Author SHA1 Message Date
Calvin Walton
9cdafbdfe7 RaP: Merge the sanity script from master branch
Due to improvements in the recording scripts, most of the stuff the sanity
script was checking for is no longer needed (missing/corrupt video files
are handled by the processing scripts). The version of this script in
master has been cleaned up so that the only things it does are:

- Check that the events.xml exists and is properly formatted xml
- Rebuild flv files from red5 .flv.ser/.flv.info files

The script from master is compatible with the 2.0 code, so just use it
as-is.

This fixes a problem where following the recent red5 upgrade in 2.0 branch,
an flv file is never written for webcam streams where no frames were
received, despite there being recording events.
2018-05-23 11:18:04 -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
18d472e3a3 RaP: Improve check for record events in archive, sanity scripts
There's some cases where you can get 0-duration recordings due to
recording event placement (e.g. a single recording event is the last
event in the events.xml). Detect these cases, and treat them like
no recording marks in the archive script (it will stop the recording
from being automatically processed).

I've also adjusted the sanity script to detect these cases and error
out. The recording processing scripts cannot handle 0-length recordings,
you have to manually edit the events. I've added a message to the
sanity log about this.
2018-05-16 11:32:29 -04:00
Calvin Walton
32ff8b9f24 RnP: Fix bitrate in screenshare.yml
I forgot to include the 'K' multiplier on the bitrate values, so they
were all 1000 times too low.
2018-05-11 11:58:54 -04:00
Calvin Walton
e034b9c7ae Fix handling webcam videos that end early in recording processing
In some cases (due to network issues), the webcam video can be shorter
than the time between the start/stop events. Pad the input video with a
blank video to make sure that there's input to the video tiling filters,
to fix a problem where the video won't render correctly with ffmpeg v3.4
and later.
2018-05-07 13:21:11 -04:00
Fred Dixon
76296b95df
Merge pull request #5429 from kepstin/screenshare-video-rec
New "screenshare" recording format
2018-04-27 16:41:51 -04:00
Calvin Walton
eb04276897 Minor fixups from testing 2018-04-27 15:25:36 -04:00
Calvin Walton
ca198ee9ce
Merge pull request #5385 from lfzawacki/html5-video-recording
HTML5 recording of cameras and screenshare
2018-04-26 19:11:36 -04:00
Calvin Walton
21bd4b2673 Screenshare-focused video recording format. 2018-04-26 17:00:30 -04:00
Fred Dixon
c3c9aacf9e
Merge pull request #5417 from kepstin/podcast
Podcast recording format
2018-04-26 16:01:45 -04:00
Calvin Walton
60b828bea1 Fix some syntax issues 2018-04-26 15:24:16 -04:00
Calvin Walton
56baecdf9c Podcast recording format
Generates a single .ogg file containing the meeting audio
2018-04-26 15:06:52 -04:00
Felipe Cecagno
77d620a721 Fix recording events when there's screenshare AND webcams together 2018-04-26 01:24:41 +00:00
Lucas Fialho Zawacki
80562ac25c Merge branch 'webrtc-webcams' of https://github.com/kepstin/bigbluebutton into html5-video-recording 2018-04-25 20:02:45 +00:00
Calvin Walton
bfcaa5aaa3 Check for new webrtc deskshare event in presentation slide code 2018-04-25 16:00:13 -04:00
Calvin Walton
954ee4fc18 Events code doesn't know where archive dir is 2018-04-25 15:08:35 -04:00
Calvin Walton
9ada59d1c4 Fix more variable references in screenshare events 2018-04-25 15:04:01 -04:00
Lucas Fialho Zawacki
419adcf926 Merge branch 'webrtc-webcams' of https://github.com/kepstin/bigbluebutton into html5-video-recording 2018-04-25 18:30:43 +00:00
Calvin Walton
cd3e28a08c Fix some errors in screenshare archive/sanity 2018-04-25 14:28:37 -04:00
Lucas Fialho Zawacki
c0b3003918 Merge branch 'webrtc-webcams' of https://github.com/kepstin/bigbluebutton into html5-video-recording 2018-04-25 16:02:30 +00:00
Calvin Walton
ca0156d423 Support WebRTC screenshare in get events functions 2018-04-25 11:55:02 -04:00
Calvin Walton
39e981a7f2 Include webrtc screenshare streams in edl for video rendering 2018-04-25 11:44:23 -04:00
Calvin Walton
9f528e37fe Archive kurento screenshare streams 2018-04-25 11:35:36 -04:00
Fred Dixon
7f0d8db451
Merge pull request #5392 from kepstin/recording-webcam-fix
Fix handling webcam videos that end early in recording processing
2018-04-24 17:01:47 -04:00
Calvin Walton
8e0a79014f Fix handling webcam videos that end early in recording processing
In some cases (due to network issues), the webcam video can be shorter
than the time between the start/stop events. Pad the input video with a
blank video to make sure that there's input to the video tiling filters,
to fix a problem where the video won't render correctly with ffmpeg v3.4
and later.
2018-04-24 16:58:14 -04:00
Calvin Walton
ce84c5517b Include webrtc webcams in recording processing 2018-04-24 15:20:35 -04:00
Calvin Walton
c45fa74da0 Archive the webcam files from kurento webcam sharing 2018-04-24 15:18:02 -04:00
Calvin Walton
cafa9fd822 Rework audio processing to avoid seeking past end of file
In some cases when there is a slight mismatch between audio file
duration and event timestamp difference, and we have a record
status or chapter break event in a certain location, it could
trigger a seek past the end of an audio file. Detect this
condition and just render silence instead.

Also adjust the thresholds for the audio length scaling - they
were being triggered on short recordings that should be correct.
2018-02-13 12:45:58 -08:00
Calvin Walton
e30d5e3940 Rework audio processing to avoid seeking past end of file
In some cases when there is a slight mismatch between audio file
duration and event timestamp difference, and we have a record
status or chapter break event in a certain location, it could
trigger a seek past the end of an audio file. Detect this
condition and just render silence instead.

Also adjust the thresholds for the audio length scaling - they
were being triggered on short recordings that should be correct.
2018-02-12 16:33:37 -05:00
Richard Alam
bca27c4838
Merge pull request #5136 from kepstin/segmented-recording
Archive events.xml file in a concurrency-friendly way.
2018-02-12 14:28:37 -05:00
Calvin Walton
c1258ed387 Archive events.xml file in a concurrency-friendly way.
With the current segment processing, we might be processing one segment
while archiving a different segment from the same recording. To avoid
that the processing scripts see an incomplete events.xml file, write to
a temp file then rename.
2018-02-12 14:04:46 -05:00
Calvin Walton
c44d94b498 Workaround video sync issue due to red5 timestamp offset
Red5 sometimes writes webcam video files with a large offset in the
video frame offsets, sometimes up to 30 or even 60 seconds. However,
the start event in the events.xml file corresponds to the time at
which red5 received the first keyframe (recorded frame) in the video.

The end result is that the video will sometimes appear to be
delayed (out of sync) in the processed recording.

The correction is simple: We're already reading video metadata,
including the timestamp of the first frame, so we just have to apply
a correction during video processing to undo the frame timestamp
offsets in the video file.
2018-02-12 10:22:36 -08:00
Calvin Walton
0701bf87a8 Workaround video sync issue due to red5 timestamp offset
Red5 sometimes writes webcam video files with a large offset in the
video frame offsets, sometimes up to 30 or even 60 seconds. However,
the start event in the events.xml file corresponds to the time at
which red5 received the first keyframe (recorded frame) in the video.

The end result is that the video will sometimes appear to be
delayed (out of sync) in the processed recording.

The correction is simple: We're already reading video metadata,
including the timestamp of the first frame, so we just have to apply
a correction during video processing to undo the frame timestamp
offsets in the video file.
2018-02-12 11:54:18 -05:00
Calvin Walton
d8c0f7a67d Don't delete video events in the sanity script.
When working with the segmented recording format, the events file might
end with a mismatched start video event for an incomplete file. The
sanity script was removing this event, meaning the video didn't show up
in future segments.

Simply drop the code that tries to find invalid video files and removes
them from the events file. The new video processing code is already
robust against missing or corrupt files.
2017-12-14 14:43:31 -05:00
Richard Alam
e13a68377c Merge branch 'v2.0.x-release' of github.com:bigbluebutton/bigbluebutton into synch-with-v2.0 2017-11-20 08:42:46 -08:00
Calvin Walton
7362eb1eaf Update gems for security fixes, remove some unused. 2017-11-17 14:36:24 -05:00
Calvin Walton
feee34c144 Fix parsing meeting id for segments in publish step 2017-11-10 13:10:58 -05:00
Calvin Walton
d35dd90530 Applying segment breaks after recording marks doesn't work
The timestamps no longer line up after applying one edit, so these
have to be all done at the same time in one step.
2017-11-09 13:48:27 -05:00
Calvin Walton
abdb639e01 Bump bbb version to 2.1 so we can identify the new events
BBB 2.1 has multiple presentation pods and multiple chats, so the messages
for those have been altered.
2017-11-08 17:06:00 -05:00
Calvin Walton
eeb171cfc8 Add helper function that applies chapter breaks to record start/stop
This allows re-using some existing start/stop supporting processing
scripts to generate chapter recordings.
2017-11-08 13:49:24 -05:00
Calvin Walton
e2b40cc5bd Rework a bunch of the code to avoid repeatedly reparsing the events.xml 2017-11-08 10:12:25 -05:00
Calvin Walton
ab1019bf14 Set up rap publish/process scripts for segments 2017-11-07 11:50:28 -05:00
Calvin Walton
4e243536c7 Handle the no audio files case a bit better
If no audio files were found, it was running rsync with one argument,
which is a bit unexpected. It just printed a file list in this case, but
we can provide a cleaner error message instead.
2017-11-07 10:03:20 -05:00
Calvin Walton
50f2c1b90b Fix syntax issues in sanity scripts 2017-11-07 09:53:08 -05:00
Calvin Walton
35f7f425e2 Fix break detection in events 2017-11-07 09:52:50 -05:00
Calvin Walton
9add60d81b Fix a bunch of bugs found when testing the archive code 2017-11-06 15:22:43 -05:00
Calvin Walton
5bb5cbcd0e Have archive script check whether a particular segment is recorded
It previously checked whether any part of the entire meeting was recorded.
Helper functions are added to look up the time of segment start and end
(which handle non-segmented recordings correctly too).
Part of the events handling code was rewritten to reduce the number of times
that the events.xml file gets parsed.
2017-11-03 16:12:05 -04:00
Calvin Walton
f9c4843f28 Cleanups, initial work on checking for segment recorded status. 2017-11-03 15:17:04 -04:00
Calvin Walton
0e2785205a Update sanity script for recording segments, fix archive done files 2017-11-03 12:02:36 -04:00
Calvin Walton
037014db94 Adjust sanity rap worker to support segment breaks 2017-11-03 11:27:00 -04:00
Calvin Walton
f5cd1628e0 Trim events list after archive, make archive fail block future segments 2017-11-03 11:16:44 -04:00
Calvin Walton
2c4cadf459 Delete event data from redis after archive writes xml
Todo: we also need to remove the events from the meeting event list
2017-11-03 10:27:52 -04:00
Calvin Walton
a78997d1a1 Work in progress on segment archiving 2017-11-01 12:31:07 -04:00
Calvin Walton
0affb6a36e Make progressive archiving of media files work.
Switch to using rsync to archive video directories, with the -t option
so it'll only update modified/new files.
2017-10-30 15:04:30 -04:00
Calvin Walton
0acb3b5750 Adapt rap-archive-worker to segmented recording done file format 2017-10-30 13:40:53 -04:00
Calvin Walton
b2f8c80202 Handle out of order inserts at the start of a caption stream.
If you're inserting at position 0 (and there was no previous deleted text
from that position), you can't use the timestamp from the previous character
position, since there's no previous character. Use the timestamp of the
following character instead.
2017-10-12 14:16:34 -04:00
Leonardo Crauss Daronco
58fe40dadd Fix reference to the format name in rap-publish-worker 2017-10-09 19:06:06 -03:00
Leonardo Crauss Daronco
af87bc2d3f Merge remote-tracking branch 'upstream/master' into v1.1.0-rap-on-resque 2017-10-09 16:37:28 -03:00
Calvin Walton
e37db34eb4 Correctly handle a recording start being the last event in a recording.
In some unusual cases, the recording start can be the last event in the
events file, or at least have the same timestamp as such.

Add some code to check the array bounds and break if needed, so we
don't check the timestamp on the (non-existant) event after the last
event.
2017-10-02 12:31:31 -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
3f1fb1dc31 Handle recordings that have an unmatched DeskshareStartedEvent
The previous code looked for stop events and tried to find their
associated start event. This obviously doesn't work if there was
no stop event. But if there was a start event, we need to show the
deskshare… so rework to code to try to find the matching stop to each
start instead, and use the end of the meeting if no matching stop was
found.
2017-09-13 17:17:17 -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
dba121e6f4 Merge pull request #3998 from kepstin/caption-fixes
Update caption track generation based on feedback
2017-08-25 12:04:59 -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
33a511d800 Move the custom_hash require to publish rap worker where it's used 2017-08-18 17:45:15 -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
Leonardo Crauss Daronco
0b662c5342 Fix call to resque's "prune_dead_workers" on rap workers 2017-08-15 12:10:34 -03: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
Leonardo Crauss Daronco
aa8a7818a9 Remove stale workers when starting a rap worker
A simple but effective way of garbage collection.
See:

  http://www.rubydoc.info/github/resque/resque/Resque%2FWorker:prune_dead_workers
2017-08-11 17:32:42 -03:00
Calvin Walton
aac50a077e Fix dot thickness for degenerate pencil shapes 2017-08-09 14:04:17 -04:00
Leonardo Crauss Daronco
2a253cf3bd Schedule the next rec step in the base worker 2017-08-09 11:52:52 -03:00
Leonardo Crauss Daronco
50e02ad7dc Specify the sequence of rec steps in the props file
Removed from the code, now it can be specified in the properties file.
Makes it easier to include new processing scripts and control dependencies
between them.
2017-08-07 18:08:17 -03: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
c6f4ca9b56 BBB version is expected to be 3 numbers in recording events 2017-08-03 11:26:36 -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
056d7f2af6 Mark recordings as being from bbb 2.0
This will let the recording scripts adapt to some of the more difficult to
handle changes.
2017-08-03 11:02:28 -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
835f7d5371 Removed unused playbacks included with mconf merge 2017-08-01 15:11:49 +00:00
Leonardo Crauss Daronco
bc926be8d2 Simplify rap-starter a little 2017-07-14 17:35:06 -03:00
Leonardo Crauss Daronco
b01ab0574a Make sure rap resque workers will run from the correct directory 2017-07-13 17:48:20 -03:00
Leonardo Crauss Daronco
c34f3adff0 Add option to configure a different redis server for rap workers
Makes it possible to have a separate redis for workers, which helps when
scaling the processing.
2017-07-13 17:48:02 -03:00
Leonardo Crauss Daronco
076da25a7b Let exceptions be raised on rap resque workers
Let the exceptions be raised so that the job will be put in a "failed"
queue with all information needed.
2017-07-13 14:36:46 -03:00
Leonardo Crauss Daronco
71515d3a0c Make sure bbb-rap-resque-worker starts after boot 2017-07-13 14:36:45 -03:00
Leonardo Crauss Daronco
0252604b16 Add systemd scripts for rap workers on redis 2017-07-13 14:36:45 -03:00
Leonardo Crauss Daronco
13623e96fa Use a hash to pass options to rap workers, makes it easier to extend
With a hash it's easier for customizations to pass new parameters and
even create new types of workers.
2017-07-13 14:36:45 -03:00
Leonardo Crauss Daronco
5488cba3dd Run a different worker for each rap processing format available
Was running all formats inside a single worker, now there is a worker for
each processing script. Each will trigger its own publish worker when
done.
2017-07-13 14:36:44 -03:00
Leonardo Crauss Daronco
27cadca49a Use recording status files for info only, not as triggers
With resque workers we don't need to use status files to trigger each
step of the recording process. So instead of using status files as triggers
they are not used only for information, so that the workers can know if
a e.g. processing script failed or succeeded.
2017-07-13 14:36:44 -03:00
Leonardo Crauss Daronco
1320fcb900 Move common rap functionality to a base class
Moved all workers to a common directory, inheriting from a common base
class that has all common methods used by all workers.
2017-07-13 14:36:44 -03:00
Leonardo Crauss Daronco
72813a908c Move sanity, process and publish rap workers to run in resque
Same as 1bcdc45 but for the other scripts.
2017-07-13 14:36:43 -03:00
Leonardo Crauss Daronco
5aeeee25fd Move rap archive to resque, first step on moving all steps to resque
For now the differences are that the archive worker will run inside
resque (it is a resque worker now) and there is a "rap-trigger" file that
is executed by systemd to detect recordings that need to be archived and
add a job on resque to archive them.

The process os scheduling jobs still needs to be reviewed, but for now will
be done by rap-trigger.
2017-07-13 14:36:43 -03:00
Pedro Beschorner Marin
2097b611ed Merge remote-tracking branch 'prlanzarin/1.1-transcode-screenshare-merge' into bigbluebutton/bbb-2.x-mconf
Conflicts:
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/LiveMeeting.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/MeetingActor.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/MessageSenderActor.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/api/InMessages.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/api/OutMessages.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
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/UsersModel.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/endpoint/redis/AppsRedisSubscriberActor.scala
	bbb-common-message/src/main/java/org/bigbluebutton/common/messages/RegisterUserMessage.java
	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/present/ui/views/PresentationWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/managers/WebRTCDeskshareManager.as
	bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/model/ScreenshareOptions.as
	bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/view/components/ScreensharePublishWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/screenshare/view/components/ScreenshareViewWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/maps/VideoEventMap.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/UserGraphicHolder.mxml
	record-and-playback/core/scripts/rap-process-worker.rb
2017-07-11 20:41:38 +00:00
Calvin Walton
a28efe68d0 Don't crash on IME-inserted captions
Current BBB client is generating invalid indexes when characters are
inserted with an IME - the edit indexes are as if the preedit text was
being removed, but the preedit text was never sent in the first place.

For now, just don't crash if there's an edit that would remove text
which is past the end of known text. The result might be broken, but
it won't prevent the rest of the recording from working.
2017-06-13 16:02:03 -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
Calvin Walton
11da0b61e0 Update caption track generation based on feedback
I've had a chance to see how this script behaves with actual live
caption tracks now, and there's room for improvement. In particular,
it often generates cues that overlap - the next one appears before the
previous one disappears. The browser player position handles this
really poorly, and it's nearly unreadable.

The solution is to, if two cues would overlap, merge them into a
single multiline cue that displays for the full time. This is a lot
easier to read.

Some extra code is added to de-overlap any remaining cues (e.g. if
there's a third cue that would also overlap). This will reduce the
time that the earlier cue gets shown below my preferred minimum, but
not really much we can do about that if people are talking/typing
quickly.

The code can easily be tweaked to set a different number of maximum
lines per cue if desired.
2017-06-06 09:24:14 -04: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
Ghazi Triki
7d283cd154 Merge remote-tracking branch 'bigbluebutton/master' into merge-master-into-2x
# Conflicts:
#	bigbluebutton-client/resources/config.xml.template
#	bigbluebutton-client/src/org/bigbluebutton/modules/phone/PhoneOptions.as
#	bigbluebutton-client/src/org/bigbluebutton/modules/phone/views/components/ToolbarButton.mxml
#	record-and-playback/core/scripts/rap-process-worker.rb
2017-05-22 17:35:24 +01: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
Calvin Walton
da79d1e3b3 rap-process-worker: Write processing_time file only if processing succeeded
If processing didn't succeed, the directory where it is trying to write
the file might not exist, causing an exception in the worker which leads
to it getting stuck in a retry loop.
2017-05-08 16:10:59 -04:00
Felipe Cecagno
9f6ef49847 check if the deskshare video file is valid before processing it 2017-05-07 19:12:34 -03:00
Richard Alam
c733f4eafc Merge branch 'master' of https://github.com/bigbluebutton/bigbluebutton into bbb-2.x-dev-mconf 2017-04-27 14:52:47 -07:00
Pedro Beschorner Marin
000d0a038e Fixed multiline text annotations in playback 2017-04-27 17:43:35 +00:00
Pedro Beschorner Marin
b52bf09a45 Fixed wrong font sizes and placement in playback so now they match the annotated text from the presentation 2017-04-27 17:31:48 +00:00
Pedro Beschorner Marin
d55f0dddf5 Fixed multiline text annotations in playback 2017-04-26 18:59:55 +00:00
Calvin Walton
da79ecdada Handle BBB 0.81 slide/pageNumber base mismatch
In BBB 0.81, the slide number was base 0, while the shape page number was
base 1. We already have a conditional for checking 0.9+; use that to
add a workaround for old BBB recordings.
2017-04-26 14:02:52 -04:00
Calvin Walton
a5adebd3e0 Use the presentation name/page number to match shapes to pages, not time.
The previous code assumed that if a shape event's timestamp was during the
time when a particular slide was visible, then the shape belonged to that
slide. This isn't always true with the text shapes, since a final close
event can be sent after the slide has switched.

For a more future-proof matching, use the presentation name and page number
fields on the shape events when available to match them with the appropriate
slide image.
2017-04-26 14:02:52 -04:00
Pedro Beschorner Marin
660574fcfa Fixed wrong font sizes and placement in playback so now they match the annotated text from the presentation 2017-04-26 14:18:08 +00:00
Pedro Beschorner Marin
cab466e926 Merge pull request #399 from fcecagno/fix-deskshare-ser
recording: Run the 'ser' fixup tool on deskshare videos, too
2017-04-17 13:59:11 -03:00
Richard Alam
262c7250c8 Merge branch 'master' with bbb-mconf 2017-04-17 15:57:31 +00:00
Calvin Walton
d00024d569 recording: also archive .flv.ser files from deskshare directory 2017-04-16 17:28:37 -03:00
Calvin Walton
f5731b74c5 recording: Run the 'ser' fixup tool on deskshare videos, too
Since the deskshare videos are saved in flv files by red5, they can
have the same partially written file issue as seen on webcams.
2017-04-16 17:20:43 -03:00
alexandre
f8c976fd54 Certifying that we process the audio before getting it in AudioProcessor 2017-04-13 17:23:13 -03:00
alexandre
cf176a6990 Saving processed audio and using it to process webcam videos
Webcam videos processing was processing the audio again.
2017-04-13 15:58:17 -03:00
Pedro Beschorner Marin
c45e14e185 Alexandre's fit-to-width height scaling fix 2017-04-11 20:50:53 +00:00
Pedro Beschorner Marin
086ea510c4 Avoid keeping unwanted annotations when seeking over the playback. This fixes a major bug but loses some of the smoothness that I could't avoid 2017-04-11 20:47:30 +00:00
Felipe Cecagno
0253fd5a38 improve readability; fix indentation 2017-04-07 22:16:36 -03:00
Felipe Cecagno
287395454a Merge remote-tracking branch 'alexandre/mconf' into mconf 2017-04-07 22:11:38 -03:00
alexandre
2dd61df1c6 Handling fit-to-width events in recording playback
The playback had no handling for this type of event. The aspect ratio used to calculate the max-width of the slide div has to be the vbox aspect ratio.
2017-04-07 17:09:54 -03:00
Calvin Walton
e77b50d2c6 recording presentation: Reduce the top/bottom margin so bars fit better
gnuplot's auto-margins don't work well on this graph, so manually specify
the top/bottom (actually left/right - the graph is rotated 90°) to make
the bars fit better, particularly when using wide aspect ratio slides.
2017-04-06 18:04:10 -04:00
Calvin Walton
0a1667f293 recording presentation: Correctly calculate width of bar in poll results
The code was previously dividing by the total number of votes rather than
the max number of votes, which meant it was underestimating the width of
the bars. In some cases, this meant that the label for number of votes would
overlap the percentages.

Fixes #3725
2017-04-06 14:35:31 -04:00
Pedro Beschorner Marin
f59e42bb02 Merge remote-tracking branch 'bigbluebutton/master' into merging-into-bbb-1.1 2017-04-04 20:42:15 +00:00
Pedro Beschorner Marin
84fd8d4101 Branding back to BigBlueButton and adding back some of the client images we removed. This need to be reviewed to avoid having all this unused images! 2017-04-03 17:06:16 +00:00
Felipe Cecagno
2b9dcc37de process recordings in chronological order 2017-04-01 20:00:37 -03:00
Chad Pilkey
1e4baeaffa fix the recording play button to work with devices that have touch and a mouse 2017-03-23 15:38:28 -04:00
Fred Dixon
cd491c67b6 Moved the recording systemd scripts into the core directory 2017-03-23 10:36:10 -05:00
Calvin Walton
dd23536c84 record-and-playback: Split rap-worker into separate workers per step.
The purpose of this is to ensure that the recording processing with make
visible forwards progress, by ensuring that different steps in the
recording pipeline don't block each-other.

This fixes:
- recordings being processed prevent archiving new recordings from running
- recordings can't be published until all pending recording processing
  completes

It does allow recording archive, sanity, process, publish steps to run in
parallel with each other, but at most one recording will be in each step at
a time. (I.e. while one recording is being processed, a different recording
can be published). This may potentially increase CPU usage for some users.
If you expect this to be a problem, you can set resource controls (see
`man systemd.resource-control`) on the bbb_record_core.slice systemd unit.
2017-03-22 17:20:29 -04:00
Pedro Beschorner Marin
38aef723d7 Updating presentation_export with closed caption feature 2017-03-22 19:20:20 +00:00
Pedro Beschorner Marin
0592568ac8 Adding back some methods that were excluded from master but we were using for screenshare's playback annotations 2017-03-22 17:31:35 +00:00
Pedro Beschorner Marin
0ab207c997 Merge remote-tracking branch 'mconf/mconf' 2017-03-21 19:47:11 +00:00
Pedro Beschorner Marin
c74cc682c4 Merge remote-tracking branch 'mconf/mconf' 2017-03-20 19:45:59 +00:00
Richard Alam
3c397d8d71 - fix copying of meeting element into metadata.xml 2017-03-15 09:45:58 -07:00
Richard Alam
72c42f9d70 - build get recordings api response 2017-03-13 21:43:39 +00:00
Richard Alam
4e59521268 - store breakout metadata and breakout rooms in events.xml only if they are present. 2017-03-10 19:39:20 +00:00
Richard Alam
71bcd779b7 - process breakout rooms in events.xml and metadata.xml 2017-03-09 23:01:15 +00:00
Fred Dixon
5eea825e7f Merge pull request #3695 from kepstin/presentation-question-mark
Correctly use jquery to modify links in chat messages.
2017-03-01 14:39:57 -05:00
Calvin Walton
e782709913 Correctly use jquery to modify links in chat messages.
The code was previously passing the message string provided by the user
directly to jQuery - which works okish if the first character is '<' since
it'll parse it as HTML, but the chat messages don't. As a result, it was
sometimes being parsed as a selector, failing, and raising an exception.

The fix is to put the chat message into a DOM node (have the browser parse
the HTML) before doing the jQuery operation to modify the link targets.

Fixes #3670
2017-03-01 10:38:39 -05:00
Pedro Beschorner Marin
d7a0493da4 Updated presentation_export 2017-02-24 20:03:47 +00:00
Felipe Cecagno
c8a91bc6d4 avoid breaking if there's no deskshare.xml in the published presentation recording
Conflicts:
	record-and-playback/presentation/playback/presentation/0.9.0/lib/writing.js
2017-02-24 19:54:40 +00:00
Pedro Beschorner Marin
490ecd2157 Reverting some modifications made in presentation publish script for deskshare video 2017-02-24 13:46:32 +00:00
Pedro Beschorner Marin
3e43602b33 Changed deskshare start/stop matching method 2017-02-23 20:17:16 +00:00
Pedro Beschorner Marin
6787915e0e Refactored deskshare video recording 2017-02-23 18:21:10 +00:00
alexandre
ccd4bc4268 Removing timeline attribute for deskshare video
We don't need it. This causes duplicate chat messages in recording playback.
2017-02-16 17:24:33 -02:00
Pedro Beschorner Marin
7a4cd67fc3 Adjusting playback to work with old recordings 2017-02-14 13:52:44 +00:00
alexandre
f39874ac9b Returning number of users that participated in each meeting in getRecordings call
Resolves #3623
2017-02-10 16:19:32 -02:00
Richard Alam
d26c6d5305 Merge pull request #3581 from kepstin/sanity-deskshare-fixup
recording: Run the 'ser' fixup tool on deskshare videos, too
2017-02-02 11:45:36 -05:00
alexandre
dfa5a305cc Handling deskshare when closing meeting or stop recording
Closing the room or stopping recording with an active deskshare was producing an incorrect recording
2017-02-01 16:38:39 +00:00
Pedro Beschorner Marin
efb9082b9d Hiding deskshare cursor 2017-02-01 14:15:55 +00:00
Pedro Beschorner Marin
b91535741b Refactored canvas handling 2017-01-31 14:06:38 +00:00
Pedro Beschorner Marin
0647cdf3b1 Fixed NPE and did some cursor drawing refactoring at playback 2017-01-31 13:45:43 +00:00
Pedro Beschorner Marin
91092e066a Fixed playback when there is no deskshare canvas 2017-01-27 17:01:59 +00:00
Pedro Beschorner Marin
b89a31bb9a Merge remote-tracking branch 'playback-speedup' into mconf
Conflicts:
	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
	record-and-playback/presentation_export/playback/presentation_export/lib/writing.js
2017-01-26 18:10:20 +00:00
alexandre
b19ce7f714 In recording playback, chat links open in a new tab
Fixes #3590
2017-01-25 18:21:49 -02:00
Calvin Walton
c885fc3ec4 recording: also archive .flv.ser files from deskshare directory 2017-01-20 13:34:16 -05:00
Calvin Walton
f7f3b79ae4 recording: Run the 'ser' fixup tool on deskshare videos, too
Since the deskshare videos are saved in flv files by red5, they can
have the same partially written file issue as seen on webcams.
2017-01-20 13:23:36 -05:00
alexandre
ac094aa89a Restoring annotations when swapping presentation with video
Fixes #3561
2017-01-13 17:03:05 -02:00
alexandre
dde5f23188 Fixing misalignment when swapping presentation with video
To swap presentation with video we need to retrieve what was the current viewbox size and set it again.

Fixes #3545
2017-01-11 18:05:30 -02:00
Calvin Walton
b077d48644 Drop chrome frame support
Chrome frame has been discontinued for quite a while. The playback code actually
does work in IE if you install an extra codec pack or switch the video format used.
2017-01-06 10:31:29 -05:00
Calvin Walton
dadeb40fa0 Add a callback to sync popcorn initialization after video element is ready.
Due to the extra delays added by setting up the closed captions, it happens more
often that the writing.js code will attempt to initialize popcorn on the video
element before the video element actually exists on the page.

(This was always a problem, it's just worse now)

Add a synchronization point which will delay the popcorn initialization until the
video element is ready.
2017-01-06 10:30:31 -05:00
Calvin Walton
2aa3ebb16b "use strict"; should never be used at top level in a JS file
This can create weird conflicts when using other libraries
2017-01-06 10:19:38 -05:00
Pedro Beschorner Marin
e5f6ce8185 Make sure to create video element before running Popcorn 2017-01-03 13:13:36 +00:00
Pedro Beschorner Marin
adbb81e1c5 Cleanup 2016-12-21 18:35:21 +00:00
Pedro Beschorner Marin
85fdf9c79f Updated presentation_export with new deskshare features 2016-12-21 17:26:11 +00:00
Pedro Beschorner Marin
9646bd4cef Fixed annotations to work with Chrome 2016-12-21 16:47:42 +00:00
kreismann
4e2dc4077a Fixing deskshare video positioning
This also fixes deskshare video/user video swap on playback.
2016-12-20 13:36:02 -02:00
kreismann
f93114e207 Fixing deskshare panzooms
- Getting slide dimensions to properly set the panzoom event when deskshare stops.
- Sometimes there's a panzoom event with the deskshare image dimension at time=stop_timestamp+0.1. We remove it.
- Little refactoring
2016-12-19 15:11:32 -02:00
Pedro Beschorner Marin
0223faec5a Positioning cursor over deskshare whiteboard on the playback 2016-12-16 12:49:46 +00:00
Pedro Beschorner Marin
8ca6ecacee Merge remote-tracking branch 'alexandrekreis/mconf' into deskshare-whiteboard 2016-12-15 17:20:08 +00:00
Pedro Beschorner Marin
ac9504fdd2 Annotations over deskshare whiteboard at playback 2016-12-15 17:19:10 +00:00
kreismann
6a29fd832e Handling deskshare on processClearEvents 2016-12-14 14:50:34 -02:00
kreismann
37660e4e13 Fixing some bugs
- Properly inserting deskshare panzoom events. We insert a panzoom event with the deskshare video dimensions and the deskshare start timestamp. Immediately, we insert another panzoom event with the previous slide dimensions and the deskshare stop timestamp, deleting any other panzoom event inside this interval of time.
- Handling when deskshare events occur in timestamp = 0.0
- For now, we are limiting the max dimensions to 1280x720
2016-12-12 16:29:06 -02:00
Jesus Federico
62bd4a587c Merge pull request #3489 from kepstin/gen-webvtt-iterparse
gen_webvtt: Parse entire events file, instead of iterparse
2016-12-07 11:38:14 -05:00
Calvin Walton
b2c1f00356 Merge pull request #3472 from jfederico/fix-recording-preview-alt-error
record-and-playback: Fixed issue with text gathered from slids used o…
2016-12-07 11:30:59 -05:00
kreismann
be87eeddbd Creating only one image for deskshare
So we can retrieve deskshare history. Still need to adapt the size of annotations on different deskshare resolutions.
2016-12-02 17:40:50 -02:00
Calvin Walton
fb3a913b5b gen_webvtt: Parse entire events file, instead of iterparse
The iterparse mode doesn't correctly handle long multi-byte UTF-8
characters with some versions of lxml library or libxml version.
2016-12-02 14:33:06 -05:00
kreismann
6aeabb9293 Correctly handling multiple deskshare events inside a slide interval of time 2016-12-02 15:34:49 -02:00
Pedro Beschorner Marin
5563e607fc Changed loading bar theme 2016-12-02 13:50:00 +00:00
Pedro Beschorner Marin
0248d42179 Updated presentation_export with new deskshare features, loading bar and JSON slides text file 2016-12-01 20:04:06 +00:00
Pedro Beschorner Marin
e5c48cb7be Replaced the playback spinner for a loading bar and included a not-found meeting fallback page 2016-12-01 18:13:26 +00:00
kreismann
fe9fde2330 Getting flv resolution to set deskshare image and pan/zoom dimensions 2016-11-30 16:31:19 -02:00
Pedro Beschorner Marin
b762795cc9 Cleanup 2016-11-29 17:33:05 +00:00
kreismann
e27c291ee0 Recording playback shows whiteboard annotations on deskshare video as well
Pending issues:
- Image and ViewBox sizes are hardcoded (1280x720 - a full screen deskshare video). In order to work with region deskshare videos, we must get the flvs resolutions and set shapes.svg and panzooms accordingly.
- We're not considering the deskshare annotations history yet
2016-11-29 15:08:28 -02:00
Pedro Beschorner Marin
c8acfbf65a Getting slides associated text from a single JSON file 2016-11-29 14:00:19 +00:00
Calvin Walton
bd8baed660 Fix typo in recording sanity script.
This caused it to think all video files were corrupt.
2016-11-21 15:01:54 -05:00
jfederico
161cab8234 record-and-playback: Fixed issue with text gathered from slids used on preview 2016-11-17 15:59:07 -05:00
Fred Dixon
0b9fc8b143 Merge pull request #3434 from kepstin/recording-cleanup
RnP: Improve error handling in video_info, audio_info functions
2016-11-11 12:14:55 -05:00
Fred Dixon
8b0a3dff50 Update Gemfile.lock for 1.1-dev 2016-11-10 10:03:17 -06:00
jfederico
737697968c record-and-playback: Removed preview extension (thumbnails) from recordings when only has default presentation 2016-11-07 18:50:28 +00:00
kreismann
c3b0bd46b2 Deskshare video positioning
Applying slide resizing algorithm to deskshare video as well. Also, removing deskshare-video-area.
2016-11-01 17:39:06 -02:00
jfederico
64a4f4dc08 record-and-playback: Encoded text coming from the slide for being used in thumbnails 2016-10-27 17:35:58 -04:00
Richard Alam
ece6edcb12 - fix check for breakout room
- insert breakout metadata into events.xml
 - delete breakout metadata from redis
2016-10-21 19:05:30 +00:00
kreismann
73603d5d68 Presentation area of the recording playback also shows deskshare video
This is a demo. Some issues:

- When sharing desktop, cursor is still relative to slides, and not to deskshare video;
- Need to show whiteboard canvas on top of deskshare video as well;
- Need more testing (audio/video sync, playback perfomance, multiple presenters and multiple deskshare events).
2016-10-20 17:39:35 -02:00
Felipe Cecagno
ab8eb279a0 Merge pull request #342 from pedrobmarin/recording-events-improvments
Recording events improvments
2016-09-29 15:19:50 -03:00
jfederico
d2a633a27b record-and-playback: Forced alt to be included as part of the image thumbnail element in preview extension 2016-09-27 16:02:20 -04:00
jfederico
1a4438d459 record-and-playback: Fixed issue with presentations containing less than 3 slides 2016-09-27 15:19:53 -04:00
jfederico
78cb599a5b record-and-playback: removed text element from extension preview 2016-09-22 13:11:01 -04:00
jfederico
e0b6a9ebf8 recording-and-playback: Removed log used for debugging 2016-09-21 17:31:40 -04:00
jfederico
59c67809d0 recording-and-playback: Added alt text to the preview per slide 2016-09-21 16:39:32 -04:00
Pedro Beschorner Marin
694c9564a5 Added record_id to redis recording events 2016-09-21 20:12:57 +00:00
Pedro Beschorner Marin
49d5f9c41c Refactored redis recording events 2016-09-21 16:32:11 +00:00
jfederico
8adf729e0f recording-and-playback: Added general text to the preview 2016-09-20 16:46:45 -04:00
jfederico
45ba7d85c2 record-and-playback: Filtered presentation files to provide only the first thumbnail for default.pdf 2016-09-20 14:10:28 -04:00
Calvin Walton
ef607f0e44 RnP: Improve error handling in video_info, audio_info functions 2016-09-20 13:22:50 -04:00
jfederico
f9d76b4739 recording-and-playpack: Includes thumbnails as an extension of the playbacks 2016-09-19 18:09:31 -04:00
jfederico
90108bf29c record-and-playback: Include default thumbnails into recordings 2016-09-19 14:52:32 -04:00
Felipe Cecagno
79c3c12256 Merge branch 'merge-presentation-deskshare' into mconf
Conflicts:
	bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/view/components/DesktopPublishWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/view/components/DesktopViewWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/PresentationWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/whiteboard/views/WhiteboardToolbar.mxml
	record-and-playback/presentation/playback/presentation/0.9.0/lib/writing.js
2016-09-14 14:49:48 -03:00
kreismann
b961e197c5 Not showing annotation canvas while sharing desktop in recording
1. We create a deskshare.xml with start and stop timestamps of each deskshare event
2. We read it in playback e use its information to hide the annotation canvas and cursor accordingly
2016-09-09 18:31:27 -03:00
Calvin Walton
c730681183 Improve detection of corrupt videos via ffprobe 2016-09-06 18:15:31 -04:00
Calvin Walton
f112be7638 Fix errors in recording scripts.
Logger was apparently imported by the matterhorn stuff ?! so move that
to the main library.

Fix a variable reference in sanity.
2016-09-03 16:08:32 -04:00
Calvin Walton
8ede6d06ee Remove a few matterhorn references that were missed. 2016-09-02 17:45:10 -04:00
Calvin Walton
13b9022282 Update the Gemfile.lock file to match gem changes 2016-09-02 16:40:27 -04:00
Calvin Walton
2cd9565d52 Improve wave length guessing
Instead of assuming that wav files have 44 byte headers (they usually
don't - freeswitch adds some metadata tags), add a super-simple wave
file parser that just finds the offset where the audio data actually
starts.
2016-09-02 16:40:27 -04:00
Calvin Walton
f815fd0d70 Remove a bunch of unused/old audio processing code.
The sanity check script was using one of the functions; it's been
changed to use a function from the EDL audio code instead.
2016-09-02 16:40:27 -04:00
Calvin Walton
0f29a6e5f9 Drop streamio-ffmpeg from required gems
It's no longer used anywhere in the recording processing, and the one
remaining use in the sanity script can be replaced with a (less buggy!)
function from the video EDL code.
2016-09-02 16:40:27 -04:00
Calvin Walton
b4d902cd9a Drop old/broken matterhorn script, and old video processing code. 2016-09-02 16:40:27 -04:00
Felipe Cecagno
4aa2a732e2 Merge branch 'mconf-live0.7.5' of github.com:mconf/bigbluebutton into mconf
Conflicts:
	record-and-playback/presentation/playback/presentation/0.9.0/lib/writing.js
2016-09-01 18:00:43 -03:00
Felipe Cecagno
c2a2b7c87a enable mconf-decrypter to fetch the recordings even if mconf-live is using a self-signed certificate 2016-09-01 17:56:55 -03:00
Felipe Cecagno
c5917f6a92 update presentation_export playback to be responsive as the playback format 2016-09-01 14:07:33 -03:00
Felipe Cecagno
d884264852 update Gemfile and Gemfile.lock, will start to deploy Gemfile.lock and execute ruby using bundler 2016-08-18 16:23:33 -03:00
Felipe Cecagno
714aba46ef set to debug some of the new log messages on mconf-decrypter 2016-08-18 16:22:40 -03:00
Leonardo Crauss Daronco
d860d166df Make mconf-decrypter work with HTTPS and redirects
It now works with HTTPS URLs and will follow one redirect. The redirect is
useful for when the server being requested redirects HTTP to HTTPS.
2016-08-16 13:09:19 -03:00
Fred Dixon
8f5173710d Merge pull request #3283 from kepstin/recording-cleanups
Recording cleanups
2016-08-12 16:19:39 -04:00
Calvin Walton
ab0dac1192 Don't appy recording marks twice to audio 2016-08-12 15:53:56 -04:00
Calvin Walton
fc4ae4c6b4 RnP: Use correct directory when loading captions.json 2016-08-12 15:41:41 -04:00
Calvin Walton
d06b3468ac Minor playback.js cleanups
Use a function that handles parameters correctly when updating the
timestamp in the url for links, fix indentation in caption loading code.
Treat exceptions when checking for url existence as errors.
2016-08-12 15:24:55 -04:00
Calvin Walton
e4735a12b3 Various updates to the rnp edl handling
Main change is to rewrite the start/stop event handling to do fewer
passes and use simpler logic (it no longer has to track durations).

The temporary work audio codec is switched to flac; slightly lower hard
drive use and it avoids the 4-hour length limit of wav.

Some improvements to the video seeking when processing deskshare and
webcam videos, to avoid video dropouts.

Tweaks to the audio encoding quality settings.

Remove an unused function.
2016-08-12 14:17:51 -04:00
Calvin Walton
bfb987dc01 Make shape rendering in presentation recordings closer to live BBB 2016-08-12 11:53:01 -04:00
Calvin Walton
c4d4e1a08a RnP: Generate blank video when the recording has captions
Right now the captions are only rendered if there's a video present. If
the meeting doesn't have a video (webcam or desktop sharing), we'll need
to just make up a blank one.
2016-08-04 13:23:15 -04:00
Calvin Walton
a280a0d0ef RnP: Hack acornmediaplayer to use browser captions 2016-08-02 16:32:11 -04:00
Calvin Walton
dfce828e93 RnP: Add <track> elements for available captions 2016-08-02 15:31:46 -04:00
Calvin Walton
d4380ce012 RnP: Check if the captions.json is available 2016-08-02 15:15:09 -04:00
Calvin Walton
b589c25831 Fix reference to deleted 'webrtc_deskshare_archiver' 2016-08-02 14:31:20 -04:00
Calvin Walton
d4e7605f42 RnP: Fix use of deprecated IO#lines in logging functions 2016-08-02 10:58:42 -04:00
Calvin Walton
2b8d7a9858 Merge remote-tracking branch 'origin/master' into recording-captions 2016-08-02 10:49:05 -04:00
Felipe Cecagno
f44c25f3f6 do not use hardcoded http to load resources in the playback 2016-08-01 23:53:49 -03:00
Pedro Beschorner Marin
abebee010f Merge branch 'daronco/responsive-playback' into mconf
Conflicts:
	record-and-playback/presentation/playback/presentation/0.9.0/logo.png
	record-and-playback/presentation/playback/presentation/0.9.0/playback.html
2016-07-12 16:26:47 +00:00
Pedro Beschorner Marin
fac305f8f6 Merge commit '427a288dfe61cfdb28cc1c20a11a36c84f3a33d9' from daronco/responsive-playback into bigbluebutton/v1.0.x-release
Conflicts:
	record-and-playback/presentation/playback/presentation/0.9.0/playback.html
2016-07-12 14:21:04 +00:00
Fred Dixon
4628fd3a7a Update bbb-0.9-beta-recording-update 2016-06-26 11:52:09 -04:00
Pedro Beschorner Marin
4c432ee5bd Merge branch 'feature-1931' into rafafp-branches-merged-1.0
Conflicts:
	bigbluebutton-client/branding/default/style/css/BBBDefault.css
	bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatBox.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatToolbar.mxml
	record-and-playback/presentation/scripts/publish/presentation.rb
2016-06-22 13:06:51 +00:00
Richard Alam
58c239bc43 Merge branch 'master' into merge-bbb-1.1-dev-java8-with-master
Conflicts:
	akka-bbb-apps/build.sbt
	akka-bbb-apps/src/main/java/org/bigbluebutton/core/api/IBigBlueButtonInGW.java
	akka-bbb-apps/src/main/resources/application.conf
	akka-bbb-apps/src/main/scala/org/bigbluebutton/Boot.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/BigBlueButtonActor.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/BigBlueButtonInGW.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/MeetingActor.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/MeetingModel.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/MessageSenderActor.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/RecorderActor.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/api/InMessages.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/api/OutMessages.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/api/ValueObjects.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/WhiteboardApp.scala
	akka-bbb-fsesl/build.sbt
	akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/pubsub/receivers/RedisMessageReceiver.java
	akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/voice/freeswitch/ConnectionManager.java
	akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/voice/freeswitch/FreeswitchApplication.java
	bbb-common-message/build.sbt
	bbb-common-message/src/main/java/org/bigbluebutton/common/messages/Constants.java
	bbb-common-message/src/main/java/org/bigbluebutton/common/messages/MessagingConstants.java
	bbb-common-message/src/main/java/org/bigbluebutton/common/messages/Util.java
	bigbluebutton-apps/build.gradle
	bigbluebutton-apps/src/main/java/org/bigbluebutton/red5/pubsub/redis/RedisPubSubMessageHandler.java
	bigbluebutton-apps/src/main/webapp/WEB-INF/red5-web.xml
	bigbluebutton-client/build.xml
	bigbluebutton-client/resources/config.xml.template
	bigbluebutton-client/resources/prod/BigBlueButton.html
	bigbluebutton-client/src/org/bigbluebutton/common/Images.as
	bigbluebutton-client/src/org/bigbluebutton/main/maps/ApplicationEventMap.mxml
	bigbluebutton-client/src/org/bigbluebutton/main/model/users/Conference.as
	bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/utils/JavaCheck.as
	bigbluebutton-client/src/org/bigbluebutton/modules/users/services/MessageReceiver.as
	bigbluebutton-web/build.gradle
	bigbluebutton-web/grails-app/conf/spring/resources.xml
	bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
	bigbluebutton-web/src/java/org/bigbluebutton/api/MeetingService.java
	bigbluebutton-web/src/java/org/bigbluebutton/api/domain/Meeting.java
	bigbluebutton-web/src/java/org/bigbluebutton/api/messaging/MeetingMessageHandler.java
	bigbluebutton-web/src/java/org/bigbluebutton/api/messaging/RedisMessagingService.java
	record-and-playback/core/scripts/bigbluebutton.yml
2016-05-16 11:35:36 -04:00
Richard Alam
7ae9b7b204 Merge branch 'merge-webrtc-ds' of https://github.com/antobinary/bigbluebutton into antobinary-merge-webrtc-ds
Conflicts:
	akka-bbb-apps/build.sbt
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/UsersApp.scala
	akka-bbb-fsesl/build.sbt
	akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/voice/freeswitch/ESLEventListener.java
	akka-bbb-fsesl/src/main/scala/org/bigbluebutton/freeswitch/VoiceConferenceService.scala
	bbb-common-message/build.sbt
	bbb-common-message/src/main/java/org/bigbluebutton/common/messages/Constants.java
	bbb-common-message/src/main/java/org/bigbluebutton/common/messages/Util.java
	bigbluebutton-apps/build.gradle
	bigbluebutton-web/grails-app/conf/spring/resources.xml
	bigbluebutton-web/src/java/org/bigbluebutton/api/MeetingService.java
2016-05-20 20:27:52 +00:00
Leonardo Crauss Daronco
da07d4513f Merge remote-tracking branch 'upstream/master' into responsive-playback 2016-05-18 17:19:44 -03:00
Anton Georgiev
c2e6fb9a72 undo some of the webrtc ds record changes 2016-05-18 17:34:30 +00:00
Anton Georgiev
92d6351c55 undo some of the webrtc ds record changes 2016-05-18 17:21:15 +00:00
Anton Georgiev
228dfb4061 Merge branch 'mod-verto-1' of github.com:antobinary/bigbluebutton into merge-webrtc-ds
Conflicts:
	akka-bbb-apps/build.sbt
	akka-bbb-apps/src/main/resources/application.conf
	akka-bbb-apps/src/main/scala/org/bigbluebutton/SystemConfiguration.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/MessageSenderActor.scala
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/UsersApp.scala
	akka-bbb-fsesl/build.sbt
	bbb-common-message/build.sbt
	bbb-fsesl-client/build.sbt
	bbb-fsesl-client/src/main/java/org/freeswitch/esl/client/inbound/Client.java
	bigbluebutton-apps/build.gradle
	bigbluebutton-client/build.xml
	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/users/services/MessageReceiver.as
	bigbluebutton-html5/app/client/NotificationControl.coffee
	bigbluebutton-html5/app/client/globals.coffee
	bigbluebutton-html5/app/client/lib/bbb_api_bridge.coffee
	bigbluebutton-html5/app/client/main.coffee
	bigbluebutton-html5/app/client/main.html
	bigbluebutton-html5/app/client/stylesheets/whiteboard.less
	bigbluebutton-html5/app/client/views/chat/chat_bar.coffee
	bigbluebutton-html5/app/client/views/modals/settings.coffee
	bigbluebutton-html5/app/client/views/modals/settings.html
	bigbluebutton-html5/app/client/views/users/user_item.coffee
	bigbluebutton-html5/app/client/views/whiteboard/whiteboard.coffee
	bigbluebutton-html5/app/client/views/whiteboard/whiteboard.html
	bigbluebutton-html5/app/collections/collections.coffee
	bigbluebutton-html5/app/config.coffee
	bigbluebutton-html5/app/lib/router.coffee
	bigbluebutton-html5/app/server/collection_methods/meetings.coffee
	bigbluebutton-html5/app/server/collection_methods/users.coffee
	bigbluebutton-html5/app/server/publish.coffee
	bigbluebutton-html5/app/server/server.coffee
	bigbluebutton-web/src/java/org/bigbluebutton/api/MeetingService.java
	record-and-playback/presentation/scripts/process/presentation.rb
	record-and-playback/presentation/scripts/publish/presentation.rb
2016-05-18 15:14:04 +00:00
Leonardo Crauss Daronco
427a288dfe Fix clicks on the thumbnails in the playback page
Wasn't binding to events in the proper order, causing cliks in a thumbnail
not to behave properly.
2016-04-29 16:11:48 -04:00
Leonardo Crauss Daronco
0d5bda9d73 Improve playback buttons and update colors in the playback page
Bigger and more well spaced buttons, specially in small screens.
Also updated the colors to match the latest design definitions.
2016-04-29 15:59:45 -04:00
Leonardo Crauss Daronco
af27a69ef8 Fix playback of recordings not loading on firefox mobile
The event "loadeddata" is only triggered on firefox mobile once the
video/audio is played, so it requires the user to click on the play button
for it to be triggered.
The playback page was waiting for the event to be triggered before
removing the "loading" page, and that would never happen on firefox mobile.

Now we don't wait anymore for the video to be loaded, we just wait for
the slides and the initial setup.
2016-04-28 18:55:09 -04:00
Leonardo Crauss Daronco
6094c8ceee Stack recording playback components when in portrait mode 2016-04-28 14:35:47 -04:00
Leonardo Crauss Daronco
2b20824b99 Small fix/protection in the js of the playback page 2016-04-28 10:36:39 -04:00
Leonardo Crauss Daronco
f35c010864 Fix the slide size on video/presentation swap in a paused playback
Resize the slides after swapping presentation and video, so that it fits
the new region properly.
2016-04-27 16:20:31 -04:00
Leonardo Crauss Daronco
488734abc1 Add protections to the js and improve the swap in the playback page
When swapping video and presentation now the presentation is updated
properly, before it would not show any slide until there was a slide
change.

Also added a few protections to prevent js code from breaking.
2016-04-27 15:53:39 -04:00
Leonardo Crauss Daronco
b55a7c4ad5 Show BigBlueButton's logo in the playback page as bg when loaded 2016-04-27 11:13:36 -04:00
Leonardo Crauss Daronco
1a3b5381d4 Fix pan and zoom in the responsive playback page
When pan/zoom was done, the image would zoom and move inside the svg, that
occupied a larger area than the viewbox we wanted to show.

Had to control the size of the container that has the svg via javascript,
to make it exactly the size we want to display the presentations and with
this crop all parts of the presentation that lie outside the container.
2016-04-27 10:46:29 -04:00
Leonardo Crauss Daronco
a3afed36fe Better visual for copyright and chat in the playback page
Small changes in text formatting and positioning.
2016-04-26 19:04:27 -04:00
Leonardo Crauss Daronco
2778768521 Fix cursor position in the playback page when the sidebar is open
The cursor was being moved to the right more than it should when the
sidebar was opened.
2016-04-26 17:58:54 -04:00
Leonardo Crauss Daronco
7fb5b134db Fix recording playback layout when there's no video 2016-04-26 17:53:11 -04:00
Leonardo Crauss Daronco
eb1940d4e3 Set the meeting name as title in the recording playback page 2016-04-26 17:14:41 -04:00
Leonardo Crauss Daronco
327a63bd9f Move the copyright msg to the bottom in the rec playback page
And some small improvements in the thumbnails.
2016-04-26 16:36:37 -04:00
Leonardo Crauss Daronco
59842c7134 Add thumbnails to the responsive recording playback page 2016-04-26 16:18:42 -04:00
Leonardo Crauss Daronco
f0b511baf5 Fix cursor positioning in the recording playback page
Wasn't being shown after the page was made responsive. Now it shows up
in the correct place and disappears when not necessary.
2016-04-26 14:03:24 -04:00
Leonardo Crauss Daronco
af5e9fc2d5 Better and more consistent rec playback layout for small/large screens 2016-04-25 18:24:56 -04:00
Calvin Walton
b50a3020b1 Caption: Handle forced line break directly after wrap correctly.
When the next line break after a wrap induced due to line length was a
hard line break, the hard line break would override the soft line break,
resulting in over-long lines, and the last word would be repeated on the
last line.

Move the hard break code into an else branch so it's only applied if we
haven't already done a word wrap on this line.
2016-04-04 16:11:48 -04:00
Calvin Walton
4ebe2e7773 presentation format: Generate vtt caption files 2016-04-04 16:11:48 -04:00
Calvin Walton
0babcc195b Update gen_webvtt to list correct deps for ubuntu 14.04 2016-04-04 16:08:10 -04:00
Calvin Walton
b559b4d9d6 Add a tool to generate webvtt files from caption events 2016-04-04 16:08:10 -04:00
Richard Alam
7d5c9d63e4 Upgrade to Java 8
Upgrade to Java 8 and merge screenshare feature.

Conflicts:
	bigbluebutton-client/.actionScriptProperties
2016-03-21 20:19:48 +00:00
Felipe Cecagno
c818cd154b Merge remote-tracking branch 'bigbluebutton/master' into mconf 2016-03-09 12:05:32 -03:00
Calvin Walton
0f9b36bc11 recording: Escape custom poll answers in gnuplot file
Custom poll answers were previously printed into the gnuplot control
file directly, between double-quotes. As a result, if a poll answer
contains a double-quote, it could cause a syntax error in the gnuplot
script, or worse.

Gnuplot accepts standard C-style double-quoted string escapes, so I can
just use ruby's "inspect" method to generate a safetly escaped string.

Note that within the string, % still has to be escaped separately
(doubled) to avoid issues with the string formatting. As well, I have
disabled "enhanced" mode which allows using special characters for
formatting commands.

Fixes #3039
2016-03-07 11:26:17 -05:00
Anton Georgiev
a0aebf3cdc Merge branch 'screenshare-with-cursor-capture' of github.com:ritzalam/bigbluebutton 2016-03-05 16:50:13 +00:00
Felipe Cecagno
bbcfe1f34a Merge remote-tracking branch 'bigbluebutton/master' into mconf
Conflicts:
	bigbluebutton-html5/app/client/globals.js
	bigbluebutton-html5/app/client/main.html
	bigbluebutton-html5/app/client/views/whiteboard/whiteboard.html
2016-03-04 20:19:55 -03:00
RafaFP
89ac2fd60a Improved the code to meet the peer review results.
refs #1931
2016-03-04 17:40:48 +00:00
Calvin Walton
3a3d349553 recording: Restore the $meeting_start/end global variables
These were commented out, apparently by accident, when the metadata code
was being refactored. The effect was that the $meeting_end variable was
treated as if it had a value of zero, meaning that the last slide had a
start time of some positive number and an end time of zero. As a result,
it was never shown (and didn't get any shapes either).

Fixes #3021
2016-03-03 11:27:28 -05:00
RafaFP
932de9c07f Updated class and method names to better correspond to the implemented function.
Improved the recording code.

refs #1931
2016-03-02 16:02:30 +00:00
Felipe Cecagno
e4da408c08 Merge branch 'mconf' into bigbluebutton/bigbluebutton@master
Conflicts:
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/UsersApp.scala
	bigbluebutton-apps/src/main/java/org/bigbluebutton/red5/service/PresentationService.java
	bigbluebutton-client/locale/en_US/bbbResources.properties
	bigbluebutton-client/resources/prod/bbb-deskshare-applet-0.9.0.jar
	bigbluebutton-client/resources/prod/bbb-deskshare-applet-unsigned-0.9.0.jar
	bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/layout/services/MessageReceiver.as
	bigbluebutton-client/src/org/bigbluebutton/modules/users/views/StatusItemRenderer.mxml
	bigbluebutton-config/web/index.html
	bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
	bigbluebutton-web/src/groovy/org/bigbluebutton/api/RecordingServiceHelperImp.groovy
	bigbluebutton-web/src/java/org/bigbluebutton/api/MeetingService.java
	bigbluebutton-web/src/java/org/bigbluebutton/api/ParamsProcessorUtil.java
	bigbluebutton-web/src/java/org/bigbluebutton/api/RecordingService.java
	bigbluebutton-web/src/java/org/bigbluebutton/api/RecordingServiceHelper.java
	bigbluebutton-web/src/java/org/bigbluebutton/api/domain/Recording.java
	bigbluebutton-web/web-app/WEB-INF/freemarker/get-recordings.ftl
	record-and-playback/presentation/playback/presentation/0.9.0/playback.html
	record-and-playback/presentation/scripts/publish/presentation.rb
2016-03-02 01:19:09 -03:00
RafaFP
32f937def8 Implemented the clearing of text in the recordings player.
Recordings will now clear the chat box for every clear command received during the recording.

refs #1931
2016-02-26 21:18:14 +00:00
Richard Alam
95c043860b - add archiving of new screenshare 2016-02-25 17:59:29 +00:00
jfederico
503b748b22 record-and-playback: Placed code for producing the initial metadata.xml file at the top 2016-02-12 12:08:33 -05:00
jfederico
0c2eaf5f11 record-and-playback: Fixed bug in original state of recordings. 2016-02-09 17:26:29 -05:00
Richard Alam
c31857b9da Merge pull request #3001 from bigbluebutton/getRecordings-merged-enhancements
Get recordings merged enhancements
2016-02-04 17:01:03 -05:00
Fred Dixon
b9c6c62810 Added <meta charset=utf-8 /> to playback.html Fixes #2975 2016-01-30 19:46:58 -05:00
jfederico
c9abb24a06 record-and-playback: Formatted xml produced for metadata.xml after adding playback 2016-01-28 10:13:45 -05:00
jfederico
983e58922e record-and-playback: metadata.xml is generated by process script instead of publish 2016-01-26 17:16:28 -05:00
jfederico
1204ae9f2a recording-and-playback: Added initial metadata.xml as part of the processing 2016-01-26 14:25:02 -05:00
jfederico
371557ecb4 recording-and-playback: Added directory to be cleaned up for deleted status 2016-01-19 14:57:30 -05:00
jfederico
8e3c0ea983 recording-and-playback: Changed initial state on recording metadata.xml to published 2016-01-19 14:53:33 -05:00
jfederico
8bc75ab2f6 recording-and-playback: Converted tabs to spaces on presentation/scripts/* and core/scripts/*
Signed-off-by: jfederico <jesus@123it.ca>
2016-01-19 14:52:28 -05:00
Felipe Cecagno
019cfa6cfb Merge remote-tracking branch 'mconf/mconf-live0.7.3' into mconf
Conflicts:
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/BigBlueButtonActor.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/CollectorActor.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/MeetingActor.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/freeswitch/FreeswitchConferenceActor.scala
	bigbluebutton-client/branding/default/style/css/BBBDefault.css
	bigbluebutton-client/resources/prod/bbb-deskshare-applet-0.9.0.jar
	bigbluebutton-client/resources/prod/lib/bbb_webrtc_bridge_sip.js
	bigbluebutton-client/src/org/bigbluebutton/main/views/RecordButton.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/views/components/CustomRichTextEditor.as
2016-01-04 15:14:27 -02:00
Felipe Cecagno
8f08e13dcc Merge remote-tracking branch 'bigbluebutton/master' into mconf
Conflicts:
	bigbluebutton-apps/src/main/java/org/bigbluebutton/red5/client/messaging/ConnectionInvokerService.java
	bigbluebutton-client/locale/pt_BR/bbbResources.properties
	bigbluebutton-client/resources/prod/lib/bbb_webrtc_bridge_sip.js
2015-12-30 18:35:13 -02:00
Felipe Cecagno
de75b79eab changed the method of pack and unpack the encrypted format, from zip to tar, and making it by an external command instead of doing it in ruby (more efficient) 2015-12-15 16:45:22 -02:00
Anton Georgiev
7bf1d4ce8c Merge branch 'master' of github.com:bigbluebutton/bigbluebutton into webrtc-desktop-temp-3
Conflicts:
	record-and-playback/core/scripts/bigbluebutton.yml
2015-11-30 21:44:04 +00:00
Felipe Cecagno
555e037d79 fix merge and refactor a few pieces to fit better on BigBlueButton 1.0.0 2015-11-30 01:06:38 -02:00
Pedro Beschorner Marin
36bbcc06d6 Merge remote-tracking branch 'mconf/mconf-live0.7.3' into mconf-live0.7.3-merge
Conflicts:
	akka-bbb-apps/src/main/java/org/bigbluebutton/core/api/IBigBlueButtonInGW.java
	akka-bbb-apps/src/main/java/org/bigbluebutton/core/pubsub/receivers/ConversionUpdatesProcessor.java
	akka-bbb-apps/src/main/java/org/bigbluebutton/core/pubsub/receivers/MeetingMessageReceiver.java
	akka-bbb-apps/src/main/scala/org/bigbluebutton/core/pubsub/senders/PesentationMessageToJsonConverter.scala
	bbb-common-message/src/main/java/org/bigbluebutton/common/messages/Constants.java
	bbb-video/.classpath
	bbb-video/build.gradle
	bbb-video/src/main/java/org/bigbluebutton/app/video/VideoApplication.java
	bbb-video/src/main/webapp/WEB-INF/red5-web.xml
	bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/meeting/messaging/red5/ConnectionInvokerService.java
	bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/service/participants/ParticipantsApplication.java
	bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/service/participants/ParticipantsListener.java
	bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/service/presentation/PresentationMessageListener.java
	bigbluebutton-apps/src/main/java/org/bigbluebutton/red5/BigBlueButtonApplication.java
	bigbluebutton-apps/src/main/java/org/bigbluebutton/red5/service/ParticipantsService.java
	bigbluebutton-apps/src/main/java/org/bigbluebutton/red5/service/PresentationApplication.java
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/BigBlueButtonInGW.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/CollectorActor.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/MeetingActor.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/Constants.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/InMessages.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/MessageNames.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/OutMessages.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/ValueObjects.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/apps/layout/LayoutApp.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/apps/presentation/PresentationModel.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/apps/presentation/red5/PresentationClientMessageSender.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/apps/users/UsersApp.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/apps/users/UsersModel.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/apps/users/red5/UsersClientMessageSender.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/apps/users/redis/UsersEventRedisPublisher.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/apps/users/redis/UsersMessageToJsonConverter.scala
	bigbluebutton-apps/src/main/webapp/WEB-INF/red5-web.xml
	bigbluebutton-client/branding/default/style/css/BBBDefault.css
	bigbluebutton-client/locale/en_US/bbbResources.properties
	bigbluebutton-client/locale/es_LA/bbbResources.properties
	bigbluebutton-client/resources/config.xml.template
	bigbluebutton-client/resources/prod/MconfLive.html
	bigbluebutton-client/resources/prod/bbb-deskshare-applet-0.9.0.jar
	bigbluebutton-client/resources/prod/bbb-deskshare-applet-unsigned-0.9.0.jar
	bigbluebutton-client/src/BigBlueButton.mxml
	bigbluebutton-client/src/SharedNotesModule.mxml
	bigbluebutton-client/src/org/bigbluebutton/common/Images.as
	bigbluebutton-client/src/org/bigbluebutton/core/managers/ReconnectionManager.as
	bigbluebutton-client/src/org/bigbluebutton/core/model/Config.as
	bigbluebutton-client/src/org/bigbluebutton/core/services/BandwidthMonitor.as
	bigbluebutton-client/src/org/bigbluebutton/core/services/StreamMonitor.as
	bigbluebutton-client/src/org/bigbluebutton/main/api/ExternalApiCallbacks.as
	bigbluebutton-client/src/org/bigbluebutton/main/model/NetworkStatsData.as
	bigbluebutton-client/src/org/bigbluebutton/main/model/modules/ModulesDispatcher.as
	bigbluebutton-client/src/org/bigbluebutton/main/model/users/BBBUser.as
	bigbluebutton-client/src/org/bigbluebutton/main/model/users/Conference.as
	bigbluebutton-client/src/org/bigbluebutton/main/model/users/NetConnectionDelegate.as
	bigbluebutton-client/src/org/bigbluebutton/main/model/users/UserService.as
	bigbluebutton-client/src/org/bigbluebutton/main/model/users/events/ChangeMyRole.as
	bigbluebutton-client/src/org/bigbluebutton/main/model/users/events/ChangeRoleEvent.as
	bigbluebutton-client/src/org/bigbluebutton/main/model/users/events/LowerHandEvent.as
	bigbluebutton-client/src/org/bigbluebutton/main/model/users/events/StreamStoppedEvent.as
	bigbluebutton-client/src/org/bigbluebutton/main/views/CameraDisplaySettings.mxml
	bigbluebutton-client/src/org/bigbluebutton/main/views/LanguageSelector.mxml
	bigbluebutton-client/src/org/bigbluebutton/main/views/LoggedOutWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml
	bigbluebutton-client/src/org/bigbluebutton/main/views/MainToolbar.mxml
	bigbluebutton-client/src/org/bigbluebutton/main/views/MuteMeButton.mxml
	bigbluebutton-client/src/org/bigbluebutton/main/views/NetworkStatsWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/main/views/RecordButton.mxml
	bigbluebutton-client/src/org/bigbluebutton/main/views/WebRTCEchoTest.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/AddChatTabBox.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatBox.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatView.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/services/red5/Connection.as
	bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/view/components/DesktopPublishWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/view/components/DesktopViewWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/layout/managers/LayoutManager.as
	bigbluebutton-client/src/org/bigbluebutton/modules/layout/maps/LayoutEventMapDelegate.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/layout/model/LayoutDefinition.as
	bigbluebutton-client/src/org/bigbluebutton/modules/layout/model/WindowLayout.as
	bigbluebutton-client/src/org/bigbluebutton/modules/layout/views/AddButton.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/layout/views/LayoutsCombo.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/layout/views/ToolbarComponent.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/ConnectionManager.as
	bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/FlashCallManager.as
	bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/WebRTCCallManager.as
	bigbluebutton-client/src/org/bigbluebutton/modules/phone/views/components/ToolbarButton.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/present/managers/PresentManager.as
	bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/PresentationWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/UploadedPresentationRenderer.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/infrastructure/Client.as
	bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/infrastructure/HTTPServerConnection.as
	bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/infrastructure/ServerConnection.as
	bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/infrastructure/XMLServerConnection.as
	bigbluebutton-client/src/org/bigbluebutton/modules/users/maps/UsersMainEventMap.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/users/services/MessageReceiver.as
	bigbluebutton-client/src/org/bigbluebutton/modules/users/services/MessageSender.as
	bigbluebutton-client/src/org/bigbluebutton/modules/users/views/StatusItemRenderer.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/users/views/UsersWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/business/VideoProxy.as
	bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/maps/VideoEventMap.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/maps/VideoEventMapDelegate.as
	bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/GraphicsWrapper.as
	bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/ToolbarPopupButton.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/VideoDock.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/whiteboard/views/WhiteboardToolbar.mxml
	bigbluebutton-client/src/org/bigbluebutton/util/i18n/ResourceUtil.as
	bigbluebutton-config/bigbluebutton-release
	bigbluebutton-config/bin/bbb-conf
	bigbluebutton-config/web/index.html
	bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
	bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/PresentationController.groovy
	bigbluebutton-web/src/groovy/org/bigbluebutton/api/RecordingServiceHelperImp.groovy
	bigbluebutton-web/src/java/org/bigbluebutton/api/MeetingService.java
	bigbluebutton-web/src/java/org/bigbluebutton/api/messaging/MeetingMessageHandler.java
	bigbluebutton-web/src/java/org/bigbluebutton/api/messaging/MessagingService.java
	bigbluebutton-web/src/java/org/bigbluebutton/api/messaging/RedisStorageService.java
	bigbluebutton-web/src/java/org/bigbluebutton/presentation/imp/Pdf2SwfPageConverter.java
2015-11-25 15:58:36 +00:00
Leonardo Crauss Daronco
234843b422 Better volume slider in the media player in the playback page 2015-11-20 15:00:23 -02:00
Leonardo Crauss Daronco
a640426de3 Better swap of presentation/video and spinner in the playback page
Now it keeps playing if it was playing before and shows the current slide
properly.
2015-11-20 14:22:08 -02:00
Leonardo Crauss Daronco
3bc61690c3 Better style for the video player in the playback page, cleanup css 2015-11-19 10:54:43 -02:00
Leonardo Crauss Daronco
c2de1cab07 Finished thhe new presentation/video swap in the playback page
Now it's done in the application and positioning is not hard-coded
inside acorn player, so it works in a responsive page.

Still not 100%, the playback jumps back and pauses on swap. Have to
make the transition seamless.
2015-11-19 10:18:23 -02:00
Leonardo Crauss Daronco
8bbaf8a13f Move css/bbb-playback2.css to playback.css 2015-11-18 17:42:47 -02:00
Leonardo Crauss Daronco
32986bc6f9 First version of a responsive playback page for recordings
Includes a custom theme for acorn media player.
Uses the Foundation framework, version 5.5.3
2015-11-18 17:28:52 -02:00
Calvin Walton
fc299487e4 recording: Allow configuring recording metadata to use https
This allows configuring a server to use https without having to edit
any ruby files directly.

(Ideally, the metadata files wouldn't include the server name/protocol
at all; that should be set dynamically by bbb-web, but this is what we
have for now.)
2015-11-06 11:49:36 -05:00
Calvin Walton
39cc6a80a6 recording: Use relative url for loading presentation data
This fixes loading the shapes svg, and the events and cursor xml files
on servers configured with https support. (Otherwise they'll be loaded
off http:// and trigger mixed-content errors).
2015-11-06 11:49:31 -05:00
Felipe Cecagno
7a182e67b6 Merge branch 'feature-1734' into mconf-live0.7.3 (refs #1734) 2015-10-23 12:47:08 -02:00
Felipe Cecagno
c3c4a9c64c extracted the custom hash class to a different file, loaded by recordandplayback.rb; removed the hardcoded path to /var/bigbluebutton/published/presentation because it can change, and it's always different depending on the playback format (refs #1734) 2015-10-23 12:46:26 -02:00
Anton Georgiev
8e407df405 Merge branch 'master' of github.com:bigbluebutton/bigbluebutton into webrtc-desktop-temp-1
Conflicts:
	akka-bbb-apps/build.sbt
	akka-bbb-fsesl/build.sbt
	bbb-common-message/build.sbt
	bigbluebutton-apps/build.gradle
2015-10-22 20:46:30 +00:00
Felipe Cecagno
f9eaa32a12 publish recording immediately after the process phase, before processing other recordings; fix step_succeeded vs. phase_succeeded 2015-10-19 17:40:30 -02:00
Felipe Cecagno
c4ff37e292 fixed recording size inclusion when processing presentation_export 2015-10-19 17:39:26 -02:00
Felipe Cecagno
83ae244485 Merge branch 'mconf-live0.7.1-ssl' into mconf-live0.7.3 2015-10-19 11:49:36 -02:00
Felipe Cecagno
7069a4a6d7 Recording: Also tell ffmpeg to ignore the length of the intermediate wav file 2015-10-16 14:09:32 -04:00
Felipe Cecagno
762d1e9a56 another patch to fix the long wav files problem 2015-10-16 14:53:20 -03:00
Calvin Walton
fe8cf13b11 Convert audio_size to a number before subtracting header size 2015-10-15 15:11:45 -03:00
Calvin Walton
43e943d61d Need to convert bit_rate to an integer 2015-10-15 15:11:44 -03:00
Calvin Walton
30e6a98a8b Fix some reference errors in wav detection 2015-10-15 15:11:44 -03:00
Calvin Walton
8332daf093 record-and-playback: Handle FreeSWITCH wav files >4GB
FreeSWITCH writes wav files >4GB long with incorrect values in the length
field in the header. Recalculate the length based on file size, and ensure
that ffmpeg reads the complete audio file rather than stopping.
2015-10-15 15:11:44 -03:00
Anton Georgiev
f08cd5262e temp changes 2015-10-13 19:00:50 +00:00
Anton Georgiev
6b8626d40f cleaning up and reverting unnecessary config 2015-09-29 16:03:40 +00:00
Anton Georgiev
1d1c8a421b deskshare edl for webrtc 2015-09-28 20:49:24 +00:00
Calvin Walton
a6d6001040 Convert audio_size to a number before subtracting header size 2015-09-25 14:11:25 -04:00
Calvin Walton
d44b458b49 Need to convert bit_rate to an integer 2015-09-25 14:08:17 -04:00
Anton Georgiev
366b01fff7 webrtc deskshare work on recording scripts 2015-09-25 18:05:54 +00:00
Calvin Walton
530799776d Fix some reference errors in wav detection 2015-09-25 14:01:30 -04:00
Calvin Walton
1dcd49e180 record-and-playback: Handle FreeSWITCH wav files >4GB
FreeSWITCH writes wav files >4GB long with incorrect values in the length
field in the header. Recalculate the length based on file size, and ensure
that ffmpeg reads the complete audio file rather than stopping.
2015-09-24 15:54:20 -04:00
RafaFP
0284ee0048 Latest version of the implementation of the feature #1734.
Data on Playback, Metadata and Download are now present on the publish_ended event.
If the related content is absent it will be returned empty, if otherwise present all child tags and data will be presented.

 refs 1734
2015-09-14 15:55:06 +00:00
RafaFP
4325e98bf2 Implemented the code to add the "playback", "meta" and "download" tags from the XML to the publish_ended.
Added code to guarantee that a hash is passed even when the tags do not exist in the XML.

 #feature 1734
2015-09-11 21:12:09 +00:00
RafaFP
2a85811d40 Implemented hash data gathering dinamically, still have to use TRY to catch the nil exception.
If the hash is nil the publish_ended post is skipped.

Must validate the tag values and add the download tag.
2015-09-11 18:20:47 +00:00
Felipe Cecagno
ed366e6b21 Merge branch '090-recordings-size' into mconf-live0.7.3
Conflicts:
	bigbluebutton-web/src/java/org/bigbluebutton/api/MeetingService.java
	bigbluebutton-web/src/java/org/bigbluebutton/api/domain/Recording.java
2015-09-08 17:43:20 -03:00
Felipe Cecagno
32957898f6 refactored part of the bbb-0.9-recording-size code in order to include the size on the download size for mconf_encrypted and the playback size for the others; included raw_size for all available formats 2015-09-08 17:18:02 -03:00
RafaFP
eb1b5aee49 Included playback data to the event of "publish_ended"
#refs 1734
2015-09-01 16:13:10 +00:00
RafaFP
8602d3c263 Added the link and duration info to the publish_ended event.
#refs 1734
2015-08-31 20:29:00 +00:00
Calvin Walton
cc23f30c2b Fix poll in recording when there are 0 responders
There were a couple of problems:

* A division by 0 when calculating the percentages
* Positioning of the number of results counter was incorrect

Fixes #2739
2015-08-24 14:42:31 -04:00
Fred Dixon
c99da48041 Removed uneeded script 2015-08-13 17:32:03 -04:00
Calvin Walton
e3e0f0ef61 Add poll result display to the 'presentation' recording format
Note that this requires a new dependency be added to the
"bbb-playback-presentation" format; the "gnuplot" package is now
required (it's used to actually generate the chart images)
2015-08-11 14:55:59 -04:00
Felipe Cecagno
3e567f4493 Merge branch '090-encrypted-recording' into mconf-live0.7.0 2015-07-18 10:47:59 -03:00
Felipe Cecagno
31a67490d2 changed permissions over mconf-recording-decrypter, so we can run it 2015-07-18 10:37:10 -03:00
Felipe Cecagno
eef0398885 changing permissions over bbb-0.9-recording-size, which is now executable 2015-07-15 17:16:04 -03:00
Felipe Cecagno
5e326b7528 do not create a copy of the raw data to create the mconf_encrypted format, just use the data from the raw dir directly 2015-07-04 17:02:50 -03:00
Felipe Cecagno
6929b4817e fix the condition for mconf-decrypter job to process an encrypted recording
because of the wrong condition, mconf-decrypter was reprocessing all the recordings available
2015-07-04 17:02:03 -03:00
Pedro Beschorner Marin
60a1ae6436 Cleanup 2015-06-10 17:14:14 +00:00
Pedro Beschorner Marin
cbfe8b8859 Added an update script for sizes injection in old recordings metadata and some refactoring 2015-06-10 17:07:11 +00:00
Pedro Beschorner Marin
9932a4c4fe Fixing metadata.xml identation 2015-06-10 00:39:55 +00:00
Pedro Beschorner Marin
f8ff4a6725 Injecting format size in metadata.xml 2015-06-09 21:06:57 +00:00
Pedro Beschorner Marin
6ef2bf6b27 Getting playback and full meeting published sizes 2015-06-09 14:39:35 +00:00
Pedro Beschorner Marin
4225a87abd Refactoring and cleanup 2015-06-04 16:03:20 +00:00
Pedro Beschorner Marin
a1a7096c3e Getting the raw size of the meeting data 2015-06-03 15:19:41 +00:00
Pedro Beschorner Marin
cc55e6f6a4 Adding new attributes to bbb-web 2015-06-02 18:58:11 +00:00
Felipe Cecagno
6d7c4b5d6e Merge branch '090-encrypted-recording' into mconf-live0.6.3 2015-05-19 00:03:19 -03:00
Felipe Cecagno
f9ef1b4edd replaced the way we download the encrypted file in the recording server - wget uses much less memory than the previous method 2015-05-19 00:03:08 -03:00
Felipe Cecagno
7cb12f8b49 Merge branch 'mconf-live0.6.3' into bigbluebutton/bigbluebutton@v0.9.0-release
Conflicts:
	bbb-api-demo/src/main/webapp/demo10_helper.jsp
	bbb-video/build.gradle
	bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/BigBlueButtonApplication.java
	bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/BigBlueButtonSession.java
	bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/meeting/messaging/red5/ConnectionInvokerService.java
	bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/service/participants/ParticipantsApplication.java
	bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/service/participants/ParticipantsHandler.java
	bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/service/participants/ParticipantsListener.java
	bigbluebutton-apps/src/main/java/org/bigbluebutton/core/api/IBigBlueButtonInGW.java
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/ValueObjects.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/apps/users/UsersApp.scala
	bigbluebutton-apps/src/main/webapp/WEB-INF/red5-web.xml
	bigbluebutton-client/locale/bg_BG/bbbResources.properties
	bigbluebutton-client/locale/cs_CZ/bbbResources.properties
	bigbluebutton-client/locale/cy_GB/bbbResources.properties
	bigbluebutton-client/locale/de_DE/bbbResources.properties
	bigbluebutton-client/locale/en_US/bbbResources.properties
	bigbluebutton-client/locale/es_419/bbbResources.properties
	bigbluebutton-client/locale/es_ES/bbbResources.properties
	bigbluebutton-client/locale/et_EE/bbbResources.properties
	bigbluebutton-client/locale/fa_IR/bbbResources.properties
	bigbluebutton-client/locale/fr_CA/bbbResources.properties
	bigbluebutton-client/locale/fr_FR/bbbResources.properties
	bigbluebutton-client/locale/hu_HU/bbbResources.properties
	bigbluebutton-client/locale/hy_AM/bbbResources.properties
	bigbluebutton-client/locale/it_IT/bbbResources.properties
	bigbluebutton-client/locale/ms_MY/bbbResources.properties
	bigbluebutton-client/locale/no_NO/bbbResources.properties
	bigbluebutton-client/locale/pl_PL/bbbResources.properties
	bigbluebutton-client/locale/pt_BR/bbbResources.properties
	bigbluebutton-client/locale/ru_RU/bbbResources.properties
	bigbluebutton-client/locale/sk_SK/bbbResources.properties
	bigbluebutton-client/locale/tr_TR/bbbResources.properties
	bigbluebutton-client/locale/uk_UA/bbbResources.properties
	bigbluebutton-client/locale/zh_CN/bbbResources.properties
	bigbluebutton-client/resources/config.xml.template
	bigbluebutton-client/resources/prod/MconfLive.html
	bigbluebutton-client/resources/prod/bbb-deskshare-applet-0.9.0.jar
	bigbluebutton-client/resources/prod/bbb-deskshare-applet-unsigned-0.9.0.jar
	bigbluebutton-client/resources/prod/lib/bbb_api_bridge.js
	bigbluebutton-client/resources/prod/lib/bbb_webrtc_bridge_sip.js
	bigbluebutton-client/resources/prod/lib/deployJava.js
	bigbluebutton-client/src/org/bigbluebutton/main/api/ExternalApiCallbacks.as
	bigbluebutton-client/src/org/bigbluebutton/main/model/modules/ModulesDispatcher.as
	bigbluebutton-client/src/org/bigbluebutton/main/model/users/NetConnectionDelegate.as
	bigbluebutton-client/src/org/bigbluebutton/main/views/AudioSelectionWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/main/views/CameraDisplaySettings.mxml
	bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml
	bigbluebutton-client/src/org/bigbluebutton/main/views/VideoHolder.mxml
	bigbluebutton-client/src/org/bigbluebutton/main/views/WebRTCEchoTest.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/chat/model/ChatConversation.as
	bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatBox.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/view/components/DesktopPublishWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/layout/views/LayoutsCombo.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/phone/PhoneOptions.as
	bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/FlashCallManager.as
	bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/WebRTCCallManager.as
	bigbluebutton-client/src/org/bigbluebutton/modules/phone/views/components/ToolbarButton.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/FileUploadWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/users/services/MessageReceiver.as
	bigbluebutton-client/src/org/bigbluebutton/modules/users/views/MediaItemRenderer.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/users/views/UsersWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/business/VideoWindowItf.as
	bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/ToolbarButton.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/videodock/views/VideoDock.mxml
	bigbluebutton-config/web/index.html
	bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
	bigbluebutton-web/src/java/org/bigbluebutton/api/MeetingService.java
2015-05-17 19:25:26 -03:00
Mateus Dalepiane
0662a242aa Merge branch 'bigbluebutton/master' into 090-new-videodock
Conflicts:
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/apps/users/UsersApp.scala
	bigbluebutton-client/src/org/bigbluebutton/main/views/CameraDisplaySettings.mxml
	bigbluebutton-client/src/org/bigbluebutton/main/views/VideoHolder.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/business/VideoWindowItf.as
	bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/ToolbarButton.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/videodock/views/VideoDock.mxml
2015-04-29 12:10:41 -03:00
Calvin Walton
301665a35b Fix off-by-one error in slide clear events
In 0.9.0, the slide clear events changed from using 1-based page numbers to
using 0-based page numbers.

Add 1 to the page number for recordings generated on a 0.9.0+ server to
fix the issue; at this point it's too late in the release to change the value,
and there's too big of a body of existing recordings out there.
2015-04-14 17:33:49 -04:00
Calvin Walton
c96f9f0cfe Add a function to compare BBB version numbers
This can be used to check if e.g. recording is from a 0.9.0 or newer server
2015-04-14 17:33:49 -04:00
Felipe Cecagno
c9185e9ba0 Merge branch '090-encrypted-recording' into mconf-live0.6.2 2015-04-06 17:06:41 -03:00
Felipe Cecagno
795c4c0af5 do not check anymore for archived.done file before processing the encrypted recording, because the archived flag is removed after the recording is published 2015-04-06 17:06:08 -03:00
Calvin Walton
e1e2d78e50 Skip the 'ser' repair if there are no webcam videos
This was causing the sanity check to fail.
2015-03-24 21:15:49 -03:00
Calvin Walton
34b13eb807 Attempt to repair red5 'ser' files in sanity script 2015-03-24 21:15:49 -03:00
Felipe Cecagno
d8174e3d78 Merge branch '090-encrypted-recording' into mconf-live0.6.2 2015-03-24 21:15:44 -03:00
Felipe Cecagno
d4f0c2c229 fixed the start and end time on the encrypted format metadata, which is now based on epoch 2015-03-24 21:15:25 -03:00
Calvin Walton
694213cf9b Recording: Fix video EDL merge function on EDLs with recording marks applied
If the video EDL merge function is applied to an EDL that has already
been edited to apply recording marks, the merge function will change the
video start times to incorrect values on edit points during the timestamp
recalculation.

The fix is pretty simple; just pull in the timestamps from the entry that's
being merged in and apply them to the relevant videos.

This bug doesn't currently cause any issues in the BigBlueButton recording
scripts, since the existing code does the merge before the start/stop marks
are applied. But to avoid surprises later, it would be good to fix this.
2015-03-23 11:10:43 -04:00
Calvin Walton
5a2c7bae69 Fix beta recording update script
It had some leftover debug code that caused it to only convert the
first 10 recordings instead of all of them.

The name of the '.done' file is changed so the update will be re-run
automatically.
2015-03-20 17:48:05 -03:00
Calvin Walton
e75bb15ad0 Fix beta recording update script
It had some leftover debug code that caused it to only convert the
first 10 recordings instead of all of them.

The name of the '.done' file is changed so the update will be re-run
automatically.
2015-03-18 14:56:00 -04:00
Calvin Walton
eedbafa94f Adjust recording system to archive, but not process, recordings with no marks
This allows them to be preserved for a period of time, rather than be
deleted immediately. Useful for recovering recordings when someone forgot
to press the record button during the session.
2015-03-11 13:40:56 -04:00
Felipe Cecagno
9edb77fff1 Merge branch '090-encrypted-recording' into mconf-live0.6.2 2015-02-05 14:33:21 -02:00
Felipe Cecagno
91067c5172 handling the case when the getRecordings url for the mconf-decrypter is not set 2015-02-05 14:32:48 -02:00
Felipe Cecagno
e8f4e55d5f updating the mconf logo on presentation_export 2015-02-02 20:50:12 -02:00
Felipe Cecagno
c6c3122afa Merge branch '090-presentation-export' into mconf-live0.6.2 2015-02-02 20:36:15 -02:00
Felipe Cecagno
4f46e37727 changing permissions of the presentation export zipped file 2015-02-02 20:36:06 -02:00
Felipe Cecagno
cb50a8a304 Merge branch '090-presentation-export' into mconf-live0.6.2 2015-02-02 14:06:40 -02:00
Felipe Cecagno
ad25125b19 reverted back the previous implementation of presentation_export as process/publish scripts instead of just one publish script; now rap-worker cleans the workspace when the presentation format is published, so presentation dependet formats can execute in the next run 2015-02-02 14:06:20 -02:00
Felipe Cecagno
d1bcfe9189 do not run the publish script if the process script failed 2015-02-02 13:59:29 -02:00
Felipe Cecagno
1de10b2339 protect rap-worker to write the processing_time file when the directory isn't there yet 2015-02-02 13:58:57 -02:00
Calvin Walton
c90e5f8990 Skip the 'ser' repair if there are no webcam videos
This was causing the sanity check to fail.
2015-01-30 10:11:44 -05:00
Felipe Cecagno
9a7bae79a8 Merge branch '090-new-videodock' into HEAD
Conflicts:
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/apps/users/UsersApp.scala
	bigbluebutton-client/src/org/bigbluebutton/main/views/CameraDisplaySettings.mxml
	bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/maps/VideoEventMap.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/maps/VideoEventMapDelegate.as
	bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/PublishWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/ToolbarButton.mxml
	record-and-playback/deploy.sh
2015-01-28 20:33:28 -02:00
Felipe Cecagno
fe348e0065 fixed the deploy scripts for record and playback 2015-01-28 19:20:11 -02:00
Calvin Walton
c6f976db4b Attempt to repair red5 'ser' files in sanity script 2015-01-27 14:01:29 -05:00
Felipe Cecagno
a7e286ae33 Merge branch '090-mconf-branding' into mconf-live0.6.2 2015-01-25 12:00:59 -02:00
Felipe Cecagno
0843ec1361 Merge branch '090-mconf-branding' into HEAD
Conflicts:
	bigbluebutton-client/locale/ru_RU/bbbResources.properties
	bigbluebutton-config/web/default.pdf
2015-01-25 11:59:45 -02:00
Felipe Cecagno
38e27ecfca Merge branch '090-presentation-export' into mconf-live0.6.2
Conflicts:
	record-and-playback/deploy.sh
2015-01-23 14:50:06 -02:00
Felipe Cecagno
871705d38a cleanup 2015-01-23 14:17:07 -02:00
Felipe Cecagno
1255f4520f made presentation_export a post_publish script 2015-01-23 14:11:45 -02:00
Felipe Cecagno
b3daaf72b3 Merge branch 'presentation-export' into 090-presentation-export 2015-01-22 15:58:16 -02:00
Felipe Cecagno
2761c31e52 Merge branch '090-encrypted-recording' into mconf-live0.6.2
Conflicts:
	bbb-video/build.gradle
	bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/meeting/messaging/redis/MeetingMessageHandler.java
	bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/service/participants/ParticipantsListener.java
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/CollectorActor.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/MeetingActor.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/InMessages.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/MessageNames.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/OutMessages.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/api/ValueObjects.scala
	bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/apps/users/UsersApp.scala
	bigbluebutton-client/branding/default/style/css/BBBDefault.css
	bigbluebutton-client/locale/de_DE/bbbResources.properties
	bigbluebutton-client/locale/en_US/bbbResources.properties
	bigbluebutton-client/locale/pt_BR/bbbResources.properties
	bigbluebutton-client/src/org/bigbluebutton/main/views/LoadingBar.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatBox.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatView.mxml
	bigbluebutton-config/web/index.html
	bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy
	bigbluebutton-web/grails-app/services/org/bigbluebutton/web/services/PresentationService.groovy
2015-01-21 18:11:56 -02:00
Felipe Cecagno
8e12c909c5 Merge branch '090-encrypted-recording' into HEAD
Conflicts:
	bigbluebutton-web/src/java/org/bigbluebutton/api/MeetingService.java
	record-and-playback/core/Gemfile
	record-and-playback/deploy.sh
2015-01-21 15:51:29 -02:00
Felipe Cecagno
12f7aacf4b Merge remote-tracking branch 'bigbluebutton/master' into mconf-live0.6.1
Conflicts:
	bigbluebutton-client/locale/fr_CA/bbbResources.properties
	bigbluebutton-client/resources/config.xml.template
	bigbluebutton-client/src/org/bigbluebutton/main/views/RecordButton.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/chat/maps/ChatEventMap.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/chat/model/ChatConversation.as
	bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatBox.mxml
	bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatView.mxml
2014-12-09 16:52:43 -02:00
Calvin Walton
65bb9ce47e recording: Strip out the 'event:' from the beginning of urls in chat 2014-12-08 11:43:26 -05:00
Felipe Cecagno
f077cc1f98 do not generate a .fail file during the archive phase if no recording marks were detected 2014-11-26 15:37:19 -02:00
Felipe Cecagno
6b863595b2 removing the keys during the archive phase if there's no recording marks in the recording 2014-11-26 12:06:15 -02:00
ern
7bf4a81039 checkUrl returns true for only 200 status 2014-11-25 13:11:57 -05:00
Felipe Cecagno
a3acb00893 Merge remote-tracking branch 'bigbluebutton/master' into mconf-live0.6.1
Conflicts:
	bbb-video/build.gradle
	bbb-video/src/main/java/org/bigbluebutton/app/video/VideoApplication.java
	bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/business/VideoProxy.as
	bigbluebutton-config/web/default.pdf
2014-11-22 20:28:39 -02:00
ern
8c023cbebd Any 200 status in checkUrl should be valid 2014-11-18 09:00:27 -05:00
Calvin Walton
213dc07c19 Merge pull request #428 from mconf/rap-publish-events
Rap publish events
2014-11-14 12:08:44 -02:00
Felipe Cecagno
1c143c74a1 refactored rap-worker so variable names make more sense than before 2014-11-13 23:10:22 -02:00
Calvin Walton
3e8019f5a0 Delete the 'slides' processing scripts
The slides processing scripts have never been updated for 0.9.0 events,
and probably never will be. They're still using older video/audio
processing apis that have poor sync, too. Just remove them.

The playback support files will still be installed, to allow recordings
from old BigBlueButton servers to be copied to a 0.9.0 server.
2014-11-13 11:15:43 -02:00
Felipe Cecagno
0cefee5534 now the rap scripts publish to redis pubsub (channel bigbluebutton:from-rap) when a rap phase begins and ends - it includes archive, sanity, post_archive, process, post_process, publish and post_publish; if there's more than one workflow, it should work without any modification 2014-11-12 17:28:33 -02:00
Felipe Cecagno
f52a0299a6 fixed the deploy script used to deploy the rap dev environment 2014-11-12 17:21:54 -02:00
Felipe Cecagno
b451b4cf84 removed god code on the record scripts 2014-11-12 17:20:10 -02:00
Fred Dixon
9cdc47d16d Merge pull request #426 from kepstin/recording-updates-2
Load bigbluebutton.yml from current path
2014-11-12 16:30:34 -02:00
Calvin Walton
30fdd13af8 Load bigbluebutton.yml from current path 2014-11-12 16:25:52 -02:00
Fred Dixon
48b9c5a01d Merge pull request #403 from kepstin/recording-updates-2
Version the playback files for the presentation recording format
2014-11-12 16:02:13 -02:00
Calvin Walton
98efa28316 Add a script to handle updating links in existing recordings
This adds the version number to the playback links so that
recordings select the correct version-specific playback support
files.

This script may be run automatically during upgrade; in that
case it should be run like

.../bbb-0.9-beta-recording-update --quiet

After copying recordings from an old BigBlueButton server, you
may want to manually re-run the script, and it takes the option
--force to recheck all recordings even if it has previously been
run.
2014-11-12 15:54:45 -02:00
Fred Dixon
fd06539c43 Merge pull request #423 from kepstin/recording-updates
Add delay before recording archiving to workaround Red5 race
2014-11-12 12:18:32 -02:00
Calvin Walton
961898c1e9 Add delay before recording archiving to workaround Red5 race
Right now there is a possibility that the rap-worker process might
see the recording.done file (written by bbb-web) prior to Red5 having
completed writing the video files to disk.

This happens most often when a meeting end api request is sent while a
webcam is visible.

Add a delay (currently 2 minutes) before the archive scripts are run
to work around the issue. Real fix is far more complicated...
2014-11-12 11:13:57 -02:00
Felipe Cecagno
3db4ead6e4 Merge branch '090-listen-only-by-default' into mconf-live0.6.1
Conflicts:
	bigbluebutton-client/locale/ru_RU/bbbResources.properties
	bigbluebutton-client/src/org/bigbluebutton/main/views/AudioSelectionWindow.mxml
	bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml
2014-10-15 00:22:27 -03:00
Richard Alam
8f38fa1f30 - find audio wav files even if they are located in sub dirs 2014-10-08 13:50:41 -07:00
Calvin Walton
49b66d6eb6 Fix publish step failing when multiple recordings processed in one run
The logic for deleting the process done files was wrong, resulting in
the script (attempting and failing) deleting all of the done files for
all of the processed recordings after the publish completes for one of
them.

Fix the logic to only delete the process done file for the recording that
just completed publishing.
2014-10-08 11:08:22 -04:00
Calvin Walton
1078aef49d Add a note to the nginx config to tell 0.9.0 beta users of a possible upgrade path 2014-10-06 17:30:32 -04:00
Calvin Walton
630ef4c72c Move 0.81 files to a subdir, add nginx redirect for them.
Now the 0.81 presentation playback files are in an appropriate versioned
directory. If desired, the recording metadata can be updated to reference
the versioned files directly, but an nginx redirect has been added so
that unmodified recordings will also work.
2014-10-06 17:17:20 -04:00
Calvin Walton
8673d353bb Use the directory presentation/0.9.0 instead of presentation2
This makes it a bit more obvious how the versioning can work going
forwards, and makes it so that we do not need to update the nginx
config each time we have a new version of the playback files.

The 0.81 files remain at the top level of the presentation directory
for compatibility reasons.
2014-10-06 16:46:55 -04:00
Calvin Walton
852ea7b822 Revert 'presentation' dir to 0.81 code, add 'presentation2' for 0.9
This fixes an issue where recordings copied from a 0.81 server might
not play back correctly on a 0.9 server.

This changes the 0.9 recording scripts to use playback support files
from a different subdirectory, 'presentation2', while existing 0.81
recordings continue to use the 'presentation' directory.

If the raw files from an old recording are reprocessed, it will
switch to using the newer playback support files.
2014-10-06 16:15:25 -04:00
Felipe Cecagno
59debc5d1e Merge branch '090-mconf-branding' into mconf-live0.6.1 2014-10-05 23:32:43 -03:00
Felipe Cecagno
015d708d7c Merge branch 'mconf-branding-0.81' into 090-mconf-branding
Used the following command to comment the default copyright label for all languages except en_US
find -name bbbResources.properties | xargs sed -i "s:^\(bbb.mainshell.copyrightLabel2.*\):# \1:g"

Conflicts:
	bigbluebutton-client/resources/prod/MconfLive.html
	bigbluebutton-client/src/BigBlueButton.mxml
	record-and-playback/presentation/playback/presentation/playback.html
2014-10-05 19:36:43 -03:00
Felipe Cecagno
56f20fa5d3 Merge branch '090-encrypted-recording' into HEAD
Conflicts:
	bigbluebutton-web/src/java/org/bigbluebutton/api/MeetingService.java
2014-09-10 17:27:47 -03:00
Felipe Cecagno
c1f3b2c5c7 a few tweaks to fit the new rap worker 2014-09-10 17:23:17 -03:00
Calvin Walton
72fc36caef Actually fix slide indexes.
While the page numbers from BigBlueButton are zero-based, the slide images
are generated as 1-based.
2014-09-09 17:15:57 -04:00
Calvin Walton
c7967810b2 Revert the presentation publish page index altering
This was added because BigBlueButton 0.9 started using 1-based page
numbers in the events.xml file. That change has been reverted, so as
to avoid behaviour changes from 0.81 in places where it's unnecessary.
2014-09-02 15:46:52 -04:00
Felipe Cecagno
f68b0e4a16 cleanup 2014-09-01 17:53:57 -03:00
Felipe Cecagno
dd97b8f80c Merge branch 'encrypted-recording' into 090-encrypted-recording
Conflicts:
	bigbluebutton-web/src/groovy/org/bigbluebutton/api/RecordingServiceHelperImp.groovy
	bigbluebutton-web/src/java/org/bigbluebutton/api/MeetingService.java
2014-09-01 16:46:03 -03:00
Calvin Walton
15fe621523 Use the timestamp from the meeting ID to calculate the real start time
With the switch to a different clock source in red5, the timestamps
in the events file are no longer real-time, but are rather in
seconds since computer boot.

The timestamp in the meeting id is still realtime, so use that as
the start time. Calculate the end time by adding the meeting length
to the start time.
2014-08-29 11:19:59 -04:00
Calvin Walton
913f4a59a0 Switch recording processing to use poppler instead of ghostscript 2014-08-28 14:52:23 -04:00
Calvin Walton
b03dbfe577 RaP: video processing robustness improvements
Makes it handle possibly corrupted video files with less chance of
breakage. Use features from newer ffmpeg release to simplify the video
trimming - in particular, using -ss as an input option is accurate now.
2014-08-28 13:07:26 -04:00
Calvin Walton
614617c2b9 Add the 'mkclean' step for audio-only recordings 2014-08-25 11:22:55 -04:00
Calvin Walton
48735ccc70 Set the audio 'original duration' during initial events parsing
This is the point at which the start/stop events for the audio are
correctly matched up with eachother; doing it later can give
incorrect results if an 'end recording' event was missing from
the events file.
2014-08-25 10:48:17 -04:00
Calvin Walton
c1bb493c10 Fix the 'timestretch' fixup so that seeking is done after stretching
The previous version may have the beginning of the audio off by a bit,
since it was seeking in the audio file to find the start before the
stretch was applied.
2014-08-22 17:07:07 -04:00
Calvin Walton
e5b5b5d49d Increase the audio bitrate in the video generation
Matches the corresponding change in the audio generation.
2014-08-22 16:58:31 -04:00
Calvin Walton
45162ce620 Explicitly use out0 in degenerate concat branch.
There is no i variable here, since there aren't multiple inputs to loop
over.
2014-08-22 16:43:35 -04:00
Calvin Walton
d53e7d21f3 Don't use the ffmpeg concat filter when only one audio segment
The concat filter requires at least 2 segments, it doesn't support
the degenerate case.
2014-08-22 16:41:16 -04:00
Calvin Walton
0841dd4233 Vorbis needs more bitrate for input with higher sample rate/stereo 2014-08-22 16:14:35 -04:00
Calvin Walton
2ac9de71a7 Use the correct timestamp for file start seek 2014-08-22 15:17:10 -04:00
Calvin Walton
7b205bdbf7 Rewrite audio processing to use ffmpeg
There's some fairly major changes here, including:

* All audio is resampled to 48kHz stereo on input, allowing files with
  non-standard or varying rates to be mixed
* The audio processing is now done in a single pass; ffmpeg reads all
  inputs, concatenates them, and outputs one file.
2014-08-22 15:04:14 -04:00
Richard Alam
c56fde0c42 Merge pull request #348 from speakserve/unify-version-number
Unify version number
2014-08-13 14:17:45 -04:00
Ghazi Triki
bb09eb6d75 After checking we bumped projects version and Flex locales to 0.9.0 with some fixes 2014-08-13 12:20:10 +01:00
Ghazi Triki
9a794f854a Bumped projects version and Flex locales to 0.9 2014-08-13 10:28:08 +01:00
Calvin Walton
8f7bf010fd Switch "post" scripts to be a drop-in directory. 2014-08-11 14:57:32 -04:00
Ghazi Triki
ac7af7dfea Manually bumped all application version to the correct actual version 0.9.0-dev 2014-07-31 17:42:38 +01:00
Calvin Walton
c73fe81e50 rap-worker: Add /usr/local/bin to the path. 2014-07-28 11:02:38 -04:00
Calvin Walton
c82a25f700 recording: Add a 'mkclean' step to video generation
The 'mkclean' tool reorganizes the encoded webm file to optimize it for
streaming. In particular, it moves the index to the start of the file.

This fixes streaming in Chrome, which otherwise had a very long delay
before playback started since it downloaded until it saw the index
before it started playback.

This needs a new dependency added to the bbb-record-core package to
pull in the mkclean tool.
2014-07-23 09:55:03 -04:00
Calvin Walton
86e8394e70 rap-worker: Ensure status directories are created
In some cases, it was attempting to create a status file in a directory
that did not exist yet.
2014-07-23 09:50:52 -04:00
Calvin Walton
11045c7f4a rap-worker: Set log level to 'INFO'
I had it on DEBUG temporarily for testing. The old version used ERROR,
but this made it print virtually no output which made diagnosing
issues difficult.
2014-07-21 15:00:29 -04:00
Calvin Walton
b91a54afa0 record core: Remove hardcoded ffmpeg path
The ffmpeg binary should be looked up using the normal PATH mechanism,
it might not always be installed in the same place.
2014-07-21 14:59:33 -04:00
Calvin Walton
efb44c9dd9 Rewrite rap-worker script in an optimized fashion
It now does much less directory reading, and performance should
scale far better with large numbers of recordings.

Semantics should be mostly unchanged, but there's greater use
of '.fail' files to mark errors, and '.done' files are now removed
after all of the following processing steps complete.

The rap worker no longer relies on processing scripts leaving
behind empty directories; those are now removed where appropriate.
2014-07-21 14:58:46 -04:00
Gustavo Salazar
67422a4450 set version in archive 2014-05-06 17:15:10 -05:00
Gustavo Salazar
fb013e751f support bbb_version in events.xml 2014-05-06 14:42:03 -05:00
Gustavo Salazar
ab648a5f73 pass only meeting id to post publish script 2014-05-05 18:27:26 -05:00
Gustavo Salazar
6a47005f34 spinner in playback while loading media 2014-04-30 17:35:53 -05:00
Gustavo Salazar
efda95fed6 delete temp files 2014-04-29 10:33:23 -05:00
Gustavo Salazar
b1e82fe58d post scripts for record and playback 2014-04-24 19:08:06 -05:00
Gustavo Salazar
7d291abcfd delete old raw dir from published recordings 2014-04-14 15:14:14 -07:00
Gustavo Salazar
4989b195f4 set absolute path to ffmpeg 2014-04-07 12:14:47 -07:00
Richard Alam
460dfb52bf - modify scripts so we can run it manually 2014-04-03 20:23:49 +00:00
Gustavo Salazar
ff96b6a97a absolute path to ffmpeg and ffprobe. 2014-03-31 18:13:52 -05:00
Fred Dixon
332824a42c Fixes so rap-worker.rb executes 2014-03-26 23:52:59 +00:00
Calvin Walton
7b48cacb59 Reverse the check for http response code.
There are many codes other than '404' which indicate that the media
file is not present or otherwise unusable. Instead of checking for
a particular failure mode, check for explicit success.

I ran into this on a server that had directory listing disabled, and
returned a 403 (access denied) error on non-existant files.
2014-03-05 14:42:08 -05:00
Gustavo Salazar
99866d43a7 Print audio file name with problems. 2014-01-30 10:45:43 -05:00
Gustavo Salazar
8a32c657d5 Handle negative index in slide number.
Related to issue #1710
2014-01-23 16:36:28 -05:00
Gustavo Salazar
614cbdde92 Fix #1711
Support pdf extension in uppercase https://code.google.com/p/bigbluebutton/issues/detail?id=1711
2014-01-23 14:03:09 -05:00
Felipe Cecagno
98f1d51461 fixing the handling of multiple drawings from a single shape
bug could be easily reproduced typing text, erase part of it and then type again
2014-01-14 18:17:39 -02:00
Felipe Cecagno
3440ed0fe3 Merge branch 'v0.81' into record-button
Conflicts:
	bigbluebutton-client/branding/default/style/css/BBBDefault.css
	bigbluebutton-client/src/org/bigbluebutton/main/views/MainToolbar.mxml
2014-01-14 14:05:41 -02:00
Felipe Cecagno
dab7547014 added a check on presentation publish script to avoid the duplication of thumbnails for a given slide 2013-12-02 15:23:02 -02:00
Felipe Cecagno
955f9edc99 fixing the issue of the whiteboard annotations not being shown in the proper slide; cleaning the environment (events.xml, recorded flag) when the session was recorded but the record button wasn't used 2013-12-02 13:57:05 -02:00
Calvin Walton
1d488e3c56 Last-ditch fix for missing presentation images
We can only get here if all of the files for the presentation are
*completely* missing. One thing that can cause this is if the
presentation filename starts with a '.' character - the presentation
files aren't correctly archived then.
2013-10-31 18:56:09 -02:00
Richard Alam
e220f120cc Merge pull request #280 from kepstin/firefox-audio-seek
Switch the order of the audio formats on firefox playback
2013-10-23 13:59:49 -07:00
Calvin Walton
4a45b3610b Switch the order of the audio formats on firefox playback
Firefox has a bug where it can't seek in the audio-only webm files with
no cues, and it seems like they have no intention of fixing this...
Serve up the ogg files first for them.

Adding cues to audio-only webm files is *hard*, there are no standard
tools that support doing this cleanly.
2013-10-23 16:35:21 -04:00
Calvin Walton
e6fe43f9b6 Fix a logger method call in presentation script
This shouldn't normally be hit... but if it ever is, the processing will
fail with an error, since the Logger class doesn't have a method named
'warning'.
2013-10-23 10:01:02 -04:00
Gustavo Salazar
38f8ed5741 Support processing of images with extension .jpeg 2013-10-18 17:46:07 -05:00
Calvin Walton
de0bac6f76 Skip corrupt/empty audio files when processing recording.
Now when an empty/corrupt audio file is detected, it will be replaced
with silence.
2013-10-18 11:39:03 -04:00
Guilherme Augusto Dias
129e942d16 Add recording length information to metadata file
Add a tag containing the duration of the recording to metadata file
2013-10-15 14:29:49 +00:00