Package com.wowza.wms.stream
Class MediaStreamMap
- Object
- 
- com.wowza.wms.stream.MediaStreamMap
 
- 
 public class MediaStreamMap extends ObjectMediaStreamMap: collection of IMediaStream object. This collection is usually attached to an IApplicationInstance object. 
- 
- 
Field SummaryFields Modifier and Type Field Description protected IApplicationInstanceappInstancebooleandebugDVRShutdownprotected java.util.Map<String,ILiveStreamDvrRecorder>dvrRecordersprotected java.util.Map<String,ILiveStreamPacketizer>liveStreamPacketizersstatic intMAXSTREAMINDEXprotected java.util.List<IMediaStreamNotify>mediaStreamListenersprotected java.util.Map<String,com.wowza.wms.stream.MediaStreamMap.NameGroupHolder>nameGroupDelayRemoveMapprotected longnameGroupIdprotected intnameGroupRemoveDelayTimeprotected java.util.List<com.wowza.wms.stream.MediaStreamMapGroup>nameGroupsprotected java.util.concurrent.atomic.AtomicLongnextStreamIdprotected java.util.Map<ILiveStreamPacketizer,java.util.Map<Integer,com.wowza.wms.client.LicenseHolder>>packetizerLicensesprotected java.util.Map<Long,java.util.Map<Integer,com.wowza.wms.client.LicenseHolder>>streamLicensesprotected edu.emory.mathcs.backport.java.util.concurrent.locks.WMSReadWriteLockstreamLockprotected java.util.Map<String,IMediaStream>streamNamesprotected edu.emory.mathcs.backport.java.util.concurrent.locks.WMSReadWriteLockstreamNamesLockprotected java.util.Map<String,java.util.Set<com.wowza.wms.stream.MediaStreamMapGroup>>streamNameToGroupprotected java.util.Map<Long,IMediaStream>streams
 - 
