diff --git a/record-and-playback/core/lib/recordandplayback.rb b/record-and-playback/core/lib/recordandplayback.rb index fc0de181842c6f2232a413905552eb40662bb60f..73677e256f1d2660983eb29d4a567b64906204dd 100755 --- a/record-and-playback/core/lib/recordandplayback.rb +++ b/record-and-playback/core/lib/recordandplayback.rb @@ -76,7 +76,7 @@ module BigBlueButton errors = stderr.readlines unless errors.empty? - BigBlueButton.logger.error( "Error: stderr: #{errors}") + BigBlueButton.logger.error( "Error: stderr: #{Array(errors).join()}") # raise errors.to_s end end diff --git a/record-and-playback/core/lib/recordandplayback/generators/video.rb b/record-and-playback/core/lib/recordandplayback/generators/video.rb index 830bfdac9b204ca3d3bcf93a7b44bdb7704eb66d..789074b8ec02041dcddba395fdd5ce0fff05c39f 100755 --- a/record-and-playback/core/lib/recordandplayback/generators/video.rb +++ b/record-and-playback/core/lib/recordandplayback/generators/video.rb @@ -488,6 +488,19 @@ module BigBlueButton last_timestamp = BigBlueButton::Events.last_event_timestamp(events_xml) start_evt = BigBlueButton::Events.get_start_video_events(events_xml) stop_evt = BigBlueButton::Events.get_stop_video_events(events_xml) + + # fix the stop events list so the matched events will be consistent + start_evt.each do |evt| + if stop_evt.select{ |s| s[:stream] == evt[:stream] }.empty? + new_event = { + :stream => evt[:stream], + :stop_timestamp => evt[:start_timestamp] + (BigBlueButton.get_video_duration("#{video_dir}/#{evt[:stream]}.flv") * 1000).to_i + } + BigBlueButton.logger.debug("Adding stop event: #{new_event}") + stop_evt << new_event + end + end + matched_evts = BigBlueButton::Events.match_start_and_stop_video_events(start_evt, stop_evt) BigBlueButton.logger.debug("First timestamp: #{first_timestamp}") BigBlueButton.logger.debug("Last timestamp: #{last_timestamp}")