From 9b4ebdd7ded29be9eef36870ec0a3f2b7774dd5b Mon Sep 17 00:00:00 2001
From: Boris Grozev <boris@jitsi.org>
Date: Sat, 10 Nov 2012 12:01:27 +0000
Subject: [PATCH] Adds an Opus configuration form and changes the default Opus
 settings. Updates the Opus JNI binaries. Notifies encoders that implement
 PacketLossAwareEncoder (Opus and SILK) of packet loss information received
 via RTCP.

---
 lib/native/linux-64/libjnopus.so              | Bin 260857 -> 262288 bytes
 lib/native/linux/libjnopus.so                 | Bin 256888 -> 248880 bytes
 lib/native/mac/libjnopus.jnilib               | Bin 657008 -> 657576 bytes
 lib/native/windows-64/jnopus.dll              | Bin 279598 -> 281095 bytes
 lib/native/windows/jnopus.dll                 | Bin 254390 -> 255395 bytes
 ...itsi_impl_neomedia_codec_audio_opus_Opus.c |  55 +++++--
 ...itsi_impl_neomedia_codec_audio_opus_Opus.h |  46 +++++-
 .../jitsi/impl/neomedia/MediaStreamImpl.java  | 136 +++++++++++++-----
 src/org/jitsi/impl/neomedia/MediaUtils.java   |   3 +-
 .../neomedia/codec/audio/opus/JNIDecoder.java |   2 +-
 .../neomedia/codec/audio/opus/JNIEncoder.java | 131 +++++++++++++----
 .../impl/neomedia/codec/audio/opus/Opus.java  |  68 ++++++++-
 .../codec/audio/silk/JavaEncoder.java         | 114 ++++++++++++---
 .../neomedia/device/MediaDeviceSession.java   |   2 +-
 .../service/neomedia/codec/Constants.java     |  82 ++++++++++-
 .../control/PacketLossAwareEncoder.java       |  24 ++++
 16 files changed, 566 insertions(+), 97 deletions(-)
 create mode 100644 src/org/jitsi/service/neomedia/control/PacketLossAwareEncoder.java

diff --git a/lib/native/linux-64/libjnopus.so b/lib/native/linux-64/libjnopus.so
index 5a73eaafb66e390c09a03b0e63c399b05e293982..045fa4c9380c3edd33a2f64ea52f38de125bca99 100755
GIT binary patch
delta 23189
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

delta 22534
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
T_9{`W*w99Ku<uZ#ypH}q`HY{{

diff --git a/lib/native/linux/libjnopus.so b/lib/native/linux/libjnopus.so
index c55810f143401615df5c95484546ef779b469fd7..6fa870980561270879197d815d78ca7928b8b7d9 100755
GIT binary patch
delta 20881
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
OcfTP4Bpt;l>HiNC6TRaA

delta 26889
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
EKeTfmmH+?%

diff --git a/lib/native/mac/libjnopus.jnilib b/lib/native/mac/libjnopus.jnilib
index 7b58804f5b41e2c9dfb88a3ce0fa9d1be6a6ab7c..72550c2d067d739a2f1019366379b6bcff8d9049 100755
GIT binary patch
delta 15643
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
D$5C4(

delta 14708
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

diff --git a/lib/native/windows-64/jnopus.dll b/lib/native/windows-64/jnopus.dll
index 02ddb34c378d3712b74771d49786b056e48e8bc5..903c582080ae1bb972f2cbe427514944f2cdf8e0 100755
GIT binary patch
delta 22080
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

delta 21873
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
QS?(b*R66Ev)wS{e19>rtDF6Tf

diff --git a/lib/native/windows/jnopus.dll b/lib/native/windows/jnopus.dll
index 961fb5be44ddfe082a3dd9b8558ce7c69c2f8864..4e4e6d8f5816d5c622ab0d9e5adff39f6ce275b9 100755
GIT binary patch
delta 14103
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

delta 13690
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

diff --git a/src/native/opus/org_jitsi_impl_neomedia_codec_audio_opus_Opus.c b/src/native/opus/org_jitsi_impl_neomedia_codec_audio_opus_Opus.c
index 55058e78..0a07a0f0 100644
--- a/src/native/opus/org_jitsi_impl_neomedia_codec_audio_opus_Opus.c
+++ b/src/native/opus/org_jitsi_impl_neomedia_codec_audio_opus_Opus.c
@@ -66,12 +66,30 @@ JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encode
     return (jint) opus_encoder_ctl((OpusEncoder *)(intptr_t)encoder, OPUS_SET_VBR(use_vbr));
 }
 
+JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encoder_1get_1vbr
+  (JNIEnv *env, jclass clazz, jlong encoder)
+{
+    int x, ret;
+    ret = opus_encoder_ctl((OpusEncoder *)(intptr_t)encoder, OPUS_GET_VBR(&x));
+    if(ret<0) return ret;
+    return x;
+}
+
 JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encoder_1set_1vbr_1constraint
   (JNIEnv *env, jclass clazz, jlong encoder, jint use_cvbr)
 {
     return (jint) opus_encoder_ctl((OpusEncoder *)(intptr_t)encoder, OPUS_SET_VBR_CONSTRAINT(use_cvbr));
 }
 
+JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encoder_1get_1vbr_1constraint
+  (JNIEnv *env, jclass clazz, jlong encoder)
+{
+    int x, ret;
+    ret = opus_encoder_ctl((OpusEncoder *)(intptr_t)encoder, OPUS_GET_VBR_CONSTRAINT(&x));
+    if(ret<0) return ret;
+    return x;
+}
+
 JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encoder_1set_1complexity
   (JNIEnv *env, jclass clazz, jlong encoder, jint complexity)
 {
@@ -96,6 +114,27 @@ JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encode
     return (jint) opus_encoder_ctl((OpusEncoder *)(intptr_t)encoder, OPUS_SET_DTX(use_dtx));
 }
 
+JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encoder_1get_1dtx
+  (JNIEnv *env, jclass clazz, jlong encoder)
+{
+    int x, ret;
+    ret = opus_encoder_ctl((OpusEncoder *)(intptr_t)encoder, OPUS_GET_DTX(&x));
+    if(ret<0) return ret;
+    return x;
+}
+
+JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encoder_1set_1packet_1loss_1perc
+  (JNIEnv *env, jclass clazz, jlong encoder, jint percentage)
+{
+    return (jint) opus_encoder_ctl((OpusEncoder *)(intptr_t)encoder, OPUS_SET_PACKET_LOSS_PERC(percentage));
+}
+
+JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encoder_1set_1max_1bandwidth
+  (JNIEnv *env, jclass clazz, jlong encoder, jint max_bandwidth)
+{
+    return (jint) opus_encoder_ctl((OpusEncoder *)(intptr_t)encoder, OPUS_SET_MAX_BANDWIDTH(max_bandwidth));
+}
+
 JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encode
   (JNIEnv *env, jclass clazz, jlong encoder, jbyteArray input, jint inputOffset, jint frameSize, jbyteArray output, jint outputSize)
 {
@@ -148,7 +187,7 @@ JNIEXPORT void JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_decode
 }
 
 JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_decode
-  (JNIEnv *env, jclass clazz, jlong decoder, jbyteArray input, jint inputOffset, jint inputSize, jbyteArray output, jint outputSize)
+  (JNIEnv *env, jclass clazz, jlong decoder, jbyteArray input, jint inputOffset, jint inputSize, jbyteArray output, jint outputSize, jint decodeFEC)
 {
     jbyte *inputPtr = (*env)->GetByteArrayElements(env, input, NULL);
     jbyte *outputPtr = (*env)->GetByteArrayElements(env, output, NULL);
@@ -158,10 +197,10 @@ JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_decode
     {
         ret = opus_decode((OpusDecoder *)(intptr_t)decoder,
                 (unsigned char *) ((char *)inputPtr + inputOffset),
-		(int) inputSize,
+        (int) inputSize,
                 (opus_int16 *)outputPtr,
-		(int) outputSize,
-		0);
+        (int) outputSize,
+        (int) decodeFEC);
     }
     else
         ret = 0;
@@ -181,7 +220,7 @@ JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_packet
     jint bandwidth = 0;
     if(packetPtr){
         bandwidth = (jint) opus_packet_get_bandwidth((unsigned char *)packetPtr+offset);
-	(*env)->ReleaseByteArrayElements(env, packet, packetPtr, JNI_ABORT);
+    (*env)->ReleaseByteArrayElements(env, packet, packetPtr, JNI_ABORT);
     }
     return bandwidth;
 }
@@ -193,7 +232,7 @@ JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_packet
     jint channels = 0;
     if(packetPtr){
         channels = (jint) opus_packet_get_nb_channels((unsigned char *)packetPtr+offset);
-	(*env)->ReleaseByteArrayElements(env, packet, packetPtr, JNI_ABORT);
+    (*env)->ReleaseByteArrayElements(env, packet, packetPtr, JNI_ABORT);
     }
     return channels;
 }
@@ -205,7 +244,7 @@ JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_packet
     jint frames = 0;
     if(packetPtr){
         frames = (jint) opus_packet_get_nb_frames((unsigned char *)packetPtr+offset, len);
-	(*env)->ReleaseByteArrayElements(env, packet, packetPtr, JNI_ABORT);
+    (*env)->ReleaseByteArrayElements(env, packet, packetPtr, JNI_ABORT);
     }
     return frames;
 }
@@ -220,6 +259,6 @@ JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_decode
         samples = opus_decoder_get_nb_samples((OpusDecoder*)(intptr_t)decoder, (unsigned char *)packetPtr+offset, len);
     }
     if(packetPtr)
