/** * 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; }