Constructor SummaryConstructors Constructor Description MediaStreamMap(IApplicationInstance appInstance)Create empty MediaStreamMap collection
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description com.wowza.wms.client.LicenseHolderaddLicense(IMediaStream stream, int licenseType)com.wowza.wms.client.LicenseHolderaddLicense(ILiveStreamPacketizer liveStreamPacketizer, int licenseType)voidaddMediaStreamListener(IMediaStreamNotify mediaStreamListener)Add a media stream listener.com.wowza.wms.stream.MediaStreamMapGroupaddNameGroup(com.wowza.wms.stream.MediaStreamMapGroup newGroup)voidbroadcasePlayMessage(IMediaStream stream, long timecode, java.nio.ByteBuffer msg, int objectEncoding)Send a broadcast message to all play stream that are listening to this live published stream.intbroadcastGetObjectEncoding(IMediaStream stream)Get the minimum object encoding level for the clients playing this stream.voidclearStreamName(String name)Unregister a published live media stream name.voidclearStreamName(String name, IMediaStream stream)Unregister a published live media stream name.voidcloseLiveStreamPacketizer(String streamName, String packetizerName)Close live stream packetizer by sending the last data receivedvoiddoWatchdog()IApplicationInstancegetAppInstance()Get the parent applicationInstance.StringgetAppInstanceName()Get the name of the parent applicationInstance.StringgetAppName()Get the name of the parent application.intgetCount()Get the total number of streams stored in the mediaStreamMapILiveStreamDvrRecordergetDvrRecorder(String streamName, String recorderName, boolean doCreate)Get a DVR recorder by name and recorder namejava.util.List<ILiveStreamDvrRecorder>getDvrRecorders()Returns a list of ILiveStreamDvrRecorder objectsILiveStreamPacketizergetLiveStreamPacketizer(String streamName, String packetizerName, boolean doCreate)Get a live stream packetizer by name and packetizer idObjectgetLiveStreamPacketizerLock()Get the lock to the live stream packetizer systemcom.wowza.wms.stream.MediaStreamMapGroupgetNameGroupByGroupName(String groupName)intgetNameGroupRemoveDelayTime()java.util.Set<com.wowza.wms.stream.MediaStreamMapGroup>getNameGroups()java.util.Set<com.wowza.wms.stream.MediaStreamMapGroup>getNameGroups(String streamName)java.util.Set<String>getNameGroupStreamNames(String streamName)longgetNextNameGroupId(com.wowza.wms.stream.MediaStreamMapGroup newGroup)intgetNextStreamIndex()Reserve a clientless stream id for a new media stream.intgetNextStreamIndex(IClient client)Reserve a stream for a client connection.intgetNextStreamIndex(INetConnection netConnection)Reserve a stream for a netConnection connection.java.util.List<String>getPublishStreamNames()Returns a List of published stream namesIMediaStreamgetStream(IClient client, int index)Get a media stream reference by stream id.IMediaStreamgetStream(IClient client, int index, boolean doCreate)Get a media stream reference by stream id.IMediaStreamgetStream(INetConnection netConnection, int index)Get a media stream object that is owned by a server to server netConnection object (not yet implemented).IMediaStreamgetStream(INetConnection netConnection, int index, boolean doCreate)Get a media stream reference by stream id.IMediaStreamgetStream(String name)Get a media stream by stream name.IMediaStreamgetStreamClientless(int index, String streamTypeStr)Get a media stream reference by stream id.edu.emory.mathcs.backport.java.util.concurrent.locks.WMSReadWriteLockgetStreamListLock()Get the underlying read/write lock associated with the list of streamsedu.emory.mathcs.backport.java.util.concurrent.locks.WMSReadWriteLockgetStreamNameLock()Get the underlying read/write lock associated with the stream names listjava.util.List<IMediaStream>getStreams()Returns a list of IMediaStream objectsIVHostgetVHost()Get the parent vHost.voidnotifyMediaStreamCreate(IMediaStream mediaStream)Notify all media stream listeners that a new media stream object has been created.voidnotifyMediaStreamDestroy(IMediaStream mediaStream)Notify all media stream listeners that a media stream object is being destroyed.voidnotifyPlayPublish(IMediaStream stream)Notify all play streams that are listening to this stream that the stream is going into a state of publish (NetStream.Play.PublishNotify).voidnotifyPlayUnpublish(IMediaStream stream)Notify all play streams that are listening to this stream that the stream is going into a state of unpublished (NetStream.Play.UnpublishNotify).voidnotifyPlayUnpublish(String streamName)Notify all play streams that are listening to this stream name that the stream is going into a state of unpublished (NetStream.Play.UnpublishNotify).voidremoveDvrRecorder(String streamName)ILiveStreamDvrRecorderremoveDvrRecorder(String streamName, String recorderName)Remove DVR RecordervoidremoveLiveStreamPacketizer(String streamName)Remove all live stream packetizers for this stream nameILiveStreamPacketizerremoveLiveStreamPacketizer(String streamName, String packetizerName)Remove live stream packetizervoidremoveMediaStreamListener(IMediaStreamNotify mediaStreamListener)Remove a media stream listener.com.wowza.wms.stream.MediaStreamMapGroupremoveNameGroup(int groupId)com.wowza.wms.stream.MediaStreamMapGroupremoveNameGroup(com.wowza.wms.stream.MediaStreamMapGroup nameGroup)voidremoveStream(int index)Remove a clientless media streamvoidremoveStream(IClient client, int index)Remove a stream associated with a client connectionvoidremoveStream(INetConnection netConnection, int index)Remove a stream associated with a netConnection objectvoidsetNameGroupRemoveDelayTime(int nameGroupRemoveDelayTime)voidsetStreamName(IMediaStream stream, String name)Insert live media stream into the mediaStreamMap by name.longstreamToIndex(IMediaStream stream)Get the unique stream identifier for a given stream
 
- 
- 
- 
Field Detail- 
MAXSTREAMINDEXpublic static final int MAXSTREAMINDEX - See Also:
- Constant Field Values
 
 - 
debugDVRShutdownpublic boolean debugDVRShutdown 
 - 
streamsprotected java.util.Map<Long,IMediaStream> streams 
 - 
streamNamesprotected java.util.Map<String,IMediaStream> streamNames 
 - 
streamLicensesprotected java.util.Map<Long,java.util.Map<Integer,com.wowza.wms.client.LicenseHolder>> streamLicenses 
 - 
packetizerLicensesprotected java.util.Map<ILiveStreamPacketizer,java.util.Map<Integer,com.wowza.wms.client.LicenseHolder>> packetizerLicenses 
 - 
streamNameToGroupprotected java.util.Map<String,java.util.Set<com.wowza.wms.stream.MediaStreamMapGroup>> streamNameToGroup 
 - 
nameGroupsprotected java.util.List<com.wowza.wms.stream.MediaStreamMapGroup> nameGroups 
 - 
