From 913f7bee5876f39d86a4a4b7253bcc75dfce4397 Mon Sep 17 00:00:00 2001 From: Damian Minkov Date: Thu, 30 Nov 2006 18:34:13 +0000 Subject: [PATCH] ALAW encoding and transmiting added. --- lib/jmf-all/jmf.jar | Bin 1914158 -> 1913552 bytes lib/jmf-lin/jmf.jar | Bin 1858670 -> 1858847 bytes lib/jmf-sol/jmf.jar | Bin 2199950 -> 2200079 bytes lib/jmf-win/jmf.jar | Bin 2084515 -> 2083909 bytes .../communicator/impl/media/MediaControl.java | 58 +++ .../impl/media/MediaServiceImpl.java | 15 - .../communicator/impl/media/MediaUtils.java | 7 +- .../impl/media/codec/Constants.java | 16 + .../media/codec/audio/alaw/DePacketizer.java | 113 ++++++ .../media/codec/audio/alaw/JavaEncoder.java | 342 ++++++++++++++++++ .../media/codec/audio/alaw/Packetizer.java | 147 ++++++++ 11 files changed, 682 insertions(+), 16 deletions(-) create mode 100644 src/net/java/sip/communicator/impl/media/codec/Constants.java create mode 100644 src/net/java/sip/communicator/impl/media/codec/audio/alaw/DePacketizer.java create mode 100644 src/net/java/sip/communicator/impl/media/codec/audio/alaw/JavaEncoder.java create mode 100644 src/net/java/sip/communicator/impl/media/codec/audio/alaw/Packetizer.java diff --git a/lib/jmf-all/jmf.jar b/lib/jmf-all/jmf.jar index 0e39053917a62ed156ae7c7c18243b5c6568a7c5..0ab593a8665f42373273cc55e49a7e2c3a3ada98 100644 GIT binary patch delta 22803 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 J$;N%o{{abJ$mIY4 diff --git a/lib/jmf-lin/jmf.jar b/lib/jmf-lin/jmf.jar index ada9bb09e4e7965e9f6548ebf90c7c55f6e152ef..07240d6609d8c2b90a858b4970c4fc01b37c0d99 100644 GIT binary patch delta 24195 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 O*$s?gMfF@9QvU;wQKF0h diff --git a/lib/jmf-sol/jmf.jar b/lib/jmf-sol/jmf.jar index cdca61ba2acc2c68e3a4c1d3f63a9c4f2621fb14..bb250c5c4abf1aed9a34050b6e158ae852040ccf 100644 GIT binary patch delta 27309 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%0APtV#B`yR-BCkiE@KPgjP`jEF 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

+*R_4b7QnaAG^^0yKJAj}RC!S%?*&htmxR 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 diff --git a/src/net/java/sip/communicator/impl/media/MediaControl.java b/src/net/java/sip/communicator/impl/media/MediaControl.java index eeeb6551a..3529df533 100644 --- a/src/net/java/sip/communicator/impl/media/MediaControl.java +++ b/src/net/java/sip/communicator/impl/media/MediaControl.java @@ -26,6 +26,7 @@ * * @author Martin Andre * @author Emil Ivov + * @author Damian Minkov */ public class MediaControl { @@ -124,6 +125,20 @@ public class MediaControl private static final String DEBUG_DATA_SOURCE_URL_PROPERTY_NAME = "net.java.sip.communicator.impl.media.DEBUG_DATA_SOURCE_URL"; + /** + * + */ + private static String[] customCodecs = new String[] + { + "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.g729.JavaDecoder", +// "net.java.sip.communicator.impl.media.codec.audio.g729.JavaEncoder", +// "net.java.sip.communicator.impl.media.codec.audio.g729.DePacketizer", +// "net.java.sip.communicator.impl.media.codec.audio.g729.Packetizer" + }; + /** * The default constructor. */ @@ -396,6 +411,9 @@ public void initDebugDataSource(String debugMediaSource) private void initProcessor(DataSource dataSource) throws MediaException { + // register our custom codecs + registerCustomCodecs(); + try { try @@ -960,4 +978,44 @@ public void stopProcessingMedia(Object reader) if(processorReaders.contains(reader)) processorReaders.remove(reader); } + + /** + * Register in JMF the custom codecs we provide + */ + private void registerCustomCodecs() + { + for (int i = 0; i < customCodecs.length; i++) + { + String className = customCodecs[i]; + try + { + + Class pic = Class.forName(className); + Object instance = pic.newInstance(); + + boolean result = + PlugInManager.addPlugIn( + className, + ( (Codec) instance).getSupportedInputFormats(), + ( (Codec) instance).getSupportedOutputFormats(null), + PlugInManager.CODEC); + logger.debug("Codec : " + className + + " is succsefully registered : " + result); + } + catch (Exception ex) + { + logger.debug("Codec : " + className + + " is NOT succsefully registered"); + } + } + + try + { + PlugInManager.commit(); + } + catch (IOException ex) + { + logger.error("Cannot commit to PlugInManager", ex); + } + } } diff --git a/src/net/java/sip/communicator/impl/media/MediaServiceImpl.java b/src/net/java/sip/communicator/impl/media/MediaServiceImpl.java index 18cf80570..52fd18f25 100644 --- a/src/net/java/sip/communicator/impl/media/MediaServiceImpl.java +++ b/src/net/java/sip/communicator/impl/media/MediaServiceImpl.java @@ -14,13 +14,8 @@ import net.java.sip.communicator.impl.media.device.*; import net.java.sip.communicator.service.media.*; import net.java.sip.communicator.service.media.event.*; -import net.java.sip.communicator.service.netaddr.*; import net.java.sip.communicator.service.protocol.*; import net.java.sip.communicator.util.*; -import com.sun.media.util.Registry; -import javax.media.PlugInManager; -import javax.media.Format; -import javax.media.Codec; /** * The service is meant to be a wrapper of media libraries such as JMF, @@ -265,16 +260,6 @@ public static void main(String[] args) MediaServiceImpl msimpl = new MediaServiceImpl(); msimpl.start(); - String className = "classname"; - Class pic = Class.forName(className); - Object instance = pic.newInstance(); - - PlugInManager.addPlugIn( - className, - ((Codec)instance).getSupportedInputFormats(), - ((Codec)instance).getSupportedOutputFormats(null), - PlugInManager.CODEC); - System.out.println("done"); } } diff --git a/src/net/java/sip/communicator/impl/media/MediaUtils.java b/src/net/java/sip/communicator/impl/media/MediaUtils.java index 74347456b..de93e37e0 100644 --- a/src/net/java/sip/communicator/impl/media/MediaUtils.java +++ b/src/net/java/sip/communicator/impl/media/MediaUtils.java @@ -9,6 +9,7 @@ import javax.media.format.*; import javax.sdp.*; import java.util.*; +import net.java.sip.communicator.impl.media.codec.*; /** * Implements static utility methods used by media classes. @@ -48,7 +49,7 @@ public static String sdpToJmfEncoding(String sdpEncodingStr) case SdpConstants.DVI4_16000: return AudioFormat.DVI_RTP; case SdpConstants.PCMA: - return AudioFormat.ALAW; + return Constants.ALAW_RTP; case SdpConstants.G728: return AudioFormat.G728_RTP; case SdpConstants.G729: @@ -84,6 +85,10 @@ else if (jmfEncoding.equals(AudioFormat.ULAW_RTP)) { return Integer.toString(SdpConstants.PCMU); } + else if (jmfEncoding.equals(Constants.ALAW_RTP)) + { + return Integer.toString(SdpConstants.PCMA); + } else if (jmfEncoding.equals(AudioFormat.GSM_RTP)) { return Integer.toString(SdpConstants.GSM); diff --git a/src/net/java/sip/communicator/impl/media/codec/Constants.java b/src/net/java/sip/communicator/impl/media/codec/Constants.java new file mode 100644 index 000000000..884675e2a --- /dev/null +++ b/src/net/java/sip/communicator/impl/media/codec/Constants.java @@ -0,0 +1,16 @@ +/* + * 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; + +/** + * Constants needed in codecs impl. + * @author Damian Minkov + */ +public class Constants +{ + public static final String ALAW_RTP = "ALAW/rtp"; +} diff --git a/src/net/java/sip/communicator/impl/media/codec/audio/alaw/DePacketizer.java b/src/net/java/sip/communicator/impl/media/codec/audio/alaw/DePacketizer.java new file mode 100644 index 000000000..ca867e0fa --- /dev/null +++ b/src/net/java/sip/communicator/impl/media/codec/audio/alaw/DePacketizer.java @@ -0,0 +1,113 @@ +/* + * 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.alaw; + +import javax.media.*; +import javax.media.format.*; + +import com.sun.media.codec.audio.*; +import net.java.sip.communicator.impl.media.codec.*; + +/** + * DePacketizer for ALAW codec + * @author Damian Minkov + */ +public class DePacketizer + extends AudioCodec +{ + /** + * Creates DePacketizer + */ + public DePacketizer() + { + inputFormats = new Format[]{new AudioFormat(Constants.ALAW_RTP)}; + } + + /** + * Returns the name of the DePacketizer + * @return String + */ + public String getName() + { + return "ALAW DePacketizer"; + } + + /** + * Returns the supported output formats + * @param in Format + * @return Format[] + */ + public Format[] getSupportedOutputFormats(Format in) + { + + if (in == null) + { + return new Format[]{new AudioFormat(AudioFormat.ALAW)}; + } + + if (matches(in, inputFormats) == null) + { + return new Format[1]; + } + + if (! (in instanceof AudioFormat)) + { + return new Format[]{new AudioFormat(AudioFormat.ALAW)}; + } + + AudioFormat af = (AudioFormat) in; + return new Format[] + { + new AudioFormat( + AudioFormat.ALAW, + af.getSampleRate(), + af.getSampleSizeInBits(), + af.getChannels()) + }; + } + + /** + * Initializes the codec. + */ + public void open() + {} + + /** + * Clean up + */ + public void close() + {} + + /** + * decode the buffer + * @param inputBuffer Buffer + * @param outputBuffer Buffer + * @return int + */ + public int process(Buffer inputBuffer, Buffer outputBuffer) + { + + if (!checkInputBuffer(inputBuffer)) + { + return BUFFER_PROCESSED_FAILED; + } + + if (isEOM(inputBuffer)) + { + propagateEOM(outputBuffer); + return BUFFER_PROCESSED_OK; + } + + Object outData = outputBuffer.getData(); + outputBuffer.setData(inputBuffer.getData()); + inputBuffer.setData(outData); + outputBuffer.setLength(inputBuffer.getLength()); + outputBuffer.setFormat(outputFormat); + outputBuffer.setOffset(inputBuffer.getOffset()); + return BUFFER_PROCESSED_OK; + } +} diff --git a/src/net/java/sip/communicator/impl/media/codec/audio/alaw/JavaEncoder.java b/src/net/java/sip/communicator/impl/media/codec/audio/alaw/JavaEncoder.java new file mode 100644 index 000000000..a49684b0a --- /dev/null +++ b/src/net/java/sip/communicator/impl/media/codec/audio/alaw/JavaEncoder.java @@ -0,0 +1,342 @@ +/* + * 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.alaw; + +import javax.media.*; +import javax.media.format.*; + +/** + * The ALAW Encoder + * + * @author Damian Minkov + */ +public class JavaEncoder + extends com.ibm.media.codec.audio.AudioCodec +{ + private Format lastFormat = null; + private int numberOfInputChannels; + private int numberOfOutputChannels = 1; + private boolean downmix = false; + private int inputSampleSize; + private boolean bigEndian = false; + + public JavaEncoder() + { + supportedInputFormats = new AudioFormat[] + { + new AudioFormat( + AudioFormat.LINEAR, + Format.NOT_SPECIFIED, + 16, + 1, + Format.NOT_SPECIFIED, + Format.NOT_SPECIFIED + ), + new AudioFormat( + AudioFormat.LINEAR, + Format.NOT_SPECIFIED, + 16, + 2, + Format.NOT_SPECIFIED, + Format.NOT_SPECIFIED + ), + new AudioFormat( + AudioFormat.LINEAR, + Format.NOT_SPECIFIED, + 8, + 1, + Format.NOT_SPECIFIED, + Format.NOT_SPECIFIED + ), + new AudioFormat( + AudioFormat.LINEAR, + Format.NOT_SPECIFIED, + 8, + 2, + Format.NOT_SPECIFIED, + Format.NOT_SPECIFIED + )}; // support 1/2 channels and 8/16 bit samples + + defaultOutputFormats = new AudioFormat[] + { + new AudioFormat( + AudioFormat.ALAW, + 8000, + 8, + 1, + Format.NOT_SPECIFIED, + Format.NOT_SPECIFIED + )}; + PLUGIN_NAME = "pcm to alaw converter"; + } + + protected Format[] getMatchingOutputFormats(Format in) + { + + AudioFormat inFormat = (AudioFormat) in; + int channels = inFormat.getChannels(); + int sampleRate = (int) (inFormat.getSampleRate()); + + if (channels == 2) + { + supportedOutputFormats = new AudioFormat[] + { + new AudioFormat( + AudioFormat.ALAW, + sampleRate, + 8, + 2, + Format.NOT_SPECIFIED, + Format.NOT_SPECIFIED + ), + new AudioFormat( + AudioFormat.ALAW, + sampleRate, + 8, + 1, + Format.NOT_SPECIFIED, + Format.NOT_SPECIFIED + )}; + + } + else + { + supportedOutputFormats = new AudioFormat[] + { + new AudioFormat( + AudioFormat.ALAW, + sampleRate, + 8, + 1, + Format.NOT_SPECIFIED, + Format.NOT_SPECIFIED + )}; + + } + + return supportedOutputFormats; + } + + public void open() throws ResourceUnavailableException + {} + + public void close() + {} + + private int calculateOutputSize(int inputLength) + { + if (inputSampleSize == 16) + { + inputLength /= 2; + } + + if (downmix) + { + inputLength /= 2; + } + + return inputLength; + } + + /** + * Init the converter to the new format + * @param inFormat AudioFormat + */ + private void initConverter(AudioFormat inFormat) + { + + lastFormat = inFormat; + numberOfInputChannels = inFormat.getChannels(); + if (outputFormat != null) + { + numberOfOutputChannels = outputFormat.getChannels(); + } + inputSampleSize = inFormat.getSampleSizeInBits(); + + bigEndian = inFormat.getEndian()==AudioFormat.BIG_ENDIAN; + + if ( (numberOfInputChannels == 2) && (numberOfOutputChannels == 1)) + { + downmix = true; + } + else + { + downmix = false; + } + + } + + /** + * Encodes the input buffer passing it to the output one + * @param inputBuffer Buffer + * @param outputBuffer Buffer + * @return int + */ + 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(); + int outLength = calculateOutputSize(inputBuffer.getLength()); + + byte[] inpData = (byte[]) inputBuffer.getData(); + byte[] outData = validateByteArraySize(outputBuffer, outLength); + + pcm162alaw( + inpData, inputBuffer.getOffset(), outData, 0, outData.length, bigEndian); + + updateOutput(outputBuffer, outputFormat, outLength, 0); + return BUFFER_PROCESSED_OK; + + } + + /* + * This source code is a product of Sun Microsystems, Inc. and is provided + * for unrestricted use. Users may copy or modify this source code without + * charge. + * + * linear2alaw() - Convert a 16-bit linear PCM value to 8-bit A-law + * + * linear2alaw() accepts an 16-bit integer and encodes it as A-law data. + * + * Linear Input Code Compressed Code + * ------------------------ --------------- + * 0000000wxyza 000wxyz + * 0000001wxyza 001wxyz + * 000001wxyzab 010wxyz + * 00001wxyzabc 011wxyz + * 0001wxyzabcd 100wxyz + * 001wxyzabcde 101wxyz + * 01wxyzabcdef 110wxyz + * 1wxyzabcdefg 111wxyz + * + * For further information see John C. Bellamy's Digital Telephony, 1982, + * John Wiley & Sons, pps 98-111 and 472-476. + */ + private static final byte QUANT_MASK = 0xf; /* Quantization field mask. */ + private static final byte SEG_SHIFT = 4; + /* Left shift for segment number. */ + private static final short[] seg_end = + { + 0xFF, 0x1FF, 0x3FF, 0x7FF, 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF + }; + + private static byte linear2alaw(short pcm_val) + /* 2's complement (16-bit range) */ + { + byte mask; + byte seg = 8; + byte aval; + + if (pcm_val >= 0) + { + mask = (byte) 0xD5; /* sign (7th) bit = 1 */ + } + else + { + mask = 0x55; /* sign bit = 0 */ + pcm_val = (short) ( -pcm_val - 8); + } + + /* Convert the scaled magnitude to segment number. */ + for (int i = 0; i < 8; i++) + { + if (pcm_val <= seg_end[i]) + { + seg = (byte) i; + break; + } + } + + /* Combine the sign, segment, and quantization bits. */ + if (seg >= 8) /* out of range, return maximum value. */ + { + return (byte) ( (0x7F ^ mask) & 0xFF); + } + else + { + aval = (byte) (seg << SEG_SHIFT); + if (seg < 2) + { + aval |= (pcm_val >> 4) & QUANT_MASK; + } + else + { + aval |= (pcm_val >> (seg + 3)) & QUANT_MASK; + } + return (byte) ( (aval ^ mask) & 0xFF); + } + } + + /** + * Converts the input buffer to the otput one using the alaw codec + * @param inBuffer byte[] + * @param inByteOffset int + * @param outBuffer byte[] + * @param outByteOffset int + * @param sampleCount int + * @param bigEndian boolean + */ + private static void pcm162alaw(byte[] inBuffer, int inByteOffset, + byte[] outBuffer, int outByteOffset, + int sampleCount, boolean bigEndian) + { + int shortIndex = inByteOffset; + int alawIndex = outByteOffset; + if (bigEndian) + { + while (sampleCount > 0) + { + outBuffer[alawIndex++] = linear2alaw + (bytesToShort16(inBuffer[shortIndex], + inBuffer[shortIndex + 1])); + shortIndex++; + shortIndex++; + sampleCount--; + } + } + else + { + while (sampleCount > 0) + { + outBuffer[alawIndex++] = linear2alaw + (bytesToShort16(inBuffer[shortIndex + 1], + inBuffer[shortIndex])); + shortIndex++; + shortIndex++; + sampleCount--; + } + } + } + + /** + * Converts the 2 bytes to the corresponding short value + * @param highByte byte + * @param lowByte byte + * @return short + */ + private static short bytesToShort16(byte highByte, byte lowByte) + { + return (short) ( (highByte << 8) | (lowByte & 0xFF)); + } +} diff --git a/src/net/java/sip/communicator/impl/media/codec/audio/alaw/Packetizer.java b/src/net/java/sip/communicator/impl/media/codec/audio/alaw/Packetizer.java new file mode 100644 index 000000000..ba28ac13a --- /dev/null +++ b/src/net/java/sip/communicator/impl/media/codec/audio/alaw/Packetizer.java @@ -0,0 +1,147 @@ +/* + * 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.alaw; + +import javax.media.*; +import javax.media.format.*; + +import com.ibm.media.codec.audio.*; +import net.java.sip.communicator.impl.media.codec.*; + +/** + * Packetizer for ALAW codec + * @author Damian Minkov + */ +public class Packetizer + extends AudioPacketizer +{ + public Packetizer() + { + packetSize = 480; + supportedInputFormats = new AudioFormat[] + { + new AudioFormat( + AudioFormat.ALAW, + Format.NOT_SPECIFIED, + 8, + 1, + Format.NOT_SPECIFIED, + Format.NOT_SPECIFIED, + 8, + Format.NOT_SPECIFIED, + Format.byteArray + ) + }; + defaultOutputFormats = new AudioFormat[] + { + new AudioFormat( + AudioFormat.ALAW, + Format.NOT_SPECIFIED, + 8, + 1, + Format.NOT_SPECIFIED, + Format.NOT_SPECIFIED, + 8, + Format.NOT_SPECIFIED, + Format.byteArray + ) + }; + + PLUGIN_NAME = "Mu-Law Packetizer"; + + } + + protected Format[] getMatchingOutputFormats(Format in) + { + + AudioFormat af = (AudioFormat) in; + + supportedOutputFormats = new AudioFormat[] + { + new AudioFormat( + Constants.ALAW_RTP, + af.getSampleRate(), + 8, + 1, + Format.NOT_SPECIFIED, + Format.NOT_SPECIFIED, + 8, + Format.NOT_SPECIFIED, + Format.byteArray + ) + }; + return supportedOutputFormats; + } + + public void open() throws ResourceUnavailableException + { + setPacketSize(packetSize); + reset(); + } + + public java.lang.Object[] getControls() + { + if (controls == null) + { + controls = new Control[1]; + controls[0] = new PacketSizeAdapter(this, packetSize, true); + } + return (Object[]) controls; + } + + public synchronized void setPacketSize(int newPacketSize) + { + packetSize = newPacketSize; + + sample_count = packetSize; + + if (history == null) + { + history = new byte[packetSize]; + return; + } + + if (packetSize > history.length) + { + byte[] newHistory = new byte[packetSize]; + System.arraycopy(history, 0, newHistory, 0, historyLength); + history = newHistory; + } + } + +} + +class PacketSizeAdapter + extends com.sun.media.controls.PacketSizeAdapter +{ + public PacketSizeAdapter(Codec newOwner, int newPacketSize, + boolean newIsSetable) + { + super(newOwner, newPacketSize, newIsSetable); + } + + public int setPacketSize(int numBytes) + { + + int numOfPackets = numBytes; + + if (numOfPackets < 10) + { + numOfPackets = 10; + } + + if (numOfPackets > 8000) + { + numOfPackets = 8000; + } + packetSize = numOfPackets; + + ( (Packetizer) owner).setPacketSize(packetSize); + + return packetSize; + } +}