public void publish(int streamId, String name, String mode, INetStreamEventHandler handler) {
   log.debug("publish - stream id: {}, name: {}, mode: {}", new Object[] {streamId, name, mode});
   // setup the netstream handler
   if (handler != null) {
     NetStreamPrivateData streamData = streamDataMap.get(streamId);
     if (streamData != null) {
       log.debug("Setting handler on stream data - handler: {}", handler);
       streamData.handler = handler;
     } else {
       log.debug("Stream data not found for stream id: {}", streamId);
     }
   }
   // setup publish parameters
   final Object[] params = new Object[2];
   params[0] = name;
   params[1] = mode;
   // call publish
   PendingCall pendingCall = new PendingCall("publish", params);
   conn.invoke(pendingCall, getChannelForStreamId(streamId));
 }
 public void resultReceived(IPendingServiceCall call) {
   Integer streamIdInt = (Integer) call.getResult();
   log.debug("CreateStreamCallBack resultReceived - stream id: {} call: {}", streamIdInt, call);
   log.debug("Connection: {}", conn);
   if (conn != null && streamIdInt != null) {
     log.debug("Setting new net stream");
     NetStream stream = new NetStream(streamEventDispatcher);
     stream.setConnection(conn);
     stream.setStreamId(streamIdInt);
     conn.addClientStream(stream);
     NetStreamPrivateData streamData = new NetStreamPrivateData();
     streamData.outputStream = conn.createOutputStream(streamIdInt);
     streamData.connConsumer =
         new ConnectionConsumer(
             conn,
             streamData.outputStream.getVideo(),
             streamData.outputStream.getAudio(),
             streamData.outputStream.getData());
     streamDataMap.put(streamIdInt, streamData);
     log.debug("streamDataMap: {}", streamDataMap);
   }
   wrapped.resultReceived(call);
 }