diff --git a/src/net/java/sip/communicator/impl/neomedia/device/ImageStreamingAuto.java b/src/net/java/sip/communicator/impl/neomedia/device/ImageStreamingAuto.java
index 2d97a1a0d..2baaf8b3a 100644
--- a/src/net/java/sip/communicator/impl/neomedia/device/ImageStreamingAuto.java
+++ b/src/net/java/sip/communicator/impl/neomedia/device/ImageStreamingAuto.java
@@ -27,7 +27,7 @@ public ImageStreamingAuto() throws Exception
{
String name = "Desktop streaming";
CaptureDeviceInfo devInfo = new CaptureDeviceInfo(name,
- new MediaLocator(ImageStreamingUtils.LOCATOR_PREFIX + name),
+ new MediaLocator(ImageStreamingUtils.LOCATOR_PREFIX + ":" + name),
DataSource.getFormats());
/* add to JMF device manager */
diff --git a/src/net/java/sip/communicator/impl/neomedia/device/VideoMediaDeviceSession.java b/src/net/java/sip/communicator/impl/neomedia/device/VideoMediaDeviceSession.java
index 1f50400ae..715886679 100644
--- a/src/net/java/sip/communicator/impl/neomedia/device/VideoMediaDeviceSession.java
+++ b/src/net/java/sip/communicator/impl/neomedia/device/VideoMediaDeviceSession.java
@@ -12,6 +12,8 @@
import javax.media.protocol.*;
import net.java.sip.communicator.impl.neomedia.*;
+import net.java.sip.communicator.impl.neomedia.protocol.*;
+import net.java.sip.communicator.impl.neomedia.imgstreaming.*;
import net.java.sip.communicator.service.neomedia.*;
import net.java.sip.communicator.service.neomedia.event.*;
import net.java.sip.communicator.util.*;
@@ -90,23 +92,22 @@ protected DataSource createCaptureDevice()
* Create our DataSource as SourceCloneable so we can use it to both
* display local video and stream to remote peer.
*/
- /*
- * FIXME By overriding the super implementation, we have disabled muting
- * support.
- */
- DataSource captureDevice = getDevice().createOutputDataSource();
+ DataSource captureDevice = super.createCaptureDevice();
if (captureDevice != null)
{
MediaLocator locator = captureDevice.getLocator();
-
+
/*
* FIXME There is no video in calls when using the QuickTime/QTKit
- * CaptureDevice so the local video support is disabled for it now.
+ * CaptureDevice and desktop streaming, so the local video support
+ * is disabled for them now.
*/
if ((locator == null)
- || !QuickTimeAuto.LOCATOR_PROTOCOL
- .equals(locator.getProtocol()))
+ || (!QuickTimeAuto.LOCATOR_PROTOCOL
+ .equals(locator.getProtocol()) &&
+ !ImageStreamingUtils.LOCATOR_PREFIX
+ .equals(locator.getProtocol())))
{
DataSource cloneableDataSource
= Manager.createCloneableDataSource(captureDevice);
diff --git a/src/net/java/sip/communicator/impl/neomedia/imgstreaming/ImageStreamingUtils.java b/src/net/java/sip/communicator/impl/neomedia/imgstreaming/ImageStreamingUtils.java
index d97ce2530..ae180153e 100644
--- a/src/net/java/sip/communicator/impl/neomedia/imgstreaming/ImageStreamingUtils.java
+++ b/src/net/java/sip/communicator/impl/neomedia/imgstreaming/ImageStreamingUtils.java
@@ -19,7 +19,7 @@ public class ImageStreamingUtils
/**
* The locator prefix used when creating or parsing MediaLocators.
*/
- public static final String LOCATOR_PREFIX = "imgstreaming:";
+ public static final String LOCATOR_PREFIX = "imgstreaming";
/**
* Get a scaled BufferedImage.
diff --git a/src/net/java/sip/communicator/impl/neomedia/protocol/PullBufferDataSourceDelegate.java b/src/net/java/sip/communicator/impl/neomedia/protocol/PullBufferDataSourceDelegate.java
index 2de37a585..d3b2fd015 100644
--- a/src/net/java/sip/communicator/impl/neomedia/protocol/PullBufferDataSourceDelegate.java
+++ b/src/net/java/sip/communicator/impl/neomedia/protocol/PullBufferDataSourceDelegate.java
@@ -96,6 +96,19 @@ public String getContentType()
return dataSource.getContentType();
}
+ /**
+ * Implements {@link DataSource#getLocator()}. Delegates to the wrapped
+ * DataSource.
+ *
+ * @return a MediaLocator value which describes the locator of the
+ * wrapped DataSource
+ */
+ @Override
+ public MediaLocator getLocator()
+ {
+ return dataSource.getLocator();
+ }
+
/**
* Implements {@link DataSource#getControl(String)}. Delegates to the
* wrapped DataSource. Overrides
diff --git a/src/net/java/sip/communicator/impl/neomedia/protocol/PushBufferDataSourceDelegate.java b/src/net/java/sip/communicator/impl/neomedia/protocol/PushBufferDataSourceDelegate.java
index 762d05ac6..707b4060e 100644
--- a/src/net/java/sip/communicator/impl/neomedia/protocol/PushBufferDataSourceDelegate.java
+++ b/src/net/java/sip/communicator/impl/neomedia/protocol/PushBufferDataSourceDelegate.java
@@ -96,6 +96,19 @@ public String getContentType()
return dataSource.getContentType();
}
+ /**
+ * Implements {@link DataSource#getLocator()}. Delegates to the wrapped
+ * DataSource.
+ *
+ * @return a MediaLocator value which describes the locator of the
+ * wrapped DataSource
+ */
+ @Override
+ public MediaLocator getLocator()
+ {
+ return dataSource.getLocator();
+ }
+
/**
* Implements {@link DataSource#getControl(String)}. Delegates to the
* wrapped DataSource. Overrides