Skip to content
Snippets Groups Projects
  1. Mar 26, 2021
  2. Mar 25, 2021
  3. Mar 24, 2021
  4. Mar 23, 2021
    • Pedro Beschorner Marin's avatar
      Handle pad's events and Meteor's instances · 0c4cf013
      Pedro Beschorner Marin authored
      Since Meteor was split in multiple process and events started to be
      filtered by instances, all Etherpad's Redis events were being discarded.
      
      Etherpad has a Redis' publisher plugin that is unaware of BigBlueButton's
      existence. All the communication between them is kept simple with minimal
      of internal data exchange. The concept of distincts subscribers at Meteor's
      side broke part of this simplicity and, now, Etherpad has to know which
      instance must receive it's messages. To provide such information I decided
      to include Meteor's instance as part of the pad's id. Should look like:
      
       - [instanceId]padId for the shared notes
       - [instanceId]padId_cc_(locale) for the closed captions
      
      With those changes the pad id generation made at the recording scripts had to
      be re-done because there is no instance id available. Pad id is now recorded at
      akka-apps and queried while archiving the shared notes.
      0c4cf013
    • germanocaumo's avatar
  5. Mar 22, 2021
  6. Mar 18, 2021
    • Calvin Walton's avatar
      Recording: Don't use string interpolation generating commands for slide conversion · 7fab16b2
      Calvin Walton authored
      Just want to make sure that we don't get any bad filenames sneaking in
      and causing havoc.
      7fab16b2
    • Calvin Walton's avatar
      Improvements for audio desync issues · 0559152d
      Calvin Walton authored
      This incorporates only the audio desync related changes from #11626
      * Add the aresample filter with async option to fill in timestamp gaps
      * Use the libopus decoder for opus audio instead of ffmpeg's builtin
        decoder
      0559152d
    • Calvin Walton's avatar
      Rework the ffmpeg filter generation in the audio rendering. · 2a6b0b62
      Calvin Walton authored
      This gives the following advantages over the previous code:
      
      * The ffmpeg input filters are loaded from a filter "script" file instead
        of passed on the command line. This fixes some cases of recordings
        failing to process because the ffmpeg command line generated for the
        audio processing exceeded the max command line length limit. (Although
        that only really happens due to BBB bugs...)
      * Use absolute positions when trimming audio segments for cuts.
        Previously segments were trimmed to the length of the segment, and the
        results were concatenated. There's some possibility of accumulated
        errors in the segment lengths causing audio desync over time. The new
        code incrementally concatenates the segments, and cuts each segment
        end based on the absolute time since the start of the meeting, to
        avoid error accumulation.
      2a6b0b62
  7. Mar 11, 2021
  8. Mar 10, 2021
  9. Mar 08, 2021
  10. Mar 02, 2021
  11. Feb 09, 2021
  12. Dec 21, 2020
  13. Dec 20, 2020
  14. Dec 10, 2020
  15. Dec 07, 2020
  16. Dec 06, 2020
  17. Dec 04, 2020
  18. Sep 25, 2020
    • Calvin Walton's avatar
      Recording: Skip shapes with missing "thickness" attribute · 86c821f4
      Calvin Walton authored
      Not sure what causes this issue, but there's nothing reasonable that can
      be done to draw a shape with no thickness. Just skip it.
      86c821f4
    • Calvin Walton's avatar
      Perform captions generation in UTF-16 encoding · 1866eb71
      Calvin Walton authored
      The indexes returned in recording events from BBB refer to positions
      within a UTF-16 encoded string. Rather than attempt to untangle this in
      the server (which might have a performance cost), it's easier to switch
      the caption processing code to operate in UTF-16 encoding as well to
      make it work consistently.
      
      The PyICU library provides a UnicodeString type which is a UTF-16 string
      similar to Java and JavaScript, but which supports all the python
      indexing methods. It's fairly straightforwards to swap it in in place of
      the types used previously, and works natively as an input to the ICU
      line break iterator too.
      
      Fixes #10531
      1866eb71
  19. Sep 23, 2020
    • Calvin Walton's avatar
      Fix io deadlock in recording scripts process execution utilities · 12687535
      Calvin Walton authored
      The previous implementation of the BigBlueButton.execute method runs the
      process with separate stdout and stderr streams. It first reads all of
      the output from stdout, then reads all of the output from stderr.
      
      This can cause a deadlock if the process writes a lot of data to stderr.
      The IO buffer for stderr could fill, blocking progress. But since it
      hasn't closed stdout, the ruby script is still waiting on a read to
      stdout.
      
      Switch to an execution method (using IO.popen) that allows combining
      stdout and stderr into a single stream, eliminating the issue.
      12687535
  20. Sep 01, 2020
  21. Aug 13, 2020
    • hiroshisuga's avatar
      events_archiver.rb: Handle an empty meeting_metadata hash from redis · 3cbe9aba
      hiroshisuga authored
      On my server 2.3 alpha, the method metadata_for(meeting_id) gives back {}
      (empty Hash). Thus "return if meeting_metadata.nil?" does not occur.
      
      Does @redis.hgetall give {} instead of nil, even though there is a comment in
      node_modules/redis/lib/utils.js "hgetall converts its replies to an Object. If
      the reply is empty, null is returned"???
      3cbe9aba
    • hiroshisuga's avatar
      events_archiver.rb: Handle an empty meeting_metadata hash from redis · dc0fc459
      hiroshisuga authored
      On my server 2.3 alpha, the method metadata_for(meeting_id) gives back {}
      (empty Hash). Thus "return if meeting_metadata.nil?" does not occur.
      
      Does @redis.hgetall give {} instead of nil, even though there is a comment in
      node_modules/redis/lib/utils.js "hgetall converts its replies to an Object. If
      the reply is empty, null is returned"???
      dc0fc459
  22. Aug 11, 2020
    • Calvin Walton's avatar
      Events archiver: Strip more invalid characters · 65989305
      Calvin Walton authored
      Update the list of invalid characters based on what the XML
      specification permits and discourages.
      
      Use the ruby string `scrub` method to remove invalid characters that
      can't be expressed in the `tr` syntax, like unpaired surrogates and
      UTF-8 prefix bytes.
      65989305
  23. Jul 30, 2020
Loading