From b807ffabad08c5e255df83507baf567e58dd20d8 Mon Sep 17 00:00:00 2001 From: Sebastien Vincent Date: Mon, 31 Jan 2011 11:17:36 +0000 Subject: [PATCH] Increase receive buffer of the RTP socket because in case of high fps video, some packets could overflow the buffer (especially on Windows which has low receive buffer by default), which means that some packets will be dropped. --- .../impl/neomedia/RTPConnectorInputStream.java | 8 ++++++++ .../impl/neomedia/codec/video/h264/JNIDecoder.java | 1 + 2 files changed, 9 insertions(+) diff --git a/src/net/java/sip/communicator/impl/neomedia/RTPConnectorInputStream.java b/src/net/java/sip/communicator/impl/neomedia/RTPConnectorInputStream.java index 70cfd25d4..e5cfcd548 100755 --- a/src/net/java/sip/communicator/impl/neomedia/RTPConnectorInputStream.java +++ b/src/net/java/sip/communicator/impl/neomedia/RTPConnectorInputStream.java @@ -86,6 +86,14 @@ public RTPConnectorInputStream(DatagramSocket socket) { this.socket = socket; + try + { + this.socket.setReceiveBufferSize(65535); + } + catch(IOException e) + { + } + closed = false; receiverThread = new Thread(this); receiverThread.start(); diff --git a/src/net/java/sip/communicator/impl/neomedia/codec/video/h264/JNIDecoder.java b/src/net/java/sip/communicator/impl/neomedia/codec/video/h264/JNIDecoder.java index f89c0d379..90ffd7c8a 100644 --- a/src/net/java/sip/communicator/impl/neomedia/codec/video/h264/JNIDecoder.java +++ b/src/net/java/sip/communicator/impl/neomedia/codec/video/h264/JNIDecoder.java @@ -263,6 +263,7 @@ public synchronized int process(Buffer inBuffer, Buffer outBuffer) // Ask FFmpeg to decode. got_picture[0] = false; + // TODO Take into account the offset of inputBuffer. FFmpeg.avcodec_decode_video( avcontext,