-	(*env)->ReleaseByteArrayElements(env, packet, packetPtr, JNI_ABORT);
+    (*env)->ReleaseByteArrayElements(env, packet, packetPtr, JNI_ABORT);
     return samples;
 }
diff --git a/src/native/opus/org_jitsi_impl_neomedia_codec_audio_opus_Opus.h b/src/native/opus/org_jitsi_impl_neomedia_codec_audio_opus_Opus.h
index 57f05396..d9b71c8a 100644
--- a/src/native/opus/org_jitsi_impl_neomedia_codec_audio_opus_Opus.h
+++ b/src/native/opus/org_jitsi_impl_neomedia_codec_audio_opus_Opus.h
@@ -19,6 +19,8 @@ extern "C" {
 #define org_jitsi_impl_neomedia_codec_audio_opus_Opus_BANDWIDTH_FULLBAND 1105L
 #undef org_jitsi_impl_neomedia_codec_audio_opus_Opus_OPUS_OK
 #define org_jitsi_impl_neomedia_codec_audio_opus_Opus_OPUS_OK 0L
+#undef org_jitsi_impl_neomedia_codec_audio_opus_Opus_OPUS_AUTO
+#define org_jitsi_impl_neomedia_codec_audio_opus_Opus_OPUS_AUTO -1000L
 #undef org_jitsi_impl_neomedia_codec_audio_opus_Opus_INVALID_PACKET
 #define org_jitsi_impl_neomedia_codec_audio_opus_Opus_INVALID_PACKET -4L
 #undef org_jitsi_impl_neomedia_codec_audio_opus_Opus_MAX_PACKET
@@ -87,6 +89,14 @@ JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encode
 JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encoder_1set_1vbr
   (JNIEnv *, jclass, jlong, jint);
 
+/*
+ * Class:     org_jitsi_impl_neomedia_codec_audio_opus_Opus
+ * Method:    encoder_get_vbr
+ * Signature: (J)I
+ */
+JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encoder_1get_1vbr
+  (JNIEnv *, jclass, jlong);
+
 /*
  * Class:     org_jitsi_impl_neomedia_codec_audio_opus_Opus
  * Method:    encoder_set_vbr_constraint
@@ -95,6 +105,14 @@ JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encode
 JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encoder_1set_1vbr_1constraint
   (JNIEnv *, jclass, jlong, jint);
 
+/*
+ * Class:     org_jitsi_impl_neomedia_codec_audio_opus_Opus
+ * Method:    encoder_get_vbr_constraint
+ * Signature: (J)I
+ */
+JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encoder_1get_1vbr_1constraint
+  (JNIEnv *, jclass, jlong);
+
 /*
  * Class:     org_jitsi_impl_neomedia_codec_audio_opus_Opus
  * Method:    encoder_set_complexity
@@ -127,6 +145,30 @@ JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encode
 JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encoder_1set_1dtx
   (JNIEnv *, jclass, jlong, jint);
 
+/*
+ * Class:     org_jitsi_impl_neomedia_codec_audio_opus_Opus
+ * Method:    encoder_get_dtx
+ * Signature: (J)I
+ */
+JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encoder_1get_1dtx
+  (JNIEnv *, jclass, jlong);
+
+/*
+ * Class:     org_jitsi_impl_neomedia_codec_audio_opus_Opus
+ * Method:    encoder_set_packet_loss_perc
+ * Signature: (JI)I
+ */
+JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encoder_1set_1packet_1loss_1perc
+  (JNIEnv *, jclass, jlong, jint);
+
+/*
+ * Class:     org_jitsi_impl_neomedia_codec_audio_opus_Opus
+ * Method:    encoder_set_max_bandwidth
+ * Signature: (JI)I
+ */
+JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encoder_1set_1max_1bandwidth
+  (JNIEnv *, jclass, jlong, jint);
+
 /*
  * Class:     org_jitsi_impl_neomedia_codec_audio_opus_Opus
  * Method:    encode
@@ -162,10 +204,10 @@ JNIEXPORT void JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_decode
 /*
  * Class:     org_jitsi_impl_neomedia_codec_audio_opus_Opus
  * Method:    decode
- * Signature: (J[BII[BI)I
+ * Signature: (J[BII[BII)I
  */
 JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_decode
-  (JNIEnv *, jclass, jlong, jbyteArray, jint, jint, jbyteArray, jint);
+  (JNIEnv *, jclass, jlong, jbyteArray, jint, jint, jbyteArray, jint, jint);
 
 /*
  * Class:     org_jitsi_impl_neomedia_codec_audio_opus_Opus
diff --git a/src/org/jitsi/impl/neomedia/MediaStreamImpl.java b/src/org/jitsi/impl/neomedia/MediaStreamImpl.java
index 662adf1f..a521d112 100644
--- a/src/org/jitsi/impl/neomedia/MediaStreamImpl.java
+++ b/src/org/jitsi/impl/neomedia/MediaStreamImpl.java
@@ -202,6 +202,11 @@ else if (MediaDeviceSession.SSRC_LIST.equals(propertyName))
      */
     private long numberOfReceivedSenderReports = 0;
 
+    /**
+     * Number of received receiver reports. Used for logging and debugging only.
+     */
+    private long numberOfReceivedReceiverReports = 0;
+
     /**
      * The minimum inter arrival jitter value the other party has reported.
      */
@@ -229,6 +234,12 @@ else if (MediaDeviceSession.SSRC_LIST.equals(propertyName))
      */
     private PayloadTypeTransformEngine ptTransformEngine;
 
+    /**
+     * The <tt>PacketLossAwareEncoder</tt> in the encoding codec chain, which
+     * is to be notified of packet loss information received via RTCP.
+     */
+    PacketLossAwareEncoder packetLossAwareEncoder = null;
+
     /**
      * Initializes a new <tt>MediaStreamImpl</tt> instance which will use the
      * specified <tt>MediaDevice</tt> for both capture and playback of media.
@@ -2495,15 +2506,22 @@ public void update(SessionEvent event)
      */
     public void update(RemoteEvent remoteEvent)
     {
-        if(!logger.isInfoEnabled())
-            return;
-
-        if(remoteEvent instanceof SenderReportEvent)
+        if(remoteEvent instanceof SenderReportEvent ||
+                remoteEvent instanceof ReceiverReportEvent)
         {
-            numberOfReceivedSenderReports++;
-
-            SenderReport report =
-                    ((SenderReportEvent)remoteEvent).getReport();
+            Report report;
+            boolean senderReport = false;
+            if(remoteEvent instanceof SenderReportEvent)
+            {
+                numberOfReceivedSenderReports++;
+                report = ((SenderReportEvent)remoteEvent).getReport();
+                senderReport = true;
+            }
+            else
+            {
+                numberOfReceivedReceiverReports++;
+                report = ((ReceiverReportEvent)remoteEvent).getReport();
+            }
 
             Feedback feedback = null;
             long remoteJitter = -1;
@@ -2522,36 +2540,55 @@ public void update(RemoteEvent remoteEvent)
                     maxRemoteInterArrivalJitter = remoteJitter;
             }
 
-            // As sender reports are received on every 5 seconds
-            // print every 4th packet, on every 20 seconds
-            if(numberOfReceivedSenderReports%4 != 1)
-                return;
+            //Notify the encoder of the percentage of packets lost by the
+            //other side. See RFC3550 Section 6.4.1 for the interpretation of
+            //'fraction lost'
+            PacketLossAwareEncoder plae = getPacketLossAwareEncoder();
+            if(plae != null)
+                plae.setExpectedPacketLoss(
+                        (int) ((feedback.getFractionLost() * 100) / 256));
 
-            StringBuilder buff
-                = new StringBuilder(StatisticsEngine.RTP_STAT_PREFIX);
-            MediaType mediaType = getMediaType();
-            String mediaTypeStr
-                = (mediaType == null) ? "" : mediaType.toString();
-
-            buff.append("Received a report for ")
-                .append(mediaTypeStr)
-                .append(" stream SSRC:")
-                .append(getLocalSourceID())
-                .append(" [packet count:")
-                .append(report.getSenderPacketCount())
-                .append(", bytes:").append(report.getSenderByteCount());
+            if(logger.isInfoEnabled())
+            {
+                // As reports are received on every 5 seconds
+                // print every 4th packet, on every 20 seconds
+                if((numberOfReceivedSenderReports
+                        + numberOfReceivedReceiverReports)%4 != 1)
+                    return;
+
+                StringBuilder buff
+                    = new StringBuilder(StatisticsEngine.RTP_STAT_PREFIX);
+                MediaType mediaType = getMediaType();
+                String mediaTypeStr
+                    = (mediaType == null) ? "" : mediaType.toString();
+
+                buff.append("Received a ")
+                    .append(senderReport ? "sender" : "receiver")
+                    .append(" report for ")
+                    .append(mediaTypeStr)
+                    .append(" stream SSRC:")
+                    .append(getLocalSourceID())
+                    .append(" [");
+                if(senderReport)
+                {
+                    buff.append("packet count:")
+                        .append(((SenderReport) report).getSenderPacketCount())
+                        .append(", bytes:")
+                        .append(((SenderReport) report).getSenderByteCount());
+                }
 
                 if(feedback != null)
                 {
                     buff.append(", interarrival jitter:")
-                            .append(remoteJitter)
-                    .append(", lost packets:").append(feedback.getNumLost())
-                    .append(", time since previous report:")
-                            .append((int) (feedback.getDLSR() / 65.536))
-                            .append("ms");
+                        .append(remoteJitter)
+                        .append(", lost packets:").append(feedback.getNumLost())
+                        .append(", time since previous report:")
+                        .append((int) (feedback.getDLSR() / 65.536))
+                        .append("ms");
                 }
-            buff.append(" ]");
-            logger.info(buff);
+                buff.append(" ]");
+                logger.info(buff);
+            }
         }
     }
 
