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);