diff --git a/src/org/jitsi/impl/neomedia/audiolevel/AudioLevelEffect.java b/src/org/jitsi/impl/neomedia/audiolevel/AudioLevelEffect.java index f4b9b6528413e3b402d985a4e631e253ac751859..9f6618a15bf13373df6b238089e7d015bfb6da1b 100644 --- a/src/org/jitsi/impl/neomedia/audiolevel/AudioLevelEffect.java +++ b/src/org/jitsi/impl/neomedia/audiolevel/AudioLevelEffect.java @@ -214,6 +214,7 @@ public int process(Buffer inputBuffer, Buffer outputBuffer) outputBuffer.setHeader(inputBuffer.getHeader()); outputBuffer.setSequenceNumber(inputBuffer.getSequenceNumber()); outputBuffer.setTimeStamp(inputBuffer.getTimeStamp()); + outputBuffer.setRtpTimeStamp(inputBuffer.getRtpTimeStamp()); outputBuffer.setFlags(inputBuffer.getFlags()); outputBuffer.setDiscard(inputBuffer.isDiscard()); outputBuffer.setEOM(inputBuffer.isEOM()); diff --git a/src/org/jitsi/impl/neomedia/codec/audio/opus/JNIDecoder.java b/src/org/jitsi/impl/neomedia/codec/audio/opus/JNIDecoder.java index fa8fe630f829f3554234e71e655546ad36e150e1..2068b4650da327211e347d7f7871f03d88cd7742 100644 --- a/src/org/jitsi/impl/neomedia/codec/audio/opus/JNIDecoder.java +++ b/src/org/jitsi/impl/neomedia/codec/audio/opus/JNIDecoder.java @@ -256,6 +256,13 @@ protected int doProcess(Buffer inBuf, Buffer outBuf) | (((in == null) || (inLength == 0)) ? BUFFER_FLAG_PLC : BUFFER_FLAG_FEC)); + + long ts = inBuf.getRtpTimeStamp(); + ts -= lostSeqNoCount * lastFrameSizeInSamplesPerChannel; + if (ts < 0) + ts += 1L<<32; + outBuf.setRtpTimeStamp(ts); + nbDecodedFec++; } @@ -310,7 +317,7 @@ protected int doProcess(Buffer inBuf, Buffer outBuf) if (outLength > 0) { outBuf.setDuration( - totalFrameSizeInSamplesPerChannel * channels * 1000L * 1000L + totalFrameSizeInSamplesPerChannel * 1000L * 1000L * 1000L / outputSampleRate); outBuf.setFormat(getOutputFormat()); outBuf.setLength(outLength); diff --git a/src/org/jitsi/impl/neomedia/protocol/CachingPushBufferStream.java b/src/org/jitsi/impl/neomedia/protocol/CachingPushBufferStream.java index 9773e279e633492b371a97b44158ac36b2c0e342..96b77bf918eba1ff817655f3a20571edcb974402 100644 --- a/src/org/jitsi/impl/neomedia/protocol/CachingPushBufferStream.java +++ b/src/org/jitsi/impl/neomedia/protocol/CachingPushBufferStream.java @@ -499,6 +499,7 @@ private int read(Buffer in, Buffer out, int outOffset) out.setHeader(in.getHeader()); out.setSequenceNumber(in.getSequenceNumber()); out.setTimeStamp(in.getTimeStamp()); + out.setRtpTimeStamp(in.getRtpTimeStamp()); /* * It's possible that we've split the input into multiple