@@ -2860,7 +2897,7 @@ public FECDecoderControl getFecDecoderControl(ReceiveStream receiveStream)
 
     /**
      * Adds an additional RTP payload mapping that will overriding one that
-     * we've set with {@link addDynamicRTPPayloadType(byte, MediaFormat)}.
+     * we've set with {@link #addDynamicRTPPayloadType(byte, MediaFormat)}.
      * This is necessary so that we can support the RFC3264 case where the
      * answerer has the right to declare what payload type mappings it wants to
      * receive RTP packets with even if they are different from those in the
@@ -2880,4 +2917,37 @@ public void addDynamicRTPPayloadTypeOverride(byte originalPt,
             ptTransformEngine.addPTMappingOverride(originalPt, overloadPt);
         }
     }
+
+    /**
+     * Gets this <tt>MediaDevice</tt>'s <tt>PacketLossAwareEncoder</tt> if any,
+     * <tt>null</tt> otherwise. To find such an instance, the codec chain
+     * contained in the <tt>DeviceSession</tt>'s processor is searched.
+     *
+     * @return this <tt>MediaDevice</tt>'s <tt>PacketLossAwareEncoder</tt> if
+     * any, <tt>null</tt> otherwise.
+     */
+    public PacketLossAwareEncoder getPacketLossAwareEncoder()
+    {
+        if(packetLossAwareEncoder != null)
+            return packetLossAwareEncoder;
+
+        MediaDeviceSession mediaDeviceSession = getDeviceSession();
+        if(mediaDeviceSession == null)
+            return null;
+        Processor processor = mediaDeviceSession.getProcessor();
+        if(processor == null)
+            return null;
+
+        for(TrackControl tc : processor.getTrackControls())
+        {
+            Object obj
+                    = tc.getControl(PacketLossAwareEncoder.class.getName());
+            if(obj instanceof PacketLossAwareEncoder)
+            {
+                packetLossAwareEncoder = (PacketLossAwareEncoder)obj;
+                return packetLossAwareEncoder;
+            }
+        }
+        return packetLossAwareEncoder;
+    }
 }
