diff --git a/src/net/java/sip/communicator/impl/neomedia/VideoMediaStreamImpl.java b/src/net/java/sip/communicator/impl/neomedia/VideoMediaStreamImpl.java
index 7181e6ff7..0d02c9609 100644
--- a/src/net/java/sip/communicator/impl/neomedia/VideoMediaStreamImpl.java
+++ b/src/net/java/sip/communicator/impl/neomedia/VideoMediaStreamImpl.java
@@ -920,6 +920,32 @@ public QualityControl getQualityControl()
return qualityControl;
}
+ /**
+ * Updates the QualityControl of this VideoMediaStream.
+ *
+ * @param advancedParams parameters of advanced attributes that may affect
+ * quality control
+ */
+ public void updateQualityControl(
+ Map advancedParams)
+ {
+ for(Map.Entry entry : advancedParams.entrySet())
+ {
+ if(entry.getKey().equals("imageattr"))
+ {
+ Dimension res[] = parseSendRecvResolution(entry.getValue());
+
+ if(res != null)
+ {
+ qualityControl.setRemoteSendMaxPreset(
+ new QualityPreset(res[0]));
+ qualityControl.setRemoteReceiveResolution(
+ res[1]);
+ }
+ }
+ }
+ }
+
/**
* Implements the KeyFrameControl of this
* VideoMediaStream.
diff --git a/src/net/java/sip/communicator/impl/protocol/sip/CallPeerMediaHandlerSipImpl.java b/src/net/java/sip/communicator/impl/protocol/sip/CallPeerMediaHandlerSipImpl.java
index 44327db55..f1257c611 100644
--- a/src/net/java/sip/communicator/impl/protocol/sip/CallPeerMediaHandlerSipImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/sip/CallPeerMediaHandlerSipImpl.java
@@ -513,6 +513,24 @@ private Vector createMediaDescriptionsForAnswer(
QualityPreset sendQualityPreset = null;
QualityPreset receiveQualityPreset = null;
+ // update stream
+ MediaStream stream = getStream(MediaType.VIDEO);
+
+ if(stream != null && dev != null)
+ {
+ List fmts = intersectFormats(
+ dev.getSupportedFormats(),
+ remoteFormats);
+
+ if(fmts.size() > 0)
+ {
+ MediaFormat fmt = fmts.get(0);
+
+ ((VideoMediaStream)stream).updateQualityControl(
+ fmt.getAdvancedAttributes());
+ }
+ }
+
if(qualityControls != null)
{
// the one we will send is the other party receive
diff --git a/src/net/java/sip/communicator/service/neomedia/VideoMediaStream.java b/src/net/java/sip/communicator/service/neomedia/VideoMediaStream.java
index 2530f19c8..28738ee25 100644
--- a/src/net/java/sip/communicator/service/neomedia/VideoMediaStream.java
+++ b/src/net/java/sip/communicator/service/neomedia/VideoMediaStream.java
@@ -7,6 +7,7 @@
package net.java.sip.communicator.service.neomedia;
import java.awt.*;
+import java.util.*;
import net.java.sip.communicator.service.neomedia.control.*;
import net.java.sip.communicator.service.neomedia.event.*;
@@ -88,4 +89,13 @@ public interface VideoMediaStream
* @return the QualityControl of this VideoMediaStream
*/
public QualityControl getQualityControl();
+
+ /**
+ * Updates the QualityControl of this VideoMediaStream.
+ *
+ * @param advancedParams parameters of advanced attributes that may affect
+ * quality control
+ */
+ public void updateQualityControl(
+ Map advancedParams);
}