From a431ea06ca6b7bdc349658dd12663f973bb6f73c Mon Sep 17 00:00:00 2001 From: Damian Minkov Date: Thu, 14 Dec 2006 11:15:08 +0000 Subject: [PATCH] speex codec implementation --- lib/jspeex.jar | Bin 0 -> 98722 bytes .../communicator/impl/media/MediaControl.java | 10 +- .../communicator/impl/media/MediaUtils.java | 22 ++ .../impl/media/codec/Constants.java | 4 + .../media/codec/audio/speex/JavaDecoder.java | 290 ++++++++++++++++++ .../media/codec/audio/speex/JavaEncoder.java | 145 +++++++++ 6 files changed, 468 insertions(+), 3 deletions(-) create mode 100644 lib/jspeex.jar create mode 100644 src/net/java/sip/communicator/impl/media/codec/audio/speex/JavaDecoder.java create mode 100644 src/net/java/sip/communicator/impl/media/codec/audio/speex/JavaEncoder.java diff --git a/lib/jspeex.jar b/lib/jspeex.jar new file mode 100644 index 0000000000000000000000000000000000000000..0a0079bed4a40fbb65c5cd0bbceb2d266ef13285 GIT binary patch literal 98722 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

VopfgiDr+Qd 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%0A=P0# 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 literal 0 HcmV?d00001 diff --git a/src/net/java/sip/communicator/impl/media/MediaControl.java b/src/net/java/sip/communicator/impl/media/MediaControl.java index 3529df533..a157cc9a2 100644 --- a/src/net/java/sip/communicator/impl/media/MediaControl.java +++ b/src/net/java/sip/communicator/impl/media/MediaControl.java @@ -81,8 +81,8 @@ public class MediaControl // javax.media.format.AudioFormat.DVI_RTP; Integer.toString(SdpConstants.DVI4_16000), // javax.media.format.AudioFormat.ALAW; - // PCMU is only supported for decoding ... as good as not supported - //Integer.toString(SdpConstants.PCMA), + Integer.toString(SdpConstants.PCMA), + Integer.toString(110), // javax.media.format.AudioFormat.G728_RTP; Integer.toString(SdpConstants.G728) // javax.media.format.AudioFormat.G729_RTP @@ -132,7 +132,11 @@ public class MediaControl { "net.java.sip.communicator.impl.media.codec.audio.alaw.JavaEncoder", "net.java.sip.communicator.impl.media.codec.audio.alaw.DePacketizer", - "net.java.sip.communicator.impl.media.codec.audio.alaw.Packetizer" + "net.java.sip.communicator.impl.media.codec.audio.alaw.Packetizer", + "net.java.sip.communicator.impl.media.codec.audio.speex.JavaEncoder", + "net.java.sip.communicator.impl.media.codec.audio.speex.JavaDecoder" +// ,"net.java.sip.communicator.impl.media.codec.audio.ilbc.JavaEncoder", +// "net.java.sip.communicator.impl.media.codec.audio.ilbc.JavaDecoder" // "net.java.sip.communicator.impl.media.codec.audio.g729.JavaDecoder", // "net.java.sip.communicator.impl.media.codec.audio.g729.JavaEncoder", // "net.java.sip.communicator.impl.media.codec.audio.g729.DePacketizer", diff --git a/src/net/java/sip/communicator/impl/media/MediaUtils.java b/src/net/java/sip/communicator/impl/media/MediaUtils.java index de93e37e0..ad3dfc8a0 100644 --- a/src/net/java/sip/communicator/impl/media/MediaUtils.java +++ b/src/net/java/sip/communicator/impl/media/MediaUtils.java @@ -50,6 +50,12 @@ public static String sdpToJmfEncoding(String sdpEncodingStr) return AudioFormat.DVI_RTP; case SdpConstants.PCMA: return Constants.ALAW_RTP; + case 97: + return Constants.ILBC_RTP; + case 98: + return Constants.ILBC_RTP; + case 110: + return Constants.SPEEX_RTP; case SdpConstants.G728: return AudioFormat.G728_RTP; case SdpConstants.G729: @@ -129,6 +135,22 @@ else if (jmfEncoding.equals(VideoFormat.H261_RTP)) { return Integer.toString(SdpConstants.H261); } + else if (jmfEncoding.equals(Constants.ILBC)) + { + return Integer.toString(97); + } + else if (jmfEncoding.equals(Constants.ILBC_RTP)) + { + return Integer.toString(97); + } + else if (jmfEncoding.equals(Constants.SPEEX)) + { + return Integer.toString(110); + } + else if (jmfEncoding.equals(Constants.SPEEX_RTP)) + { + return Integer.toString(110); + } else { return null; diff --git a/src/net/java/sip/communicator/impl/media/codec/Constants.java b/src/net/java/sip/communicator/impl/media/codec/Constants.java index 884675e2a..44c937345 100644 --- a/src/net/java/sip/communicator/impl/media/codec/Constants.java +++ b/src/net/java/sip/communicator/impl/media/codec/Constants.java @@ -13,4 +13,8 @@ public class Constants { public static final String ALAW_RTP = "ALAW/rtp"; + public static final String SPEEX_RTP = "speex/rtp"; + public static final String SPEEX = "speex"; + public static final String ILBC_RTP = "ilbc/rtp"; + public static final String ILBC = "ilbc"; } diff --git a/src/net/java/sip/communicator/impl/media/codec/audio/speex/JavaDecoder.java b/src/net/java/sip/communicator/impl/media/codec/audio/speex/JavaDecoder.java new file mode 100644 index 000000000..32a1fa3f4 --- /dev/null +++ b/src/net/java/sip/communicator/impl/media/codec/audio/speex/JavaDecoder.java @@ -0,0 +1,290 @@ +/* + * SIP Communicator, the OpenSource Java VoIP and Instant Messaging client. + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ +package net.java.sip.communicator.impl.media.codec.audio.speex; + +import java.io.*; +import javax.media.*; +import javax.media.format.*; + +import org.xiph.speex.*; +import net.java.sip.communicator.impl.media.codec.*; + +/** + * Speex to PCM java decoder + * @author Damian Minkov + **/ +public class JavaDecoder + extends com.ibm.media.codec.audio.AudioCodec +{ + private Format lastFormat = null; + private int numberOfChannels = 0; + private SpeexDecoder decoder = null; + + public JavaDecoder() + { + inputFormats = new Format[] + { + new AudioFormat( + Constants.SPEEX_RTP, + 8000, + 8, + 1, + Format.NOT_SPECIFIED, + Format.NOT_SPECIFIED + )}; + + supportedInputFormats = new AudioFormat[] + { + new AudioFormat(Constants.SPEEX_RTP, + 8000, + 8, + 1, + Format.NOT_SPECIFIED, + Format.NOT_SPECIFIED)}; + + defaultOutputFormats = new AudioFormat[] + { + new AudioFormat(AudioFormat.LINEAR)}; + + PLUGIN_NAME = "Speex Decoder"; + } + + protected Format[] getMatchingOutputFormats(Format in) + { + AudioFormat af = (AudioFormat) in; + + supportedOutputFormats = new AudioFormat[] + { + new AudioFormat( + AudioFormat.LINEAR, + af.getSampleRate(), + 16, + af.getChannels(), + AudioFormat.LITTLE_ENDIAN, //isBigEndian(), + AudioFormat.SIGNED //isSigned()); + )}; + + return supportedOutputFormats; + + } + + + public void open() + {} + + public void close() + {} + + private void initConverter(AudioFormat inFormat) + { + lastFormat = inFormat; + + numberOfChannels = inFormat.getChannels(); + + decoder = new SpeexDecoder(); + + decoder.init(0, + (int) ( (AudioFormat) inFormat).getSampleRate(), + inFormat.getChannels(), + false); + } + + public int process(Buffer inputBuffer, Buffer outputBuffer) + { + if (!checkInputBuffer(inputBuffer)) + { + return BUFFER_PROCESSED_FAILED; + } + + if (isEOM(inputBuffer)) + { + propagateEOM(outputBuffer); + return BUFFER_PROCESSED_OK; + } + + int channels = ( (AudioFormat) outputFormat).getChannels(); + + byte[] inData = (byte[]) inputBuffer.getData(); + + int inpLength = inputBuffer.getLength(); + + int outLength = 0; + + int inOffset = inputBuffer.getOffset(); + int outOffset = outputBuffer.getOffset(); + + Format newFormat = inputBuffer.getFormat(); + + if (lastFormat != newFormat) + { + initConverter( (AudioFormat) newFormat); + } + + try + { + decoder.processData(inData, inOffset, inpLength); + outLength = decoder.getProcessedDataByteSize(); + + byte[] outData = validateByteArraySize(outputBuffer, outLength); + + decoder.getProcessedData(outData, outOffset); + } + catch (StreamCorruptedException ex) + { + ex.printStackTrace(); + } + + updateOutput(outputBuffer, outputFormat, outLength, 0); + + return BUFFER_PROCESSED_OK; + } + +// public java.lang.Object[] getControls() +// { +// if (controls == null) +// { +// controls = new Control[1]; +// controls[0] = new com.sun.media.controls.SilenceSuppressionAdapter(this, false, false); +// } +// return (Object[]) controls; +// } + + static int SpeexSubModeSz[] = + { + 0, 43, 119, 160, + 220, 300, 364, 492, + 79, 0, 0, 0, + 0, 0, 0, 0}; + static int SpeexInBandSz[] = + { + 1, 1, 4, 4, + 4, 4, 4, 4, + 8, 8, 16, 16, + 32, 32, 64, 64}; + + /** + * Counts the samples in given data + * @param data byte[] + * @param len int + * @return int + */ + private static int speex_get_samples(byte[] data, int len) + { + int bit = 0; + int cnt = 0; + int off = 0; + + int c; + + //DEBU(G "speex_get_samples(%d)\n", len); + while ((len * 8 - bit) >= 5) { + /* skip wideband frames */ + off = speex_get_wb_sz_at(data, len, bit); + if (off < 0) { + //DEBU(G "\tERROR reading wideband frames\n"); + break; + } + bit += off; + + if ((len * 8 - bit) < 5) { + //DEBU(G "\tERROR not enough bits left after wb\n"); + break; + } + + /* get control bits */ + c = get_n_bits_at(data, 5, bit); + //DEBU(G "\tCONTROL: %d at %d\n", c, bit); + bit += 5; + + if (c == 15) { + //DEBU(G "\tTERMINATOR\n"); + break; + } else if (c == 14) { + /* in-band signal; next 4 bits contain signal id */ + c = get_n_bits_at(data, 4, bit); + bit += 4; + //DEBUG "\tIN-BAND %d bits\n", SpeexInBandSz[c]); + bit += SpeexInBandSz[c]; + } else if (c == 13) { + /* user in-band; next 5 bits contain msg len */ + c = get_n_bits_at(data, 5, bit); + bit += 5; + //DEBUG "\tUSER-BAND %d bytes\n", c); + bit += c * 8; + } else if (c > 8) { + //DEBU(G "\tUNKNOWN sub-mode %d\n", c); + break; + } else { + /* skip number bits for submode (less the 5 control bits) */ + //DEBU(G "\tSUBMODE %d %d bits\n", c, SpeexSubModeSz[c]); + bit += SpeexSubModeSz[c] - 5; + + cnt += 160; /* new frame */ + } + } + //DEBU(G "\tSAMPLES: %d\n", cnt); + return cnt; + } + + private static int get_n_bits_at(byte[] data, int n, int bit) + { + int byteInt = bit / 8; /* byte containing first bit */ + int rem = 8 - (bit % 8); /* remaining bits in first byte */ + int ret = 0; + + if (n <= 0 || n > 8) + return 0; + + if (rem < n) + { + ret = (data[byteInt] << (n - rem)); + ret |= (data[byteInt +1] >> (8 - n + rem)); + } + else + { + ret = (data[byteInt] >> (rem - n)); + } + + return (ret & (0xff >> (8 - n))); + } + + static int SpeexWBSubModeSz[] = + { + 0, 36, 112, 192, + 352, 0, 0, 0}; + + private static int speex_get_wb_sz_at(byte[] data, int len, int bit) + { + int off = bit; + int c; + + /* skip up to two wideband frames */ + if ( ( (len * 8 - off) >= 5) && + get_n_bits_at(data, 1, off) != 0) + { + c = get_n_bits_at(data, 3, off + 1); + off += SpeexWBSubModeSz[c]; + + if ( ( (len * 8 - off) >= 5) && + get_n_bits_at(data, 1, off) != 0) + { + c = get_n_bits_at(data, 3, off + 1); + off += SpeexWBSubModeSz[c]; + + if ( ( (len * 8 - off) >= 5) && + get_n_bits_at(data, 1, off) != 0) + { + /* too many in a row */ + //DEBU(G "\tCORRUPT too many wideband streams in a row\n"); + return -1; + } + } + + } + return off - bit; + } +} diff --git a/src/net/java/sip/communicator/impl/media/codec/audio/speex/JavaEncoder.java b/src/net/java/sip/communicator/impl/media/codec/audio/speex/JavaEncoder.java new file mode 100644 index 000000000..83f42ba78 --- /dev/null +++ b/src/net/java/sip/communicator/impl/media/codec/audio/speex/JavaEncoder.java @@ -0,0 +1,145 @@ +/* + * SIP Communicator, the OpenSource Java VoIP and Instant Messaging client. + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ +package net.java.sip.communicator.impl.media.codec.audio.speex; + +import javax.media.*; +import javax.media.format.*; + +import org.xiph.speex.*; +import net.java.sip.communicator.impl.media.codec.*; + +/** + * The Speex Encoder + * + * @author Damian Minkov + */ +public class JavaEncoder + extends com.ibm.media.codec.audio.AudioCodec +{ + private Format lastFormat = null; + private int numberOfChannels = 0; + + private static int FRAME_SIZE = 320; + + private SpeexEncoder encoder = null; + + public JavaEncoder() + { + supportedInputFormats = new AudioFormat[] + { + new AudioFormat( + AudioFormat.LINEAR, + 8000, + 16, + 1, + AudioFormat.LITTLE_ENDIAN, //isBigEndian(), + AudioFormat.SIGNED //isSigned()); + )}; + + defaultOutputFormats = new AudioFormat[] + {new AudioFormat(Constants.SPEEX_RTP)}; + + PLUGIN_NAME = "pcm to speex converter"; + } + + protected Format[] getMatchingOutputFormats(Format in) + { + AudioFormat af = (AudioFormat) in; + + supportedOutputFormats = new AudioFormat[] + {new AudioFormat( + Constants.SPEEX_RTP, + af.getSampleRate(), + af.getSampleSizeInBits(), + af.getChannels(), + af.getEndian(), + af.getSigned() + )}; + + return supportedOutputFormats; + } + + public void open() throws ResourceUnavailableException + { + + } + + public void close() + { + + } + + private void initConverter(AudioFormat inFormat) + { + lastFormat = inFormat; + numberOfChannels = inFormat.getChannels(); + + encoder = new SpeexEncoder(); + + encoder.init(0, 4, (int)inFormat.getSampleRate(), 1); + } + + public int process(Buffer inputBuffer, Buffer outputBuffer) + { + if (!checkInputBuffer(inputBuffer)) + { + return BUFFER_PROCESSED_FAILED; + } + + if (isEOM(inputBuffer)) + { + propagateEOM(outputBuffer); + return BUFFER_PROCESSED_OK; + } + + Format newFormat = inputBuffer.getFormat(); + + if (lastFormat != newFormat) + { + initConverter( (AudioFormat) newFormat); + } + + int inpLength = inputBuffer.getLength(); + + byte[] inpData = (byte[]) inputBuffer.getData(); + int inOffset = inputBuffer.getOffset(); + + if (inpLength == 0) + { + return OUTPUT_BUFFER_NOT_FILLED; + } + + if ( (inpLength - inOffset) >= FRAME_SIZE) + { + encoder.processData(inpData, inOffset, FRAME_SIZE); + byte[] buff = new byte[encoder.getProcessedDataByteSize()]; + encoder.getProcessedData(buff, 0); + + byte[] outData = validateByteArraySize(outputBuffer, buff.length); + + System.arraycopy(buff, 0, outData, outputBuffer.getOffset(), + buff.length); + + updateOutput(outputBuffer, outputFormat, outData.length, 0); + + if ( (inpLength - inOffset) > FRAME_SIZE) + { + inputBuffer.setOffset(inOffset + FRAME_SIZE); + + return BUFFER_PROCESSED_OK | INPUT_BUFFER_NOT_CONSUMED; + } + else + { + return BUFFER_PROCESSED_OK; + } + } + else + { + return OUTPUT_BUFFER_NOT_FILLED; + } + } +}