diff --git a/src/net/java/sip/communicator/impl/neomedia/conference/AudioMixer.java b/src/net/java/sip/communicator/impl/neomedia/conference/AudioMixer.java
index 345b27a7d..e636429de 100644
--- a/src/net/java/sip/communicator/impl/neomedia/conference/AudioMixer.java
+++ b/src/net/java/sip/communicator/impl/neomedia/conference/AudioMixer.java
@@ -508,27 +508,7 @@ public static Object getControl(Controls controlsImpl, String controlType)
*/
Time getDuration()
{
- Time duration = null;
-
- synchronized (inputDataSources)
- {
- for (InputDataSourceDesc inputDataSourceDesc : inputDataSources)
- {
- Time inputDuration
- = inputDataSourceDesc
- .getEffectiveInputDataSource().getDuration();
-
- if (Duration.DURATION_UNBOUNDED.equals(inputDuration)
- || Duration.DURATION_UNKNOWN.equals(inputDuration))
- return inputDuration;
-
- if ((duration == null)
- || (duration.getNanoseconds()
- < inputDuration.getNanoseconds()))
- duration = inputDuration;
- }
- }
- return (duration == null) ? Duration.DURATION_UNKNOWN : duration;
+ return ((DataSource) captureDevice).getDuration();
}
/**
diff --git a/src/net/java/sip/communicator/impl/neomedia/device/AudioMixerMediaDevice.java b/src/net/java/sip/communicator/impl/neomedia/device/AudioMixerMediaDevice.java
index 041075987..179c8932c 100644
--- a/src/net/java/sip/communicator/impl/neomedia/device/AudioMixerMediaDevice.java
+++ b/src/net/java/sip/communicator/impl/neomedia/device/AudioMixerMediaDevice.java
@@ -108,7 +108,7 @@ public synchronized MediaDeviceSession createSession()
* @return the AudioMixer which performs audio mixing in this
* MediaDevice (and rather the session it represents)
*/
- private AudioMixer getAudioMixer()
+ private synchronized AudioMixer getAudioMixer()
{
if (audioMixer == null)
audioMixer = new AudioMixer(device.createCaptureDevice())
diff --git a/src/net/java/sip/communicator/impl/neomedia/device/MediaDeviceImpl.java b/src/net/java/sip/communicator/impl/neomedia/device/MediaDeviceImpl.java
index e08136986..a53154f39 100644
--- a/src/net/java/sip/communicator/impl/neomedia/device/MediaDeviceImpl.java
+++ b/src/net/java/sip/communicator/impl/neomedia/device/MediaDeviceImpl.java
@@ -124,7 +124,7 @@ CaptureDevice createCaptureDevice()
logger
.error(
"Failed to create CaptureDevice"
- + "from CaptureDeviceInfo "
+ + " from CaptureDeviceInfo "
+ captureDeviceInfo,
exception);
else
diff --git a/src/net/java/sip/communicator/impl/neomedia/device/MediaDeviceSession.java b/src/net/java/sip/communicator/impl/neomedia/device/MediaDeviceSession.java
index 9d967cbef..d0731df05 100644
--- a/src/net/java/sip/communicator/impl/neomedia/device/MediaDeviceSession.java
+++ b/src/net/java/sip/communicator/impl/neomedia/device/MediaDeviceSession.java
@@ -210,7 +210,7 @@ public void addReceiveStream(ReceiveStream receiveStream)
* @param receiveStreamDataSource the DataSource to be used for
* accessing the media data of receiveStream during its playback
*/
- protected void addReceiveStream(
+ protected synchronized void addReceiveStream(
ReceiveStream receiveStream,
DataSource receiveStreamDataSource)
{
@@ -599,7 +599,7 @@ private static Format findFirstMatchingFormat(
* @return the DataSource that this instance uses to read captured
* media from
*/
- protected DataSource getCaptureDevice()
+ protected synchronized DataSource getCaptureDevice()
{
if (captureDevice == null)
captureDevice = createCaptureDevice();
@@ -1028,7 +1028,7 @@ protected void realizeComplete(Processor player)
* MediaDeviceSession and playback on the associated
* MediaDevice
*/
- public void removeReceiveStream(ReceiveStream receiveStream)
+ public synchronized void removeReceiveStream(ReceiveStream receiveStream)
{
DataSource receiveStreamDataSource
= receiveStreams.remove(receiveStream);