nameGroupIdprotected long nameGroupId 
 - 
nameGroupRemoveDelayTimeprotected int nameGroupRemoveDelayTime 
 - 
nameGroupDelayRemoveMapprotected java.util.Map<String,com.wowza.wms.stream.MediaStreamMap.NameGroupHolder> nameGroupDelayRemoveMap 
 - 
streamLockprotected edu.emory.mathcs.backport.java.util.concurrent.locks.WMSReadWriteLock streamLock 
 - 
streamNamesLockprotected edu.emory.mathcs.backport.java.util.concurrent.locks.WMSReadWriteLock streamNamesLock 
 - 
appInstanceprotected IApplicationInstance appInstance 
 - 
mediaStreamListenersprotected java.util.List<IMediaStreamNotify> mediaStreamListeners 
 - 
nextStreamIdprotected java.util.concurrent.atomic.AtomicLong nextStreamId 
 - 
liveStreamPacketizersprotected java.util.Map<String,ILiveStreamPacketizer> liveStreamPacketizers 
 - 
dvrRecordersprotected java.util.Map<String,ILiveStreamDvrRecorder> dvrRecorders 
 
- 
 - 
Constructor Detail- 
MediaStreamMappublic MediaStreamMap(IApplicationInstance appInstance) Create empty MediaStreamMap collection- Parameters:
- appInstance- parent applicationInstance
 
 
- 
 - 
Method Detail- 
getStreamListLockpublic edu.emory.mathcs.backport.java.util.concurrent.locks.WMSReadWriteLock getStreamListLock() Get the underlying read/write lock associated with the list of streams- Returns:
- underlying read/write lock associated with the list of streams
 
 - 
getStreamNameLockpublic edu.emory.mathcs.backport.java.util.concurrent.locks.WMSReadWriteLock getStreamNameLock() Get the underlying read/write lock associated with the stream names list- Returns:
- underlying read/write lock associated with the stream names list
 
 - 
getPublishStreamNamespublic java.util.List<String> getPublishStreamNames() Returns a List of published stream names- Returns:
- List of published stream names
 
 - 
getStreamspublic java.util.List<IMediaStream> getStreams() Returns a list of IMediaStream objects- Returns:
- list of IMediaStream objects
 
 - 
getStreampublic IMediaStream getStream(IClient client, int index) Get a media stream reference by stream id.- Parameters:
- client- client
- index- stream id
- Returns:
- media stream object or null if does not exist.
 
 - 
getStreamClientlesspublic IMediaStream getStreamClientless(int index, String streamTypeStr) Get a media stream reference by stream id. If it does not exist, create a new one with the given id. This is a clientless stream that is served by the backend of the server. If creating a new media stream object, its id must first be obtained by callinggetNextStreamIndex().- Parameters:
- index- stream id
- streamTypeStr- stream type
- Returns:
- media stream object
 
 - 
getStreampublic IMediaStream getStream(IClient client, int index, boolean doCreate) Get a media stream reference by stream id. If it does not exist, create a new one with the given id. If creating a new media stream object, its id must first be obtained by callinggetNextStreamIndex(IClient).- Parameters:
- client- client
- index- stream id
- doCreate- true to create if it does not exist
- Returns:
- media stream object
 
 - 
getStreampublic IMediaStream getStream(INetConnection netConnection, int index) Get a media stream object that is owned by a server to server netConnection object (not yet implemented).- Parameters:
- netConnection- netConnection to remote server
- index- stream id
- Returns:
- media stream object or null if does not exist
 
 - 
getStreampublic IMediaStream getStream(INetConnection netConnection, int index, boolean doCreate) Get a media stream reference by stream id. If it does not exist, create a new one with the given id. If creating a new media stream object, its id must first be obtained by callinggetNextStreamIndex(INetConnection).- Parameters:
- netConnection- netConnection to remote server
- index- stream id
- doCreate- true to create if it does not exist
- Returns:
- media stream object
 
 - 
getStreampublic IMediaStream getStream(String name) Get a media stream by stream name. Only published live streams are stored in the mediaStreamMap by name. This method is used to lookup a published live stream by name.- Parameters:
- name- stream name
- Returns:
- media stream object or null if does not exist
 
 - 
setStreamNamepublic void setStreamName(IMediaStream stream, String name) Insert live media stream into the mediaStreamMap by name.- Parameters:
- stream- mediea stream object
- name- media stream name
 
 - 
