Class PushPublishHTTPCupertinoCloudStorageHandler
Object
com.wowza.wms.pushpublish.model.PushPublishBase
com.wowza.wms.pushpublish.model.PushPublishHTTPBase
com.wowza.wms.pushpublish.protocol.cupertino.PushPublishHTTPCupertino
com.wowza.wms.pushpublish.protocol.cupertino.PushPublishHTTPCupertinoCloudStorageHandler
- All Implemented Interfaces:
IPushPublish
,IPushPublishHTTPGroupMember
,IPushPublishHTTPOutputBuilder
,IPushPublishHTTPCupertino
- Direct Known Subclasses:
com.wowza.video.pushpublish.protocol.cupertino.PushPublishVideoHTTPCupertinoCloudStorageHandler
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected boolean
protected boolean
protected com.wowza.wms.pushpublish.cloudstorage.IPushPublishCloudStorageController
protected WMSProperties
protected String
protected Boolean
protected long
The playlist duration from the map entry.protected boolean
Fields inherited from class com.wowza.wms.pushpublish.protocol.cupertino.PushPublishHTTPCupertino
addEndListOnDisconnect, chunkDurationTarget, CHUNKLISTNAME_AUDIOONLY, CHUNKLISTNAME_AUDIOVIDEO, CHUNKLISTNAME_KEYFRAMEONLY, CHUNKLISTNAME_VIDEOONLY, CHUNKLISTNAMES, keepMediaSegmentDataAfterSending, liveStreamPacketizerCupertino, minNumToDelete, minNumToSend, PLAYLISTNAME, pusher, RENDITION_AUDIOONLY, RENDITION_AUDIOVIDEO, RENDITION_KEYFRAMEONLY, RENDITION_SUBTITLES, RENDITION_VIDEOONLY, RENDITIONINDEX_AUDIOONLY, RENDITIONINDEX_AUDIOVIDEO, RENDITIONINDEX_COUNT, RENDITIONINDEX_KEYFRAMEONLY, RENDITIONINDEX_SUBTITLES, RENDITIONINDEX_VIDEOONLY, SUBTITLELISTNAME
Fields inherited from class com.wowza.wms.pushpublish.model.PushPublishHTTPBase
CACHE_CONTROL_FACTOR, CACHE_CONTROL_HEADER, CACHE_CONTROL_HEADER_KEY, CACHE_CONTROL_HEADER_NONE, CACHE_CONTROL_MEDIA_DEFAULT, httpLogManifests, httpManifestDebug, INDETERMINATE_PLAYLIST_COUNT, maxSegmentCountFromMap, maxSegmentCountFromPacketizer, MIN_PLAYLIST_COUNT, playlistAcrossSessions, playlistBaseUrl, playlistCountFromMap, playlistCountFromPacketizer, playlistCrossName, playlistDurationFromMap, playlistMap, playlistName, playlistTimeout, relativePlaylists
Fields inherited from class com.wowza.wms.pushpublish.model.PushPublishBase
appInstance, className, DESTINATION_BAK, DESTINATION_PRI, DESTINATION_RED, destinationName, destinationServer, dstStreamName, entryName, hostname, inetAddr, isAdaptiveStreaming, isExternalRedundancy, logger, mImplementation, myMap, password, playbackHostname, port, profile, properties, pushPublishSession, pushPublishStreamDebug, pushPublishType, reconnectWaitTime, sendingPerformance, srcStream, srcStreamName, totalIOPerformance2Last, totalIOPerformanceLast, userName
Fields inherited from interface com.wowza.wms.pushpublish.model.IPushPublish
CONNECTED_STATE_CONNECTED, CONNECTED_STATE_CONNECTING, CONNECTED_STATE_NOT_CONNECTED, CONNECTED_STATE_WAITING, PUSHPUBLISH_MAP_PATH_FIELD_NAME, PUSHPUBLISH_TYPE_CUPERTINO, PUSHPUBLISH_TYPE_MPEGDASH, PUSHPUBLISH_TYPE_NOTIFY_PACKET, PUSHPUBLISH_TYPE_RTMP, PUSHPUBLISH_TYPE_RTP, PUSHPUBLISH_TYPE_RTP_BUFFERED, PUSHPUBLISH_TYPE_SANJOSE, PUSHPUBLISH_TYPE_SRT, PUSHPUBLISH_TYPE_UNKNOWN
Fields inherited from interface com.wowza.wms.pushpublish.model.IPushPublishHTTPOutputBuilder
PUSHER_ERROR_LIVEPACKETIZER_NOT_CONFIGURED, PUSHER_ERROR_RENDITIONS_MISCONFIGURED
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
connect()
int
deleteMediaSegment
(MediaSegmentModel mediaSegment) Deletes the media (chunk) at the destination URI.protected String
protected String
getDestinationStreamPath
(MediaSegmentModel mediaSegment) protected String
getDestinationStreamPath
(PlaylistModel playlist) protected String
Get a JSON formatted string of data that represents the destination to include with the connect/disconnect loggingprotected URI
getMasterPlaylistURI
(String streamOrGroupName) protected String
protected String
void
init
(IApplicationInstance appInstance, String streamName, IMediaStream stream, Map<String, String> profileData, Map<String, String> maps, com.wowza.wms.pushpublish.manager.IPushPublisher pushPublisher, boolean streamDebug) Inits the instance.boolean
Is this implementation sending to a backup servervoid
Loads map and profile parametersboolean
Close the destination (if needed).boolean
Open the destination (if needed) in preparation of having one or more items (playlists/media segments) pushed to itint
sendGroupMasterPlaylist
(String groupName, PlaylistModel playlist) Sends a group master playlist to the destination.int
sendMasterPlaylist
(PlaylistModel playlist) Sends the master playlist to the destination.int
sendMediaPlaylist
(PlaylistModel playlist) Sends the media playlist to the destination.int
sendMediaSegment
(MediaSegmentModel mediaSegment) Sends the media (chunk) to the destination; media provided as a fragment list.protected int
sendPlaylist
(String parentMethod, URI uri, PlaylistModel playlist) void
void
setSendToBackupServer
(boolean backup) Setup to send to a backup destinationboolean
updateGroupMasterPlaylistPlaybackURI
(String groupName, PlaylistModel masterPlaylist) Get the group master playlist URI for the given group master playlist file that a player would use to consume the content from the CDN Example: "http://myHost.com/myPath/myGroup/playlist.m3u8"boolean
updateMasterPlaylistPlaybackURI
(PlaylistModel playlist) update the master playlist URI for the provided playlist model that a player would use to consume the content from the CDN Example: "http://myHost.com/myPath/myStream/playlist.m3u8" where "playlist.m3u8" is the value given for masterPlaylistFilenameboolean
updateMediaPlaylistPlaybackURI
(PlaylistModel playlist) update/set the media playlist (chunklist) URI for the provided media playlist file that a player would use to consume the content from the CDN Example: "http://myHost.com/myPath/myStream/chunklist.m3u8" where "chunklist.m3u8" is the value given for mediaPlaylistFilenameboolean
updateMediaSegmentPlaybackURI
(MediaSegmentModel mediaSegment) set the media URI for the given media (chunk) file that a player would use to consume the content from the CDN Example: "http://myHost.com/myPath/myStream/media_1.ts" where "media_1.ts" is the value given for mediaFilenameMethods inherited from class com.wowza.wms.pushpublish.protocol.cupertino.PushPublishHTTPCupertino
adaptiveGroupPlaylistNeedsUpdating, addPlaylistToMasterPlaylist, addTagToPlaylist, addTagToPlaylist, createGroupPlaylist, createMasterPlaylist, createMediaPlaylist, createMediaSegmentModel, createOutputItem, createStreamInfTag, createTag, disconnect, disconnect, error, getChunkDurationTarget, getConnectedState, getContextStr, getGroupPlaylistRenditionDescription, getHeaderSegment, getLastChunkId, getLiveStreamPacketizerCupertino, getLiveStreamPacketizerName, getMediaPlaylistForRendtion, getMediaPlaylistPlaybackURL, getMediaPlaylists, getMediaPlaylistStr, getMessagesAttemptedCount, getMessagesFailedCount, getMessagesRetriedCount, getPacketizerLock, getPlaylistCount, getPlaylistProperties, getRandomSessionStr, getRenditionsStr, isGroupReady, isInRedundancyPair, isRendition, loadMediaSegment, outputSend, prepareMediaPlaylist, printPlaylist, processPlaylistChunks, renditionIndexToRendition, renditionToPacketizerRendition, renditionToRenditionIndex, resetConnection, resetNewPacketizer, sendGroupPlaylist, setLiveStreamPacketizer, setRenditionsStr, writeTagToString
Methods inherited from class com.wowza.wms.pushpublish.model.PushPublishHTTPBase
getAdaptiveGroupName, getMaxSegmentCount, getPlaylistBaseUrl, getPlaylistMap, getPlaylistTimeout, isInAdaptiveGroup, isLogDebugManifest, isPlaylistAcrossSessions, isRelativePlaylists, logDebugManifest, setAdaptiveGroupName, setMaxSegmentCountFromMap, setMaxSegmentCountFromPacketizer, setPlaylistAcrossSessions, setPlaylistBaseUrl, setPlaylistCountFromMap, setPlaylistCountFromPacketizer, setPlaylistTimeout, setRelativePlaylists
Methods inherited from class com.wowza.wms.pushpublish.model.PushPublishBase
add, addIOPerformance2, clearLoggingValues, createPushPublishSession, getAppInstance, getBandwidth, getBaseParams, getDestinationID, getDestinationName, getDestinationServer, getDstStreamName, getEntryName, getHostname, getImplementation, getInetAddr, getMap, getMessagesOutBytes, getMessagesOutCount, getPassword, getPlaybackHostname, getPort, getProfile, getProperties, getPushPublishType, getReconnectWaitTime, getSrcStream, getSrcStreamName, getUserName, getWowzaStreamingEngineVersionStr, incrementMessagesOut, isAdaptiveStreaming, isDebugLog, isExternalRedundancy, logDebug, logError, logError, logError, logInfo, logWarn, resolveHostName, setAdaptiveStreaming, setAdaptiveStreaming, setAppInstance, setDebugLog, setDestinationName, setDestinationServer, setDestinationServer, setDstStreamName, setEntryName, setExternalRedundancy, setExternalRedundancy, setHost, setHostname, setImplementation, setInetAddr, setPassword, setPlaybackHostname, setPort, setPort, setProfile, setReconnectWaitTime, setSrcStream, setSrcStreamName, setStreamName, setUserName, updateLoggingValues, updateUsageTracker
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.wowza.wms.pushpublish.model.IPushPublishHTTPGroupMember
getAdaptiveGroupName, isInAdaptiveGroup, isLogDebugManifest
Methods inherited from interface com.wowza.wms.pushpublish.model.IPushPublishHTTPOutputBuilder
getAppInstance, getDstStreamName, getSrcStreamName, isDebugLog
-
Field Details
-
cloudStorageTransportDebug
-
cloudStorageProviderName
-
cloudStorageController
protected com.wowza.wms.pushpublish.cloudstorage.IPushPublishCloudStorageController cloudStorageController -
cloudStorageControllerProps
-
cloudStorageCleanBucket
protected boolean cloudStorageCleanBucket -
playlistDuration
protected long playlistDurationThe playlist duration from the map entry. This value is in seconds. http.playlistDuration REMOVE when migrated to WSE -
backup
protected boolean backup -
useRandomSession
protected boolean useRandomSession
-
-
Constructor Details
-
PushPublishHTTPCupertinoCloudStorageHandler
public PushPublishHTTPCupertinoCloudStorageHandler() throws com.wowza.wms.server.LicensingException- Throws:
com.wowza.wms.server.LicensingException
-
-
Method Details
-
init
public void init(IApplicationInstance appInstance, String streamName, IMediaStream stream, Map<String, String> profileData, Map<String, String> maps, com.wowza.wms.pushpublish.manager.IPushPublisher pushPublisher, boolean streamDebug) Description copied from class:PushPublishHTTPBase
Inits the instance.- Specified by:
init
in interfaceIPushPublish
- Overrides:
init
in classPushPublishHTTPCupertino
- Parameters:
appInstance
- the app instancestreamName
- the source stream nameprofileData
- the profile paramsmaps
- the map entry paramsstreamDebug
- stream debug flag
-
connect
public void connect()- Specified by:
connect
in interfaceIPushPublish
- Overrides:
connect
in classPushPublishHTTPCupertino
-
load
Description copied from class:PushPublishHTTPBase
Loads map and profile parameters- Overrides:
load
in classPushPublishHTTPCupertino
- Parameters:
dataMap
- the data map
-
updateGroupMasterPlaylistPlaybackURI
Description copied from interface:IPushPublishHTTPCupertino
Get the group master playlist URI for the given group master playlist file that a player would use to consume the content from the CDN Example: "http://myHost.com/myPath/myGroup/playlist.m3u8"- Parameters:
groupName
- group namemasterPlaylist
- master group playlist- Returns:
- true if the uri was updated
-
updateMasterPlaylistPlaybackURI
Description copied from interface:IPushPublishHTTPCupertino
update the master playlist URI for the provided playlist model that a player would use to consume the content from the CDN Example: "http://myHost.com/myPath/myStream/playlist.m3u8" where "playlist.m3u8" is the value given for masterPlaylistFilename- Parameters:
playlist
- the master playlist model to update the URI in- Returns:
- true if the URI was updated
-
updateMediaPlaylistPlaybackURI
Description copied from interface:IPushPublishHTTPCupertino
update/set the media playlist (chunklist) URI for the provided media playlist file that a player would use to consume the content from the CDN Example: "http://myHost.com/myPath/myStream/chunklist.m3u8" where "chunklist.m3u8" is the value given for mediaPlaylistFilename- Parameters:
playlist
- to update the uri in- Returns:
- true if the playlist uri was updated
-
updateMediaSegmentPlaybackURI
Description copied from interface:IPushPublishHTTPCupertino
set the media URI for the given media (chunk) file that a player would use to consume the content from the CDN Example: "http://myHost.com/myPath/myStream/media_1.ts" where "media_1.ts" is the value given for mediaFilename- Parameters:
mediaSegment
- to update the uri of- Returns:
- true if the uri was updated
-
sendGroupMasterPlaylist
Description copied from interface:IPushPublishHTTPCupertino
Sends a group master playlist to the destination.- Parameters:
groupName
- the group nameplaylist
- the group master playlist model- Returns:
- number of bytes sent to output
-
sendMasterPlaylist
Description copied from interface:IPushPublishHTTPCupertino
Sends the master playlist to the destination.- Parameters:
playlist
- the master playlist model- Returns:
- number of bytes sent to output (less than zero implies the implementation does not support, 0 is a failure, > 0 is success)
-
sendMediaPlaylist
Description copied from interface:IPushPublishHTTPCupertino
Sends the media playlist to the destination.- Parameters:
playlist
- the media playlist model- Returns:
- number of bytes sent to output (less than zero implies the implementation does not support, 0 is a failure, > 0 is success)
-
sendMediaSegment
Description copied from interface:IPushPublishHTTPCupertino
Sends the media (chunk) to the destination; media provided as a fragment list.- Parameters:
mediaSegment
- the media file in fragment list form- Returns:
- number of bytes sent to output (less than zero implies the implementation does not support, 0 is a failure, > 0 is success)
-
deleteMediaSegment
Description copied from interface:IPushPublishHTTPCupertino
Deletes the media (chunk) at the destination URI. Default implementation assumes the URI uses the HTTP schema and deletes the media using the WSE HTTPByteWriter. Implementations not using the HTTP schema or not wanting to use the default HTTPByteWriter should override the default method.- Parameters:
mediaSegment
- the media destination URI- Returns:
- number of bytes sent if successful (less than zero implies the implementation does not support, 0 is a failure, > 0 is success)
-
outputOpen
public boolean outputOpen()Description copied from interface:IPushPublishHTTPCupertino
Open the destination (if needed) in preparation of having one or more items (playlists/media segments) pushed to it- Returns:
- true if the destination was opened
-
outputClose
public boolean outputClose()Description copied from interface:IPushPublishHTTPCupertino
Close the destination (if needed). All items (playlist/media segments) have been pushed to bring the destination up to date with the current state- Returns:
- true if the destination was closed
-
setSendToBackupServer
public void setSendToBackupServer(boolean backup) Description copied from interface:IPushPublishHTTPCupertino
Setup to send to a backup destination -
isSendToBackupServer
public boolean isSendToBackupServer()Description copied from interface:IPushPublishHTTPCupertino
Is this implementation sending to a backup server- Returns:
- true if sending to a backup server
-
getDestionationLogData
Description copied from class:PushPublishHTTPCupertino
Get a JSON formatted string of data that represents the destination to include with the connect/disconnect logging- Specified by:
getDestionationLogData
in interfaceIPushPublishHTTPCupertino
- Specified by:
getDestionationLogData
in classPushPublishHTTPCupertino
- Returns:
- JSON formatted string representation
-
getMasterPlaylistURI
- Throws:
URISyntaxException
-
getMediaPlaylistPlayBackPath
-
getSubtitlelistPlaybackPath
-
getDestinationStreamName
-
getDestinationSubtitleDir
-
getDestinationStreamPath
-
getDestinationStreamPath
-
sendPlaylist
-
setChunkDurationTarget
public void setChunkDurationTarget()
-