From 4b266e70d68113a4053a634302ff43b7eefbf79a Mon Sep 17 00:00:00 2001 From: Damian Minkov Date: Wed, 28 Mar 2012 13:13:38 +0000 Subject: [PATCH] Fixes several NPE exceptions. Fix when there is no device specified for desktop share use desktop media use case when choosing video device. --- .../sip/communicator/impl/neomedia/MediaServiceImpl.java | 3 ++- .../impl/protocol/jabber/CallPeerJabberImpl.java | 4 +++- .../jabber/OperationSetDesktopStreamingJabberImpl.java | 8 ++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/net/java/sip/communicator/impl/neomedia/MediaServiceImpl.java b/src/net/java/sip/communicator/impl/neomedia/MediaServiceImpl.java index bc6be0057..63da32a3a 100644 --- a/src/net/java/sip/communicator/impl/neomedia/MediaServiceImpl.java +++ b/src/net/java/sip/communicator/impl/neomedia/MediaServiceImpl.java @@ -1318,7 +1318,8 @@ public boolean isPartialStreaming(MediaDevice mediaDevice) MediaDeviceImpl dev = (MediaDeviceImpl)mediaDevice; CaptureDeviceInfo devInfo = dev.getCaptureDeviceInfo(); - return devInfo.getName().startsWith("Partial desktop streaming"); + return (devInfo != null + && devInfo.getName().startsWith("Partial desktop streaming")); } /** diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/CallPeerJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/CallPeerJabberImpl.java index 3971a3665..84e244566 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/CallPeerJabberImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/CallPeerJabberImpl.java @@ -880,7 +880,9 @@ public void sendModifyVideoResolutionContent() return; } - content.setSenders(senders); + // if we are only receiving video senders is null + if(senders != null) + content.setSenders(senders); JingleIQ contentIQ = JinglePacketFactory .createContentModify(getProtocolProvider().getOurJID(), diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/OperationSetDesktopStreamingJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/OperationSetDesktopStreamingJabberImpl.java index 2a1d5fc92..dde9b31a2 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/OperationSetDesktopStreamingJabberImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/OperationSetDesktopStreamingJabberImpl.java @@ -194,10 +194,14 @@ public void setLocalVideoAllowed(Call call, CallJabberImpl callJabberImpl = (CallJabberImpl) call; if (mediaDevice == null) - mediaDevice = callJabberImpl.getDefaultDevice(MediaType.VIDEO); + { + MediaService mediaService = ProtocolMediaActivator.getMediaService(); + mediaDevice = mediaService.getDefaultDevice(MediaType.VIDEO, + getMediaUseCase()); + } - callJabberImpl.setLocalVideoAllowed(allowed, MediaUseCase.DESKTOP); callJabberImpl.setVideoDevice(mediaDevice); + callJabberImpl.setLocalVideoAllowed(allowed, getMediaUseCase()); MediaFormat mediaDeviceFormat = mediaDevice.getFormat();