clearStreamNamepublic void clearStreamName(String name) Unregister a published live media stream name.- Parameters:
- name- stream name
 
 - 
streamToIndexpublic long streamToIndex(IMediaStream stream) Get the unique stream identifier for a given stream- Parameters:
- stream- stream
- Returns:
- unique stream identifier
 
 - 
clearStreamNamepublic void clearStreamName(String name, IMediaStream stream)Unregister a published live media stream name.- Parameters:
- name- stream name
- stream- stream
 
 - 
getNextStreamIndexpublic int getNextStreamIndex(INetConnection netConnection) Reserve a stream for a netConnection connection. UsegetStream(INetConnection, int, boolean)to create stream.- Parameters:
- netConnection-
- Returns:
- next stream index
 
 - 
getNextStreamIndexpublic int getNextStreamIndex(IClient client) Reserve a stream for a client connection. UsegetStream(IClient, int, boolean)to create stream.- Parameters:
- client- parent client
- Returns:
- stream index
 
 - 
getNextStreamIndexpublic int getNextStreamIndex() Reserve a clientless stream id for a new media stream. Use this method to obtain a stream id for a new media stream object that is then created with a call to getClientlessStream().- Returns:
- new reserved stream id
 
 - 
getCountpublic int getCount() Get the total number of streams stored in the mediaStreamMap- Returns:
- total number of streams stored in the mediaStreamMap
 
 - 
removeStreampublic void removeStream(INetConnection netConnection, int index) Remove a stream associated with a netConnection object- Parameters:
- netConnection- net connection
- index- stream index
 
 - 
removeStreampublic void removeStream(IClient client, int index) Remove a stream associated with a client connection- Parameters:
- client- client
- index- stream index
 
 - 
removeStreampublic void removeStream(int index) Remove a clientless media stream- Parameters:
- index- stream index
 
 - 
getAppNamepublic String getAppName() Get the name of the parent application.- Returns:
- parent application name.
 
 - 
getAppInstanceNamepublic String getAppInstanceName() Get the name of the parent applicationInstance.- Returns:
- parent applicationInstance name
 
 - 
getVHostpublic IVHost getVHost() Get the parent vHost.- Returns:
- parent vHost
 
 - 
getAppInstancepublic IApplicationInstance getAppInstance() Get the parent applicationInstance.- Returns:
- parent applicationInstance
 
 - 
notifyPlayUnpublishpublic void notifyPlayUnpublish(IMediaStream stream) Notify all play streams that are listening to this stream that the stream is going into a state of unpublished (NetStream.Play.UnpublishNotify).- Parameters:
- stream- live published stream that is being unpublished
 
 - 
notifyPlayUnpublishpublic void notifyPlayUnpublish(String streamName) Notify all play streams that are listening to this stream name that the stream is going into a state of unpublished (NetStream.Play.UnpublishNotify).- Parameters:
- streamName- live published stream that is being unpublished
 
 - 
broadcastGetObjectEncodingpublic int broadcastGetObjectEncoding(IMediaStream stream) Get the minimum object encoding level for the clients playing this stream.- Parameters:
- stream- publish stream
- Returns:
- object encoding level (AMF0 or AMF3)
 
 - 
broadcasePlayMessagepublic void broadcasePlayMessage(IMediaStream stream, long timecode, java.nio.ByteBuffer msg, int objectEncoding) Send a broadcast message to all play stream that are listening to this live published stream.- Parameters:
- stream- media stream
- timecode- timecode (milliseconds)
- msg- byte[] of data that will be deserialized as an AMFData object.
- objectEncoding- object encoding (AMF0 or AMF3)
 
 - 
notifyPlayPublishpublic void notifyPlayPublish(IMediaStream stream) Notify all play streams that are listening to this stream that the stream is going into a state of publish (NetStream.Play.PublishNotify).- Parameters:
- stream- live published stream that is being published
 
 - 
addMediaStreamListenerpublic void addMediaStreamListener(IMediaStreamNotify mediaStreamListener) Add a media stream listener. A media stream listener will receive the following events: onMediaStreamCreate, onMediaStreamDestroy.- Parameters:
- mediaStreamListener- media stream listener
 
 - 
removeMediaStreamListenerpublic void removeMediaStreamListener(IMediaStreamNotify mediaStreamListener) Remove a media stream listener.- Parameters:
- mediaStreamListener- media stream listener
 
 - 
