Uploaded image for project: 'Guacamole'
  1. Guacamole
  2. GUACAMOLE-1413

RDP Session Parameter for the Number of Audio Channels to be transmitted

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • None
    • None
    • guacamole, guacd
    • None

    Description

      Context

      We want to use the Guacamole RDP proxy server with full audio support using

      1. audio input redirection, rule enable-audio-input=true
      2. audio output redirection, rule disable-audio=false

      In the source code, header file src/pulse/pulse/pulse.h, we see the following constants for the Pulse Audio library for PCM modulator parametrisation of the RDP server:

      /**
       * Rate of audio to stream, in Hz.
       */
      #define GUAC_PULSE_AUDIO_RATE 44100
       
      /**
       * The number of channels to stream.
       */
      #define GUAC_PULSE_AUDIO_CHANNELS 2
       
      /**
       * The number of bits per sample.
       */
      #define GUAC_PULSE_AUDIO_BPS 16
      

      Problem

      Parameter of interest:

      • GUAC_PULSE_AUDIO_CHANNELS 2

      For remote users with an internet connection with low network bandwidth, it might be useful to have sessions with just one audio channel, mono instead of stereo expecting utilising just half of the network bandwidth for the part of audio blob transmission.

      Is this assumption correct, transmitting just one audio channel would half the network bandwidth utilisation for audio blobs?

      Feature

      Add another rule parameter for an individual RDP server session or connection respectively

      • for database table guacamole_connection_parameter

      which allows us to parametrise the number of simultaneous audio channels to be transmitted in both redirections, audio in- and output.

      Possible parameter names might be:

      • disable-audio-stereo, default false
      • enable-audio-mono, default false
      • audio-channels, {1|2}, default 2

      If this is not feasible or difficult to implement for some reasons, add a corresponding parameter to daemon configuration file

      • guacd.conf
      • or guacamole.properties

      affecting all RDP sessions in the same way.

      Also of Interest

      The parameter GUAC_PULSE_AUDIO_RATE would also help to reduce network bandwidth if we reduce the sampling rate of the PCM modulator. If full audible audio bandwidth is not needed cause we  just transmit speech for example, the sampling rate can be reduced as we know it for telephone lines (audio bandwidth 300 Hz to 3400 Hz). This however is more complex, a low-pass or an anti-aliasing filter must be programmatically implemented avoiding audio signal aliasing. Topics like Nyquist–Shannon sampling theorem, Discrete Fourier Transformation DTFT and audio signal aliasing must be studied for deeper understanding before implementation.

      Attachments

        Activity

          People

            Unassigned Unassigned
            jkuri Juergen Kuri
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: