diff --git a/src/net/java/sip/communicator/impl/protocol/sip/sdp/SdpUtils.java b/src/net/java/sip/communicator/impl/protocol/sip/sdp/SdpUtils.java index 1bf5bc178..fd53672ab 100644 --- a/src/net/java/sip/communicator/impl/protocol/sip/sdp/SdpUtils.java +++ b/src/net/java/sip/communicator/impl/protocol/sip/sdp/SdpUtils.java @@ -273,7 +273,7 @@ private static MediaFormat createFormat( else { //if rtpmap was null, check whether we have previously registered - //the type in our dynamiyc payload type registry. and if that's + //the type in our dynamic payload type registry. and if that's //the case return it. MediaFormat fmt = ptRegistry.findFormat(payloadType); if (fmt != null) @@ -290,6 +290,12 @@ private static MediaFormat createFormat( if (advp != null) advancedAttrMap = parseAdvancedAttributes(advp); + // Many implementations use opus as "opus/48000", while the specification + // mandates "opus/48000/2". Our upper layers only support 2 channels, so + // we patch it here. + if ("opus".equals(encoding)) + numChannels = 2; + //now create the format. MediaFormat format = SipActivator.getMediaService().getFormatFactory()