예제 #1
0
  /**
   * Removes SSRC groups contained ing given <tt>MediaSSRCGroupMap</tt> from this map if they exist.
   *
   * @param mapToRemove the <tt>MediaSSRCGroupMap</tt> that contains SSRC groups mappings to be
   *     removed from this instance.
   * @return the <tt>MediaSSRCGroupMap</tt> that contains only these SSRC groups which were actually
   *     removed(existed in this map).
   */
  public MediaSSRCGroupMap remove(MediaSSRCGroupMap mapToRemove) {
    MediaSSRCGroupMap removedGroups = new MediaSSRCGroupMap();

    for (String media : mapToRemove.groupMap.keySet()) {
      List<SSRCGroup> groupList = getSSRCGroupsForMedia(media);

      List<SSRCGroup> toBeRemoved = new ArrayList<SSRCGroup>();

      for (SSRCGroup ssrcGroupToCheck : mapToRemove.groupMap.get(media)) {
        for (SSRCGroup ssrcGroup : groupList) {
          if (ssrcGroupToCheck.equals(ssrcGroup)) {
            toBeRemoved.add(ssrcGroup);
          }
        }
      }

      removedGroups.getSSRCGroupsForMedia(media).addAll(toBeRemoved);

      groupList.removeAll(toBeRemoved);
    }

    return removedGroups;
  }