Search in sources :

Example 31 with IoBuffer

use of org.apache.mina.core.buffer.IoBuffer in project bigbluebutton by bigbluebutton.

the class SpeexToSpeexTranscoder method pushAudio.

private void pushAudio(byte[] audio) {
    timestamp = timestamp + audio.length;
    IoBuffer buffer = IoBuffer.allocate(1024);
    buffer.setAutoExpand(true);
    buffer.clear();
    buffer.put((byte) SPEEX_CODEC);
    byte[] copy = new byte[audio.length];
    System.arraycopy(audio, 0, copy, 0, audio.length);
    buffer.put(copy);
    buffer.flip();
    AudioData audioData = new AudioData(buffer);
    audioData.setTimestamp((int) timestamp);
    listener.handleTranscodedAudioData(audioData);
}
Also used : AudioData(org.red5.server.net.rtmp.event.AudioData) IoBuffer(org.apache.mina.core.buffer.IoBuffer)

Example 32 with IoBuffer

use of org.apache.mina.core.buffer.IoBuffer in project bigbluebutton by bigbluebutton.

the class VideoStreamListener method packetReceived.

@Override
public void packetReceived(IBroadcastStream stream, IStreamPacket packet) {
    IoBuffer buf = packet.getData();
    if (buf != null) {
        buf.rewind();
    }
    if (buf == null || buf.remaining() == 0) {
        return;
    }
    if (packet instanceof VideoData) {
        // keep track of last time video was received
        lastVideoTime = System.currentTimeMillis();
        packetCount++;
        if (!firstPacketReceived) {
            firstPacketReceived = true;
            publishing = true;
            firstPacketTime = lastVideoTime;
            // start the worker to monitor if we are still receiving video packets
            timeoutJobName = scheduler.addScheduledJob(videoTimeout, new TimeoutJob());
            if (record) {
                Map<String, String> event = new HashMap<String, String>();
                event.put("module", "WEBCAM");
                event.put("timestamp", genTimestamp().toString());
                event.put("meetingId", scope.getName());
                event.put("stream", stream.getPublishedName());
                event.put("eventName", "StartWebRTCDeskShareEvent");
                recordingService.record(scope.getName(), event);
            }
        }
        if (streamPaused) {
            streamPaused = false;
            long now = System.currentTimeMillis();
            long numSeconds = (now - lastVideoTime) / 1000;
            Map<String, Object> logData = new HashMap<String, Object>();
            logData.put("meetingId", scope.getName());
            logData.put("userId", userId);
            logData.put("stream", stream.getPublishedName());
            logData.put("packetCount", packetCount);
            logData.put("publishing", publishing);
            logData.put("pausedFor (sec)", numSeconds);
            Gson gson = new Gson();
            String logStr = gson.toJson(logData);
            log.warn("Video stream restarted. data={}", logStr);
        }
    }
}
Also used : HashMap(java.util.HashMap) VideoData(org.red5.server.net.rtmp.event.VideoData) Gson(com.google.gson.Gson) IoBuffer(org.apache.mina.core.buffer.IoBuffer)

Example 33 with IoBuffer

use of org.apache.mina.core.buffer.IoBuffer in project camel by apache.

the class Mina2ConverterTest method testToByteArray.

public void testToByteArray() {
    byte[] in = "Hello World".getBytes();
    IoBuffer bb = IoBuffer.wrap(in);
    byte[] out = Mina2Converter.toByteArray(bb);
    for (int i = 0; i < out.length; i++) {
        assertEquals(in[i], out[i]);
    }
}
Also used : IoBuffer(org.apache.mina.core.buffer.IoBuffer)

Example 34 with IoBuffer

use of org.apache.mina.core.buffer.IoBuffer in project camel by apache.

the class Mina2ConverterTest method testToString.

public void testToString() throws UnsupportedEncodingException {
    String in = "Hello World 你好";
    IoBuffer bb = IoBuffer.wrap(in.getBytes("UTF-8"));
    Exchange exchange = new DefaultExchange(new DefaultCamelContext());
    exchange.setProperty(Exchange.CHARSET_NAME, "UTF-8");
    String out = Mina2Converter.toString(bb, exchange);
    assertEquals("Hello World 你好", out);
}
Also used : DefaultExchange(org.apache.camel.impl.DefaultExchange) Exchange(org.apache.camel.Exchange) DefaultExchange(org.apache.camel.impl.DefaultExchange) DefaultCamelContext(org.apache.camel.impl.DefaultCamelContext) IoBuffer(org.apache.mina.core.buffer.IoBuffer)

Example 35 with IoBuffer

use of org.apache.mina.core.buffer.IoBuffer in project camel by apache.

the class HL7MLLPEncoder method encode.

public void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws Exception {
    if (message == null) {
        throw new IllegalArgumentException("Message to be encoded is null");
    } else if (message instanceof Exception) {
        // we cannot handle exceptions
        throw (Exception) message;
    }
    byte[] body;
    if (message instanceof Message) {
        body = ((Message) message).encode().getBytes(config.getCharset());
    } else if (message instanceof String) {
        body = ((String) message).getBytes(config.getCharset());
    } else if (message instanceof byte[]) {
        body = (byte[]) message;
    } else {
        throw new IllegalArgumentException("The message to encode is not a supported type: " + message.getClass().getCanonicalName());
    }
    // put the data into the byte buffer
    IoBuffer buf = IoBuffer.allocate(body.length + 3).setAutoExpand(true);
    buf.put((byte) config.getStartByte());
    buf.put(body);
    buf.put((byte) config.getEndByte1());
    buf.put((byte) config.getEndByte2());
    // flip the buffer so we can use it to write to the out stream
    buf.flip();
    LOG.debug("Encoded HL7 from {} to byte stream", message.getClass().getCanonicalName());
    out.write(buf);
}
Also used : Message(ca.uhn.hl7v2.model.Message) IoBuffer(org.apache.mina.core.buffer.IoBuffer)

Aggregations

IoBuffer (org.apache.mina.core.buffer.IoBuffer)49 Test (org.junit.Test)8 VideoData (org.red5.server.net.rtmp.event.VideoData)4 UnknownHostException (java.net.UnknownHostException)3 HashMap (java.util.HashMap)3 UnauthorizedException (org.jivesoftware.openfire.auth.UnauthorizedException)3 AudioData (org.red5.server.net.rtmp.event.AudioData)3 Gson (com.google.gson.Gson)2 IOException (java.io.IOException)2 InputStream (java.io.InputStream)2 ByteBuffer (java.nio.ByteBuffer)2 CharacterCodingException (java.nio.charset.CharacterCodingException)2 Exchange (org.apache.camel.Exchange)2 DefaultCamelContext (org.apache.camel.impl.DefaultCamelContext)2 DefaultExchange (org.apache.camel.impl.DefaultExchange)2 Message (ca.uhn.hl7v2.model.Message)1 AddressedEnvelope (io.netty.channel.AddressedEnvelope)1 ChannelHandlerContext (io.netty.channel.ChannelHandlerContext)1 ChannelInboundHandlerAdapter (io.netty.channel.ChannelInboundHandlerAdapter)1 DatagramPacket (io.netty.channel.socket.DatagramPacket)1