Package com.avaya.clientservices.media

## Interface VideoInterface

-     public interface VideoInterface

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addListener​(VideoInterfaceListener listener)` | Adds a new listener.
    `boolean` | `enableCPUAdaptiveVideo​(boolean enable)` | Enable/Disables CPU Usage for video call(s) and control Tx/Rx
    `VideoSink` | `getLocalVideoSink​(int channelId)` | Retrieves a `VideoSink` for the specified channel.
    `VideoSource` | `getRemoteVideoSource​(int channelId)` | Retrieves a `VideoSource` for the specified channel.
    `boolean` | `isThresholdAlreadyRegistered​(CPUThresholdType thresholdType, CPUThresholdConfiguration threshold)` | Checks if the input threshold type was already registered for monitoring.
    `boolean` | `isVideoReceiving​(int cnannelId)` | This function gets the state of video activity (only for AAC and MSS).
    `boolean` | `registerCPUThresholdConfig​(CPUThresholdConfiguration threshold)` | Registers the threshold for monitoring overriding any registered(or default) threshold values for the given threshold type.
    `void` | `removeListener​(VideoInterfaceListener listener)` | Removes a listener.
    `boolean` | `setDscp​(int dscpValue)` | This function sets DSCP value for video.
    `boolean` | `unRegisterCPUThresholdConfig​(CPUThresholdType thresholdType)` | Unregisters threshold from monitoring

- - ### Method Detail

    - #### addListener

          void addListener​(VideoInterfaceListener listener)

      Adds a new listener.
      Parameters:
        `listener` - Listener instance to add.

    - #### removeListener

          void removeListener​(VideoInterfaceListener listener)

      Removes a listener.
      Parameters:
        `listener` - Listener instance to remove.

    - #### getLocalVideoSink

          VideoSink getLocalVideoSink​(int channelId)

      Retrieves a `VideoSink` for the specified channel. This is used to attach a `VideoSource` (capturer).
      Parameters:
        `channelId` - id of video channel for which to retrieve the VideoSink.
      Returns:
        `VideoSink` associated with the video channel ID; or `null` if a channel does not exist or does not have a VideoSink.

    - #### getRemoteVideoSource

          VideoSource getRemoteVideoSource​(int channelId)

      Retrieves a `VideoSource` for the specified channel. This is used to attach a `VideoSink` (renderer).
      Parameters:
        `channelId` - id of video channel for which to retrieve the VideoSource.
      Returns:
        `VideoSource` associated with the video channel ID; or `null` if a channel does not exist or does not have a VideoSource.

    - #### setDscp

          boolean setDscp​(int dscpValue)

      This function sets DSCP value for video.
      Parameters:
        `dscpValue` - DSCP value must be in range 0-63.
      Returns:
        true if DSCP value is set, otherwise false.

    - #### isVideoReceiving

          boolean isVideoReceiving​(int cnannelId)

      This function gets the state of video activity (only for AAC and MSS).
      Parameters:
        `cnannelId` - channel id for which the state is requested.
      Returns:
        true if video is receiving on this channel, otherwise false.

    - #### enableCPUAdaptiveVideo

          boolean enableCPUAdaptiveVideo​(boolean enable)

      Enable/Disables CPU Usage for video call(s) and control Tx/Rx
      Parameters:
        `enable` - Flag to enable or disable CPU Usage
      Returns:
        true on success, false otherwise

    - #### registerCPUThresholdConfig

          boolean registerCPUThresholdConfig​(CPUThresholdConfiguration threshold)

      Registers the threshold for monitoring overriding any registered(or default) threshold values for the given threshold type.
      Parameters:
        `threshold` - The CPU threshold configuration.
      Returns:
        `true` if successful; otherwise `false`.

    - #### unRegisterCPUThresholdConfig

          boolean unRegisterCPUThresholdConfig​(CPUThresholdType thresholdType)

      Unregisters threshold from monitoring
      Parameters:
        `thresholdType` - The CPU threshold type.
      Returns:
        `true` if successful; otherwise `false`.

    - #### isThresholdAlreadyRegistered

          boolean isThresholdAlreadyRegistered​(CPUThresholdType thresholdType,
                                               CPUThresholdConfiguration threshold)

      Checks if the input threshold type was already registered for monitoring.
      Parameters:
        `thresholdType` - The CPU threshold type.
        `threshold` - The CPU threshold configuration. It returns false if no threshold was registered for thresholdType.
      Returns:
        true If the threshold is available and updates the values threshold argument