diff --git a/src/org/jitsi/impl/neomedia/MediaUtils.java b/src/org/jitsi/impl/neomedia/MediaUtils.java
index 3b539b9b..fa5038da 100644
--- a/src/org/jitsi/impl/neomedia/MediaUtils.java
+++ b/src/org/jitsi/impl/neomedia/MediaUtils.java
@@ -169,8 +169,7 @@ public class MediaUtils
         ConfigurationService cfg = LibJitsi.getConfigurationService();
 
         boolean advertiseFEC
-                = cfg.getBoolean("net.java.sip.communicator.impl.neomedia" +
-                ".codec.audio.silk.ADVERTISE_FEC", false);
+                = cfg.getBoolean(Constants.PROP_SILK_ADVERSISE_FEC, false);
         Map<String,String> silkFormatParams = new HashMap<String, String>();
         if(advertiseFEC)
             silkFormatParams.put("useinbandfec", "1");
diff --git a/src/org/jitsi/impl/neomedia/codec/audio/opus/JNIDecoder.java b/src/org/jitsi/impl/neomedia/codec/audio/opus/JNIDecoder.java
index 1af80796..40d1a50b 100644
--- a/src/org/jitsi/impl/neomedia/codec/audio/opus/JNIDecoder.java
+++ b/src/org/jitsi/impl/neomedia/codec/audio/opus/JNIDecoder.java
@@ -141,7 +141,7 @@ protected int doProcess(Buffer inputBuffer, Buffer outputBuffer)
         byte[] output = validateByteArraySize(outputBuffer, outputLength);
 
         int samplesCount = Opus.decode(decoder, input, inputOffset, inputLength,
-                                                output, outputLength);
+                                                output, outputLength, 0);
 
         if (samplesCount > 0)
         {
diff --git a/src/org/jitsi/impl/neomedia/codec/audio/opus/JNIEncoder.java b/src/org/jitsi/impl/neomedia/codec/audio/opus/JNIEncoder.java
index 9006edd4..013c9988 100644
--- a/src/org/jitsi/impl/neomedia/codec/audio/opus/JNIEncoder.java
+++ b/src/org/jitsi/impl/neomedia/codec/audio/opus/JNIEncoder.java
@@ -10,7 +10,13 @@
 import javax.media.format.*;
 import net.sf.fmj.media.*;
 import org.jitsi.impl.neomedia.codec.*;
+import org.jitsi.service.configuration.*;
+import org.jitsi.service.libjitsi.*;
 import org.jitsi.service.neomedia.codec.*;
+import org.jitsi.service.neomedia.control.*;
+import org.jitsi.util.*;
+
+import java.awt.*;
 
 /**
  * Implements an opus encoder.
@@ -19,6 +25,7 @@
  */
 public class JNIEncoder
     extends AbstractCodecExt
+    implements PacketLossAwareEncoder
 {
     /**
      * The list of <tt>Format</tt>s of audio data supported as input by
@@ -44,6 +51,13 @@ public class JNIEncoder
     private static final Format[] SUPPORTED_OUTPUT_FORMATS
         = new Format[] { new AudioFormat(Constants.OPUS_RTP) };
 
+    /**
+     * The <tt>Logger</tt> used by this <tt>JNIEncoder</tt> instance
+     * for logging output.
+     */
+    private final Logger logger
+            = Logger.getLogger(JNIEncoder.class);
+
     /**
      * Set the supported input formats.
      */
@@ -111,6 +125,11 @@ public class JNIEncoder
      */
     private double frameSize = 20;
 
+    /**
+     * The minimum expected packet loss percentage to set to the encoder.
+     */
+    private int minPacketLoss = 0;
+
     /**
      * Returns the number of bytes that we need to read from the input buffer
      * in order ot fill a frame of <tt>frameSize</tt>. Depends on the input
@@ -123,14 +142,14 @@ public class JNIEncoder
     private int inputFrameSize()
     {
         int fs =
-	    (int) (
+        (int) (
            2 /* sizeof(short) */
            * channels
            *  ((AudioFormat)getInputFormat()).getSampleRate() /* samples in 1s */
            *   frameSize /* milliseconds */
            ) / 1000;
 
-	    return fs;
+        return fs;
     }
 
     /**
@@ -143,6 +162,8 @@ public JNIEncoder()
                SUPPORTED_OUTPUT_FORMATS);
 
         inputFormats = SUPPORTED_INPUT_FORMATS;
+
+        addControl(this);
     }
 
     /**
@@ -170,25 +191,61 @@ protected void doClose()
     protected void doOpen()
         throws ResourceUnavailableException
     {
-
-    //TODO: make a ParametrizedAudioFormat (or something) class, and use it here
-    //to set the encoder parameters
-	AudioFormat inputFormat = (AudioFormat) getInputFormat();
-	int sampleRate = (int)inputFormat.getSampleRate();
-    channels = inputFormat.getChannels();
-
-    encoder = Opus.encoder_create(sampleRate, channels);
-    if (encoder == 0)
-        throw new ResourceUnavailableException("opus_encoder_create()");
-
-    //set default encoder settings
-    Opus.encoder_set_bitrate(encoder, 60000);
-	Opus.encoder_set_bandwidth(encoder, Opus.BANDWIDTH_FULLBAND);
-	Opus.encoder_set_vbr(encoder, 1);
-	Opus.encoder_set_complexity(encoder, 10);
-	Opus.encoder_set_inband_fec(encoder, 0);
-	Opus.encoder_set_dtx(encoder, 1);
-	Opus.encoder_set_force_channels(encoder, 1);
+        AudioFormat inputFormat = (AudioFormat) getInputFormat();
+        int sampleRate = (int)inputFormat.getSampleRate();
+        channels = inputFormat.getChannels();
+
+        encoder = Opus.encoder_create(sampleRate, channels);
+        if (encoder == 0)
+            throw new ResourceUnavailableException("opus_encoder_create()");
+
+        //Set encoder options according to user configuration and SDP parameters
+        ConfigurationService cfg = LibJitsi.getConfigurationService();
+
+        //configuration is in kilobits per second
+        int bitrate = 1000 *
+                cfg.getInt(Constants.PROP_OPUS_BITRATE, 32);
+        //TODO:update bitrate from SDP (maxaveragebitrate)
+        //Note: If the parameter "maxaveragebitrate" is below the range specified
+        //in Section 3.1.1 the session MUST be rejected.
+        if(bitrate < 500 && bitrate != Opus.OPUS_AUTO)
+            bitrate = 500;
+        if(bitrate > 512000 && bitrate != Opus.OPUS_AUTO)
+            bitrate = 512000;
+
+        String bandwidthStr
+                = cfg.getString(Constants.PROP_OPUS_BANDWIDTH, "auto");
+        int bandwidth = Opus.OPUS_AUTO;
+        if("fb".equals(bandwidthStr))
+            bandwidth = Opus.BANDWIDTH_FULLBAND;
+        else if("swb".equals(bandwidthStr))
+            bandwidth = Opus.BANDWIDTH_SUPERWIDEBAND;
+        else if("wb".equals(bandwidthStr))
+            bandwidth = Opus.BANDWIDTH_WIDEBAND;
+        else if("mb".equals(bandwidthStr))
+            bandwidth = Opus.BANDWIDTH_MEDIUMBAND;
+        else if("nb".equals(bandwidthStr))
+            bandwidth = Opus.BANDWIDTH_NARROWBAND;
+
+        int complexity = cfg.getInt(Constants.PROP_OPUS_COMPLEXITY, 10);
+
+        boolean useFEC = cfg.getBoolean(Constants.PROP_OPUS_FEC, true);
+        //TODO:check SDP for useinbandfec
+
+        minPacketLoss = cfg.getInt(
+                Constants.PROP_OPUS_MIN_EXPECTED_PACKET_LOSS, 1);
+        boolean useDTX = cfg.getBoolean(Constants.PROP_OPUS_DTX, true);
+        //TODO:check SDP parameters for usedtx
+
+        //TODO:check SDP for maxcodedaudiobandwidth
+        //TODO: check {min,max,}ptime and adjust the frame size
+
+        Opus.encoder_set_bitrate(encoder, bitrate);
+        Opus.encoder_set_bandwidth(encoder, bandwidth);
+        Opus.encoder_set_complexity(encoder, complexity);
+        Opus.encoder_set_inband_fec(encoder, useFEC ? 1 : 0);
+        Opus.encoder_set_packet_loss_perc(encoder, minPacketLoss);
+        Opus.encoder_set_dtx(encoder, useDTX ? 1 : 0);
     }
 
     /**
@@ -211,14 +268,13 @@ protected int doProcess(Buffer inputBuffer, Buffer outputBuffer)
             if (null == setInputFormat(inputFormat))
                 return BUFFER_PROCESSED_FAILED;
         }
-        inputFormat = this.inputFormat;
 
         byte[] input = (byte[]) inputBuffer.getData();
         int inputLength = inputBuffer.getLength();
         int inputOffset = inputBuffer.getOffset();
 
 
-	    int inputBytesNeeded = inputFrameSize();
+        int inputBytesNeeded = inputFrameSize();
 
         if ((previousInput != null) && (previousInputLength > 0))
         {
@@ -299,7 +355,7 @@ else if (inputLength < inputBytesNeeded)
 
         byte[] output = validateByteArraySize(outputBuffer, Opus.MAX_PACKET);
 
-	    int outputLength = Opus.encode(encoder, input, inputOffset,
+        int outputLength = Opus.encode(encoder, input, inputOffset,
                 inputBytesNeeded / 2, output, Opus.MAX_PACKET);
 
 
@@ -412,4 +468,31 @@ public Format setInputFormat(Format format)
         }
         return inputFormat;
     }
+
+    /**
+     * Updates the encoder's expected packet loss percentage to the bigger of
+     * <tt>percentage</tt> and <tt>this.minPacketLoss</tt>.
+     *
+     * @param percentage the expected packet loss percentage to set
+     */
+    public void setExpectedPacketLoss(int percentage)
+    {
+        if(opened)
+            Opus.encoder_set_packet_loss_perc(encoder,
+                    (percentage > minPacketLoss) ? percentage : minPacketLoss);
+
+        if(logger.isTraceEnabled())
+            logger.trace("Updating expected packet loss: " + percentage
+                    + " (minimum " + minPacketLoss + ")");
+    }
+
+    /**
+     * Stub. Only added in order to implement the
+     * <tt>PacketLossAwareEncoder</tt> interface.
+     *
+     * @return null
+     */
+    public Component getControlComponent() {
+        return null;
+    }
 }
