Interface IPushPublishHTTPGroupMember

All Known Implementing Classes:
PushPublishHTTPCupertino, com.wowza.wms.pushpublish.protocol.cupertino.PushPublishHTTPCupertinoAkamaiHandler, PushPublishHTTPCupertinoAkamaiMSL5Handler, PushPublishHTTPCupertinoCloudStorageHandler, PushPublishHTTPCupertinoGenericHandler, PushPublishHTTPCupertinoGoogleHandler, PushPublishHTTPCupertinoWowzaVideoHandler, com.wowza.video.pushpublish.protocol.cupertino.PushPublishVideoHTTPCupertinoCloudStorageHandler

public interface IPushPublishHTTPGroupMember
  • Method Details

    • createGroupPlaylist

      ManifestModel createGroupPlaylist(String id, List<List<IPushPublishHTTPGroupMember>> groupingsByRedundantPairs, List<List<IPushPublishHTTPGroupMember>> groupingsByAbrGroups, IApplicationInstance appInstance, String context, WMSProperties properties)
      Creates a group playlist.
      Parameters:
      id - the id
      groupingsByRedundantPairs - the renditions grouped by redundant pairs
      groupingsByAbrGroups - the renditions grouped by redundant ABR group
      properties - the properties
      Returns:
      the manifest model
    • sendGroupPlaylist

      void sendGroupPlaylist(String groupName, ManifestModel manifest)
      Sends a group playlist to the destination.
      Parameters:
      groupName - the group name
      manifest - the playlist/manifest to send
    • getGroupPlaylistRenditionDescription

      String getGroupPlaylistRenditionDescription(boolean forABRPlaylist)
      Generates a description or playlist-element String which can be used to differentiate this rendition from other renditions in a group. The group playlist could either for a single stream being pushed redundantly to a primary & backup destination, or for an ABR group of streams being pushed to a single destination or being pushed redundantly to multiple destinations.
      Parameters:
      forABRPlaylist - flag to indicate whether the description is for an adaptive bitrate group playlist.
    • isInAdaptiveGroup

      boolean isInAdaptiveGroup()
    • adaptiveGroupPlaylistNeedsUpdating

      Boolean adaptiveGroupPlaylistNeedsUpdating(long lastUpdateTime, List<List<IPushPublishHTTPGroupMember>> groupingsByRedundantPairs, List<List<IPushPublishHTTPGroupMember>> groupingsByAbrGroups)
    • isGroupReady

      Boolean isGroupReady(List<List<IPushPublishHTTPGroupMember>> groupingsByRedundantPairs, List<List<IPushPublishHTTPGroupMember>> groupingsByAbrGroups)
    • getAdaptiveGroupName

      String getAdaptiveGroupName()
    • getPlaylistProperties

      WMSProperties getPlaylistProperties()
    • isInRedundancyPair

      boolean isInRedundancyPair()
    • isSendToBackupServer

      boolean isSendToBackupServer()
    • supportsBackupDestination

      default boolean supportsBackupDestination()
      Whether this handler sends a backup session somewhere its primary is not already publishing -- a different ingest hostname, a "-b" stream id, a "-b" destination folder, and so on.

      A handler that accepts sendToBackupServer but derives the same destination either way must return false: a redundant target would otherwise run two sessions writing the same paths, racing on the same files with independently packetized segments. The group manager checks this before starting the backup side of a redundant group (see PushPublishGroupManager.startChildSessionsForStream).

      Defaults to true, so a handler that separates its backup output -- as all the CDN and cloud-storage handlers do -- needs no override.

      Returns:
      true if a backup session publishes to a distinct destination
    • isLogDebugManifest

      boolean isLogDebugManifest()