org.red5.server.stream.consumer
Class FileConsumer

java.lang.Object
  extended by org.red5.server.stream.consumer.FileConsumer
All Implemented Interfaces:
IConsumer, IMessageComponent, IPipeConnectionListener, IPushableConsumer, Constants

public class FileConsumer
extends Object
implements Constants, IPushableConsumer, IPipeConnectionListener

Consumer that pushes messages to file. Used when recording live streams.


Field Summary
 
Fields inherited from interface org.red5.server.net.rtmp.message.Constants
HANDSHAKE_SIZE, HEADER_CONTINUE, HEADER_NEW, HEADER_SAME_SOURCE, HEADER_TIMER_CHANGE, MEDIUM_INT_MAX, SO_CLIENT_CLEAR_DATA, SO_CLIENT_DELETE_DATA, SO_CLIENT_INITIAL_DATA, SO_CLIENT_SEND_MESSAGE, SO_CLIENT_STATUS, SO_CLIENT_UPDATE_ATTRIBUTE, SO_CLIENT_UPDATE_DATA, SO_CONNECT, SO_DELETE_ATTRIBUTE, SO_DISCONNECT, SO_SEND_MESSAGE, SO_SET_ATTRIBUTE, SOURCE_TYPE_LIVE, SOURCE_TYPE_VOD, TYPE_ABORT, TYPE_AGGREGATE, TYPE_AUDIO_DATA, TYPE_BYTES_READ, TYPE_CHUNK_SIZE, TYPE_CLIENT_BANDWIDTH, TYPE_FLEX_MESSAGE, TYPE_FLEX_SHARED_OBJECT, TYPE_FLEX_STREAM_SEND, TYPE_INVOKE, TYPE_NOTIFY, TYPE_PING, TYPE_SERVER_BANDWIDTH, TYPE_SHARED_OBJECT, TYPE_STREAM_METADATA, TYPE_VIDEO_DATA
 
Fields inherited from interface org.red5.server.messaging.IPushableConsumer
KEY
 
Constructor Summary
FileConsumer(IScope scope, File file)
          Creates file consumer
 
Method Summary
 void doWrites()
          Write all the queued items to the writer.
 void onOOBControlMessage(IMessageComponent source, IPipe pipe, OOBControlMessage oobCtrlMsg)
          Out-of-band control message handler
 void onPipeConnectionEvent(PipeConnectionEvent event)
          Pipe connection event handler
 void pushMessage(IPipe pipe, IMessage message)
          Push message through pipe
 void setQueueThreshold(int queueThreshold)
          Sets the threshold for the queue.
 void setVideoDecoderConfiguration(IRTMPEvent decoderConfig)
          Sets a video decoder configuration; some codecs require this, such as AVC.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FileConsumer

public FileConsumer(IScope scope,
                    File file)
Creates file consumer

Parameters:
scope - Scope of consumer
file - File
Method Detail

pushMessage

public void pushMessage(IPipe pipe,
                        IMessage message)
                 throws IOException
Push message through pipe

Specified by:
pushMessage in interface IPushableConsumer
Parameters:
pipe - Pipe
message - Message to push
Throws:
IOException - if message could not be written

onOOBControlMessage

public void onOOBControlMessage(IMessageComponent source,
                                IPipe pipe,
                                OOBControlMessage oobCtrlMsg)
Out-of-band control message handler

Specified by:
onOOBControlMessage in interface IMessageComponent
Parameters:
source - Source of message
pipe - Pipe that is used to transmit OOB message
oobCtrlMsg - OOB control message

onPipeConnectionEvent

public void onPipeConnectionEvent(PipeConnectionEvent event)
Pipe connection event handler

Specified by:
onPipeConnectionEvent in interface IPipeConnectionListener
Parameters:
event - Pipe connection event

doWrites

public final void doWrites()
Write all the queued items to the writer.


setVideoDecoderConfiguration

public void setVideoDecoderConfiguration(IRTMPEvent decoderConfig)
Sets a video decoder configuration; some codecs require this, such as AVC.

Parameters:
decoderConfig - video codec configuration

setQueueThreshold

public void setQueueThreshold(int queueThreshold)
Sets the threshold for the queue. When the threshold is met a worker is spawned to empty the sorted queue to the writer.

Parameters:
queueThreshold - number of items to queue before spawning worker


Copyright © 2006-2010 The Red5 Project