diff --git a/src/org/jitsi/impl/neomedia/codec/audio/opus/Opus.java b/src/org/jitsi/impl/neomedia/codec/audio/opus/Opus.java
index bf27ddae..4115d208 100644
--- a/src/org/jitsi/impl/neomedia/codec/audio/opus/Opus.java
+++ b/src/org/jitsi/impl/neomedia/codec/audio/opus/Opus.java
@@ -8,6 +8,8 @@
 
 /**
  * Implements an interface to the native opus library
+ *
+ * @author Boris Grozev
  */
 public class Opus
 {
@@ -41,6 +43,11 @@ public class Opus
      */
     public static final int OPUS_OK = 0;
 
+    /**
+     * Constant used to set various settings to "automatic"
+     */
+    public static final int OPUS_AUTO = -1000;
+
     /**
      * Opus constant for an invalid packet
      */
@@ -139,6 +146,16 @@ public class Opus
      */
     public static native int encoder_set_vbr(long encoder, int use_vbr);
 
+    /**
+     * Wrapper around the native <tt>opus_encoder_ctl</tt> function. Returns the
+     * current encoder VBR setting
+     *
+     * @param encoder The encoder to use
+     *
+     * @return The current encoder VBR setting.
+     */
+    public static native int encoder_get_vbr(long encoder);
+
     /**
      * Wrapper around the native <tt>opus_encoder_ctl</tt> function. Sets the
      * encoder VBR constraint setting
@@ -151,6 +168,16 @@ public class Opus
     public static native int encoder_set_vbr_constraint(long encoder,
                                                         int use_cvbr);
 
+    /**
+     * Wrapper around the native <tt>opus_encoder_ctl</tt> function. Returns
+     * the current VBR constraint encoder setting.
+     *
+     * @param encoder The encoder to use
+     *
+     * @return the current VBR constraint encoder setting.
+     */
+    public static native int encoder_get_vbr_constraint(long encoder);
+
     /**
      * Wrapper around the native <tt>opus_encoder_ctl</tt> function. Sets the
      * encoder complexity setting.
@@ -197,6 +224,43 @@ public static native int encoder_set_force_channels(long encoder,
      */
     public static native int encoder_set_dtx(long encoder, int use_dtx);
 
+    /**
+     * Wrapper around the native <tt>opus_encoder_ctl</tt> function. Returns
+     * the current DTX setting of the encoder.
+     *
+     * @param encoder The encoder to use
+     *
+     * @return the current DTX setting of the encoder.
+     */
+    public static native int encoder_get_dtx(long encoder);
+
+    /**
+     * Wrapper around the native <tt>opus_encoder_ctl</tt> function. Sets the
+     * encoder's expected packet loss percentage.
+     *
+     * @param encoder The encoder to use
+     * @param percentage 0 to turn DTX off, non-zero to turn it on
+     *
+     * @return OPUS_OK on success.
+     */
+    public static native int encoder_set_packet_loss_perc(long encoder,
+                                                          int percentage);
+
+    /**
+     * Wrapper around the native <tt>opus_encoder_ctl</tt> function. Sets the
+     * maximum audio bandwidth to be used by the encoder.
+     *
+     * @param encoder The encoder to use
+     * @param maxBandwidth The maximum bandwidth to use, should be one of
+     *  <tt>BANDWIDTH_FULLBAND</tt>, <tt>BANDWIDTH_MEDIUMBAND</tt>,
+     *  <tt>BANDWIDTH_NARROWBAND</tt>, <tt>BANDWIDTH_SUPERWIDEBAND</tt> or
+     *  <tt>BANDWIDTH_WIDEBAND</tt>
+     *
+     * @return <tt>OPUS_OK</tt> on success.
+     */
+    public static native int encoder_set_max_bandwidth(long encoder,
+                                                       int maxBandwidth);
+
     /**
      * Encodes the input from <tt>input</tt> into an opus packet in
      * <tt>output</tt>.
@@ -254,12 +318,14 @@ public static native int encode(long encoder, byte[] input, int offset,
      * @param inputSize Size of the packet in bytes.
      * @param output Output buffer where the output will be stored.
      * @param outputSize Size in bytes of the output buffer.
+     * @param decodeFEC 0 to decode the packet normally, 1 to decode the FEC
+     * data in the packet.
      *
      * @return Number of samples decoded
      */
     public static native int decode(long decoder, byte[] input, int inputOffset,
                                     int inputSize, byte[] output,
-                                    int outputSize);
+                                    int outputSize, int decodeFEC);
 
     /**
      * Returns the audio bandwidth of an opus packet, one of
diff --git a/src/org/jitsi/impl/neomedia/codec/audio/silk/JavaEncoder.java b/src/org/jitsi/impl/neomedia/codec/audio/silk/JavaEncoder.java
index 3343af07..85073444 100644
--- a/src/org/jitsi/impl/neomedia/codec/audio/silk/JavaEncoder.java
+++ b/src/org/jitsi/impl/neomedia/codec/audio/silk/JavaEncoder.java
@@ -13,15 +13,28 @@
 import org.jitsi.service.configuration.*;
 import org.jitsi.service.libjitsi.*;
 import org.jitsi.service.neomedia.codec.*;
+import org.jitsi.service.neomedia.control.*;
+import org.jitsi.util.*;
+
+import java.awt.*;
 
 /**
  * Implements the SILK encoder as an FMJ/JMF <tt>Codec</tt>.
  *
  * @author Dingxin Xu
+ * @author Boris Grozev
  */
 public class JavaEncoder
     extends AbstractCodecExt
