diff --git a/src/org/jitsi/impl/neomedia/RTPConnectorInputStream.java b/src/org/jitsi/impl/neomedia/RTPConnectorInputStream.java old mode 100644 new mode 100755 index 1a6d19a61cced6809d4a2e090460ec92cd2f41a8..0402a5f50656fde7c9c5b6637b6a1478264711e8 --- a/src/org/jitsi/impl/neomedia/RTPConnectorInputStream.java +++ b/src/org/jitsi/impl/neomedia/RTPConnectorInputStream.java @@ -209,10 +209,25 @@ protected RawPacket[] createRawPacket(DatagramPacket datagramPacket) if (pkt == null) pkt = new RawPacket(); - pkt.setBuffer(datagramPacket.getData()); + byte[] buffer = pkt.getBuffer(); + int length = datagramPacket.getLength(); + if (buffer == null || buffer.length < length) + { + buffer = new byte[length]; + pkt.setBuffer(buffer); + } + + System.arraycopy( + datagramPacket.getData(), + datagramPacket.getOffset(), + buffer, + 0, + length); + + pkt.setBuffer(buffer); + pkt.setOffset(0); + pkt.setLength(length); pkt.setFlags(0); - pkt.setLength(datagramPacket.getLength()); - pkt.setOffset(datagramPacket.getOffset()); pkts[0] = pkt; return pkts; @@ -302,7 +317,6 @@ public int getMinimumTransferSize() */ private void poolRawPacket(RawPacket pkt) { - pkt.setBuffer(null); pkt.setFlags(0); pkt.setLength(0); pkt.setOffset(0);