diff --git a/src/org/jitsi/impl/neomedia/RTPTranslatorImpl.java b/src/org/jitsi/impl/neomedia/RTPTranslatorImpl.java index 0efc456b86b81a5b439ad3007b13f6884218b7eb..63788bf7c7832d7087fd1b3edbbe60c1b7282aec 100644 --- a/src/org/jitsi/impl/neomedia/RTPTranslatorImpl.java +++ b/src/org/jitsi/impl/neomedia/RTPTranslatorImpl.java @@ -748,16 +748,16 @@ private synchronized int read( = streamDesc.connectorDesc.streamRTPManagerDesc; Format format = null; - /** - * Ignore packets coming from peers whose MediaStream's direction - * does not allow receiving. - */ - if (!streamRTPManagerDesc.streamRTPManager.getMediaStream() - .getDirection().allowsReceiving()) - return read; - if (data) { + /** + * Ignore RTP packets coming from peers whose MediaStream's direction + * does not allow receiving. + */ + if (!streamRTPManagerDesc.streamRTPManager.getMediaStream() + .getDirection().allowsReceiving()) + return read; + /* * Do the bytes in the specified buffer resemble (a header of) an * RTP packet? @@ -1023,16 +1023,18 @@ private synchronized int doWrite( StreamRTPManagerDesc streamRTPManagerDesc = streamDesc.connectorDesc.streamRTPManagerDesc; - /* - * Only write to OutputDataStream-s for which the associated - * MediaStream allows sending. - */ - if (streamRTPManagerDesc != exclusion - && streamRTPManagerDesc.streamRTPManager - .getMediaStream().getDirection().allowsSending()) + if (streamRTPManagerDesc != exclusion) { if (data) { + /* + * Only write data packets to OutputDataStream-s for + * which the associated MediaStream allows sending. + */ + if (!streamRTPManagerDesc.streamRTPManager. + getMediaStream().getDirection().allowsSending()) + return write; + if ((format != null) && (length > 0)) { Integer payloadType