+    implements PacketLossAwareEncoder
 {
+    /**
+     * The <tt>Logger</tt> used by this <tt>JavaEncoder</tt> instance
+     * for logging output.
+     */
+    private final Logger logger
+            = Logger.getLogger(JavaEncoder.class);
+
     private static final int BITRATE = 40000;
 
     private static final int COMPLEXITY = 2;
@@ -51,8 +64,34 @@ public class JavaEncoder
     private static final double[] SUPPORTED_SAMPLE_RATES
         = new double[] { 8000, 12000, 16000, 24000 };
 
+    /**
+     * Default value for the use DTX setting
+     */
     private static final boolean USE_DTX = false;
 
+    /**
+     * If <tt>alwaysExpectPacketLoss</tt> is <tt>true</tt> the expected
+     * packet loss will always be set at or above this threshold.
+     */
+    private static final int MIN_PACKET_LOSS_PERCENTAGE = 3;
+
+    /**
+     * Whether to use FEC or not.
+     */
+    private boolean useFec;
+
+    /**
+     * Whether to always assume packet loss and set the encoder's expected
+     * packet loss over <tt>MIN_PACKET_LOSS_PERCENTAGE</tt>.
+     */
+    private boolean alwaysAssumePacketLoss = true;
+
+    /**
+     * The actual expected packet loss. Defaults to 0 and can be updated by
+     * outside classes through <tt>PacketLossUpdater</tt> instances.
+     */
+    private int expectedPacketLoss = 0;
+
     /**
      * The duration an output <tt>Buffer</tt> produced by this <tt>Codec</tt>
      * in nanosecond.
@@ -118,6 +157,26 @@ public JavaEncoder()
         super("SILK Encoder", AudioFormat.class, SUPPORTED_OUTPUT_FORMATS);
 
         inputFormats = SUPPORTED_INPUT_FORMATS;
+
+        ConfigurationService cfg = LibJitsi.getConfigurationService();
+        //TODO: we should have a default value dependent on the SDP parameters
+        //here.
+        useFec = cfg.getBoolean(Constants.PROP_SILK_FEC, true);
+        alwaysAssumePacketLoss
+                = cfg.getBoolean(Constants.PROP_SILK_ASSUME_PL, true);
+
+        //Update the statically defined value for "speech activity threshold"
+        //according to our configuration
+        String satStr = cfg.getString(Constants.PROP_SILK_FEC_SAT, "0.5");
+        float sat = Silk_define_FLP.LBRR_SPEECH_ACTIVITY_THRES;
+        try
+        {
+            sat = Float.parseFloat(satStr);
+        }
+        catch (Exception e){}
+        Silk_define_FLP.LBRR_SPEECH_ACTIVITY_THRES = sat;
+
+        addControl(this);
     }
 
     protected void doClose()
@@ -141,37 +200,16 @@ protected void doOpen()
         int channels = inputFormat.getChannels();
 
 
-        ConfigurationService cfg = LibJitsi.getConfigurationService();
-        //TODO: we should have a default value dependent on the SDP parameters
-        //here.
-        boolean useFEC = cfg.getBoolean("net.java.sip.communicator.impl."
-                +"neomedia.codec.audio.silk.encoder.USE_FEC", true);
-        boolean assumePacketLoss = cfg.getBoolean("net.java.sip.communicator." +
-                "impl.neomedia.codec.audio.silk.encoder." +
-                "ALWAYS_ASSUME_PACKET_LOSS", true);
-
-        //Update the statically defined value for "speech activity threshold"
-        //according to our configuration
-        String satStr = cfg.getString("net.java.sip.communicator.impl.neomedia"
-                + ".codec.audio.silk.encoder.SPEECH_ACTIVITY_THRESHOLD", "0.5");
-        float sat = Silk_define_FLP.LBRR_SPEECH_ACTIVITY_THRES;
-        try
-        {
-            sat = Float.parseFloat(satStr);
-        }
-        catch (Exception e){}
-        Silk_define_FLP.LBRR_SPEECH_ACTIVITY_THRES = sat;
-
         encControl.API_sampleRate = (int) sampleRate;
         encControl.bitRate = BITRATE;
         encControl.complexity = COMPLEXITY;
         encControl.maxInternalSampleRate = encControl.API_sampleRate;
-        encControl.packetLossPercentage = assumePacketLoss ? 3 : 0;
+        setExpectedPacketLoss(0);
         encControl.packetSize
             = (int)
                 ((JavaDecoder.FRAME_DURATION * sampleRate * channels) / 1000);
         encControl.useDTX = USE_DTX ? 1 : 0;
-        encControl.useInBandFEC = useFEC ? 1 : 0;
+        encControl.useInBandFEC = useFec ? 1 : 0;
     }
 
     protected int doProcess(Buffer inputBuffer, Buffer outputBuffer)
@@ -324,4 +362,34 @@ public long computeDuration(long length)
         }
         return outputFormat;
     }
+
+    /**
+     * Updates the encoder's packet loss percentage. Takes into account
+     * <tt>this.alwaysAssumePacketLoss</tt>.
+     *
+     * @param percentage the expected packet loss percentage to set.
+     */
+    public void setExpectedPacketLoss(int percentage)
+    {
+        if(opened)
+        {
+            if(alwaysAssumePacketLoss &&
+                    MIN_PACKET_LOSS_PERCENTAGE >= percentage)
+                percentage = MIN_PACKET_LOSS_PERCENTAGE;
+            encControl.packetLossPercentage = percentage;
+            if(logger.isTraceEnabled())
+                logger.trace("Setting expected packet loss to: "
+                        + percentage);
+        }
+    }
+
+    /**
+     * Stub. Only added in order to implement the
+     * <tt>PacketLossAwareEncoder</tt> interface.
+     *
+     * @return null
+     */
+    public Component getControlComponent() {
+        return null;
+    }
 }
