View Source Membrane.HTTPAdaptiveStream.Manifest behaviour (Membrane HTTP Adaptive Stream plugin v0.13.0)

Behaviour for manifest serialization.

Link to this section Summary

Functions

Adds segment to the manifest. In case of ll-hls it will add partial segment, and also full segment if needed. Returns Membrane.HTTPAdaptiveStream.Manifest.Track.Changeset.

Add a track to the manifest.

Returns all segments grouped by the track id.

Append a discontinuity to the track.

Filter all tracks that have option :persisted? set to true, then restores all the stale segments in those tracks.

Link to this section Types

Link to this type

serialized_manifest_t()

View Source
@type serialized_manifest_t() ::
  {manifest_name :: String.t(), manifest_content :: String.t()}
Link to this type

serialized_manifests_t()

View Source
@type serialized_manifests_t() :: %{
  master_manifest: serialized_manifest_t(),
  manifest_per_track: %{optional(track_id :: any()) => serialized_manifest_t()}
}
@type t() :: %Membrane.HTTPAdaptiveStream.Manifest{
  module: module(),
  name: String.t(),
  tracks: %{
    required(id :: any()) => Membrane.HTTPAdaptiveStream.Manifest.Track.t()
  }
}

Link to this section Callbacks

@callback serialize(t()) :: serialized_manifests_t()

Link to this section Functions

Link to this function

add_chunk(manifest, track_id, buffer)

View Source

Adds segment to the manifest. In case of ll-hls it will add partial segment, and also full segment if needed. Returns Membrane.HTTPAdaptiveStream.Manifest.Track.Changeset.

Link to this function

add_track(manifest, config)

View Source
@spec add_track(t(), Membrane.HTTPAdaptiveStream.Manifest.Track.Config.t()) ::
  {header_name :: String.t(), t()}

Add a track to the manifest.

Returns the name under which the header file should be stored.

Link to this function

all_segments_per_track(manifest)

View Source
@spec all_segments_per_track(t()) :: %{
  optional(track_id :: term()) => [segment_name :: String.t()]
}

Returns all segments grouped by the track id.

Link to this function

discontinue_track(manifest, track_id)

View Source
@spec discontinue_track(t(), Membrane.HTTPAdaptiveStream.Manifest.Track.id_t()) ::
  {header_name :: String.t(), t()}

Append a discontinuity to the track.

This will inform the player that eg. the parameters of the encoder changed and allow you to provide a new MP4 header. For details on discontinuities refer to RFC 8216.

Link to this function

finish(manifest, track_id)

View Source
Link to this function

from_beginning(manifest)

View Source
@spec from_beginning(t()) :: t()

Filter all tracks that have option :persisted? set to true, then restores all the stale segments in those tracks.

Link to this function

has_track?(manifest, track_id)

View Source
Link to this function

persisted?(manifest, track_id)

View Source
@spec serialize(t()) :: serialized_manifests_t()