package im.actor.core.modules.calls.peers;
import im.actor.runtime.webrtc.WebRTCSessionDescription;
import im.actor.runtime.webrtc.sdp.SDP;
import im.actor.runtime.webrtc.sdp.SDPScheme;
import im.actor.runtime.webrtc.sdp.entities.SDPCodec;
import im.actor.runtime.webrtc.sdp.entities.SDPMedia;
public final class SDPOptimizer {
public static WebRTCSessionDescription optimize(WebRTCSessionDescription src) {
SDPScheme sdpScheme = SDP.parse(src.getSdp());
// Prefer ISAC over other audio codecs
for (SDPMedia media : sdpScheme.getMediaLevel()) {
SDPCodec isacCodec = null;
for (SDPCodec codec : media.getCodecs()) {
if (codec.getName().toLowerCase().equals("isac")) {
isacCodec = codec;
break;
}
}
if (isacCodec != null) {
media.getCodecs().remove(isacCodec);
media.getCodecs().add(0, isacCodec);
}
}
return new WebRTCSessionDescription(src.getType(), sdpScheme.toSDP());
}
private SDPOptimizer() {
}
}