diff --git a/src/org/jitsi/impl/neomedia/device/MediaDeviceSession.java b/src/org/jitsi/impl/neomedia/device/MediaDeviceSession.java
index 3189bad1..14c478cf 100644
--- a/src/org/jitsi/impl/neomedia/device/MediaDeviceSession.java
+++ b/src/org/jitsi/impl/neomedia/device/MediaDeviceSession.java
@@ -1026,7 +1026,7 @@ protected List<Player> getPlayers()
      * @return the JMF <tt>Processor</tt> which transcodes the
      * <tt>MediaDevice</tt> of this instance into the format of this instance
      */
-    private Processor getProcessor()
+    public Processor getProcessor()
     {
         if (processor == null)
             processor = createProcessor();
diff --git a/src/org/jitsi/service/neomedia/codec/Constants.java b/src/org/jitsi/service/neomedia/codec/Constants.java
index 7a842fe4..a49ea447 100644
--- a/src/org/jitsi/service/neomedia/codec/Constants.java
+++ b/src/org/jitsi/service/neomedia/codec/Constants.java
@@ -9,12 +9,13 @@
 import org.jitsi.util.*;
 
 /**
- * Allows start import of <tt>org.jitsi.impl.neomedia.codec</tt>
- * in order to get the constants define in
+ * Allows star import of <tt>org.jitsi.service.neomedia.codec</tt>
+ * in order to get the constants defined in
  * <tt>org.jitsi.service.neomedia.codec.Constants</tt> without star
  * import of <tt>org.jitsi.impl.neomedia.codec</tt>.
  *
  * @author Lubomir Marinov
+ * @author Boris Grozev
  */
 public class Constants
 {
@@ -110,6 +111,83 @@ public class Constants
      */
     public static final int VIDEO_HEIGHT;
 
+    /**
+     * The name of the property used to control whether FEC is enabled for SILK
+     */
+    public static final String PROP_SILK_FEC
+            = "net.java.sip.communicator.impl.neomedia.codec.audio.silk." +
+            "encoder.USE_FEC";
+
+    /**
+     * The name of the property used to control the the
+     * 'always assume packet loss' setting for SILK
+     */
+    public static final String PROP_SILK_ASSUME_PL
+            = "net.java.sip.communicator.impl.neomedia.codec.audio.silk." +
+            "encoder.AWLAYS_ASSUME_PACKET_LOSS";
+
+    /**
+     * The name of the property used to control the SILK
+     * 'speech activity threshold'
+     */
+    public static final String PROP_SILK_FEC_SAT
+            = "net.java.sip.communicator.impl.neomedia.codec.audio.silk." +
+            "encoder.SPEECH_ACTIVITY_THRESHOLD";
+
+    /**
+     * The name of the property used to control whether FEC support is
+     * advertised for SILK
+     */
+    public static final String PROP_SILK_ADVERSISE_FEC
+            = "net.java.sip.communicator.impl.neomedia.codec.audio.silk." +
+            "ADVERTISE_FEC";
+    /**
+     * The name of the property used to control the Opus encoder
+     * "audio bandwidth" setting
+     */
+    public static final String PROP_OPUS_BANDWIDTH
+            = "net.java.sip.communicator.impl.neomedia.codec.audio.opus." +
+            "encoder.AUDIO_BANDWIDTH";
+
+    /**
+     * The name of the property used to control the Opus encoder bitrate setting
+     */
+    public static final String PROP_OPUS_BITRATE
+            = "net.java.sip.communicator.impl.neomedia.codec.audio.opus." +
+            "encoder.BITRATE";
+
+    /**
+     * The name of the property used to control the Opus encoder "DTX" setting
+     */
+    public static final String PROP_OPUS_DTX
+            = "net.java.sip.communicator.impl.neomedia.codec.audio.opus." +
+            "encoder.DTX";
+
+    /**
+     * The name of the property used to control whether FEC is enabled for the
+     * Opus encoder
+     */
+    public static final String PROP_OPUS_FEC
+            = "net.java.sip.communicator.impl.neomedia.codec.audio.opus." +
+            "encoder.FEC";
+
+    /**
+     * The name of the property used to control the Opus encoder
+     * "minimum expected packet loss" setting
+     */
+    public static final String PROP_OPUS_MIN_EXPECTED_PACKET_LOSS
+            = "net.java.sip.communicator.impl.neomedia.codec.audio.opus." +
+            "encoder.MIN_EXPECTED_PACKET_LOSS";
+
+    /**
+     * The name of the property used to control the Opus encoder 'complexity'
+     * setting
+     */
+    public static final String PROP_OPUS_COMPLEXITY
+            = "net.java.sip.communicator.impl.neomedia.codec.audio.opus." +
+            "encoder.COMPLEXITY";
+
+
     static
     {
 
diff --git a/src/org/jitsi/service/neomedia/control/PacketLossAwareEncoder.java b/src/org/jitsi/service/neomedia/control/PacketLossAwareEncoder.java
new file mode 100644
index 00000000..aa1c34ec
--- /dev/null
+++ b/src/org/jitsi/service/neomedia/control/PacketLossAwareEncoder.java
@@ -0,0 +1,24 @@
+/*
+ * Jitsi, the OpenSource Java VoIP and Instant Messaging client.
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jitsi.service.neomedia.control;
+
+import javax.media.*;
+
+/**
+ * An interface used to notify encoders about the packet loss which is expected.
+ *
+ * @author Boris Grozev
+ */
+public interface PacketLossAwareEncoder extends Control
+{
+    /**
+     * Tells the encoder to expect <tt>percentage</tt> percent packet loss.
+     *
+     * @return the percentage of expected packet loss
+     */
+    public void setExpectedPacketLoss(int percentage);
+}
-- 
GitLab