notifyMediaStreamCreatepublic void notifyMediaStreamCreate(IMediaStream mediaStream) Notify all media stream listeners that a new media stream object has been created.- Parameters:
- mediaStream- new media stream object
 
 - 
notifyMediaStreamDestroypublic void notifyMediaStreamDestroy(IMediaStream mediaStream) Notify all media stream listeners that a media stream object is being destroyed.- Parameters:
- mediaStream- media stream object being destroyed
 
 - 
removeLiveStreamPacketizerpublic void removeLiveStreamPacketizer(String streamName) Remove all live stream packetizers for this stream name- Parameters:
- streamName- streamName
 
 - 
closeLiveStreamPacketizerpublic void closeLiveStreamPacketizer(String streamName, String packetizerName)Close live stream packetizer by sending the last data received- Parameters:
- streamName- stream name
 
 - 
removeLiveStreamPacketizerpublic ILiveStreamPacketizer removeLiveStreamPacketizer(String streamName, String packetizerName) Remove live stream packetizer- Parameters:
- streamName- stream name
- packetizerName- packetizer id
- Returns:
- live stream packetizer
 
 - 
getLiveStreamPacketizerLockpublic Object getLiveStreamPacketizerLock() Get the lock to the live stream packetizer system- Returns:
- lock to the live stream packetizer system
 
 - 
getLiveStreamPacketizerpublic ILiveStreamPacketizer getLiveStreamPacketizer(String streamName, String packetizerName, boolean doCreate) Get a live stream packetizer by name and packetizer id- Parameters:
- streamName- stream name
- packetizerName- packetizer id
- doCreate- create if does not exist
- Returns:
- live stream packetizer
 
 - 
getNextNameGroupIdpublic long getNextNameGroupId(com.wowza.wms.stream.MediaStreamMapGroup newGroup) 
 - 
addNameGrouppublic com.wowza.wms.stream.MediaStreamMapGroup addNameGroup(com.wowza.wms.stream.MediaStreamMapGroup newGroup) 
 - 
removeNameGrouppublic com.wowza.wms.stream.MediaStreamMapGroup removeNameGroup(int groupId) 
 - 
removeNameGrouppublic com.wowza.wms.stream.MediaStreamMapGroup removeNameGroup(com.wowza.wms.stream.MediaStreamMapGroup nameGroup) 
 - 
getNameGroupspublic java.util.Set<com.wowza.wms.stream.MediaStreamMapGroup> getNameGroups() 
 - 
getNameGroupByGroupNamepublic com.wowza.wms.stream.MediaStreamMapGroup getNameGroupByGroupName(String groupName) 
 - 
getNameGroupspublic java.util.Set<com.wowza.wms.stream.MediaStreamMapGroup> getNameGroups(String streamName) 
 - 
getNameGroupStreamNamespublic java.util.Set<String> getNameGroupStreamNames(String streamName) 
 - 
getDvrRecorderpublic ILiveStreamDvrRecorder getDvrRecorder(String streamName, String recorderName, boolean doCreate) Get a DVR recorder by name and recorder name- Parameters:
- streamName- stream name
- recorderName- packetizer id
- doCreate- create if does not exist
- Returns:
- dvr recorder
 
 - 
removeDvrRecorderpublic void removeDvrRecorder(String streamName) 
 - 
removeDvrRecorderpublic ILiveStreamDvrRecorder removeDvrRecorder(String streamName, String recorderName) Remove DVR Recorder- Parameters:
- streamName- stream name
- recorderName- recorder name
- Returns:
- DVR Recorder
 
 - 
getDvrRecorderspublic java.util.List<ILiveStreamDvrRecorder> getDvrRecorders() Returns a list of ILiveStreamDvrRecorder objects- Returns:
- list of ILiveStreamDvrRecorder objects
 
 - 
addLicensepublic com.wowza.wms.client.LicenseHolder addLicense(IMediaStream stream, int licenseType) 
 - 
addLicensepublic com.wowza.wms.client.LicenseHolder addLicense(ILiveStreamPacketizer liveStreamPacketizer, int licenseType) 
 - 
doWatchdogpublic void doWatchdog() 
 - 
getNameGroupRemoveDelayTimepublic int getNameGroupRemoveDelayTime() 
 - 
setNameGroupRemoveDelayTimepublic void setNameGroupRemoveDelayTime(int nameGroupRemoveDelayTime) 
 
- 
 
-