# Membrane HTTP Adaptive Stream plugin v0.21.2 - Table of Contents

Membrane plugin for adaptive streaming over HTTP

## Pages

- [Membrane HTTP Adaptive Streaming Plugin](readme.md)
- [LICENSE](license.md)

## Modules

- [Membrane.HTTPAdaptiveStream.Source](Membrane.HTTPAdaptiveStream.Source.md): A Membrane Source element that fetches and demuxes HLS streams.
- [Membrane.HTTPAdaptiveStream.TDENEvent](Membrane.HTTPAdaptiveStream.TDENEvent.md): Event containing the "encoding time" - timestamp describing when
frame was encoded - read from the ID3v2.4 `TDEN` tag.

- Elements
  - [Membrane.HTTPAdaptiveStream.Sink](Membrane.HTTPAdaptiveStream.Sink.md): Sink for generating HTTP streaming manifests.
  - [Membrane.HTTPAdaptiveStream.Sink.ManifestConfig](Membrane.HTTPAdaptiveStream.Sink.ManifestConfig.md): `Membrane.HTTPAdaptiveStream.Manifest` configuration.

  - [Membrane.HTTPAdaptiveStream.Sink.TrackConfig](Membrane.HTTPAdaptiveStream.Sink.TrackConfig.md): Track configuration. For more information checkout `Membrane.HTTPAdaptiveStream.Manifest.Track.Config`

  - [Membrane.HTTPAdaptiveStream.SinkBin](Membrane.HTTPAdaptiveStream.SinkBin.md): Bin responsible for receiving audio and video streams, performing payloading and CMAF muxing
to eventually store them using provided storage configuration.

- HLS
  - [Membrane.HTTPAdaptiveStream.HLS](Membrane.HTTPAdaptiveStream.HLS.md): `Membrane.HTTPAdaptiveStream.Manifest` implementation for HTTP Live Streaming.
  - [Membrane.HTTPAdaptiveStream.HLS.SegmentAttribute](Membrane.HTTPAdaptiveStream.HLS.SegmentAttribute.md): Implementation of `Membrane.HTTPAdaptiveStream.Manifest.SegmentAttribute` behaviour for HTTP Live Streaming

- Manifest
  - [Membrane.HTTPAdaptiveStream.Manifest](Membrane.HTTPAdaptiveStream.Manifest.md): Behaviour for manifest serialization.

  - [Membrane.HTTPAdaptiveStream.Manifest.Changeset](Membrane.HTTPAdaptiveStream.Manifest.Changeset.md): Structure representing changes that has been applied to the track. What element has been added
and what elements are to be removed.

  - [Membrane.HTTPAdaptiveStream.Manifest.Changeset.Segment](Membrane.HTTPAdaptiveStream.Manifest.Changeset.Segment.md): Type used to recognize `to_add` segments in Changeset.

  - [Membrane.HTTPAdaptiveStream.Manifest.Segment](Membrane.HTTPAdaptiveStream.Manifest.Segment.md): Structure representing a single manifest segment.
  - [Membrane.HTTPAdaptiveStream.Manifest.SegmentAttribute](Membrane.HTTPAdaptiveStream.Manifest.SegmentAttribute.md): Definition of Segment Attributes and behaviour for serializing them.
This module should also contain macros for generating different types of attributes

  - [Membrane.HTTPAdaptiveStream.Manifest.Track](Membrane.HTTPAdaptiveStream.Manifest.Track.md): Struct representing a state of a single manifest track and functions to operate
on it.

  - [Membrane.HTTPAdaptiveStream.Manifest.Track.Config](Membrane.HTTPAdaptiveStream.Manifest.Track.Config.md): Track configuration.

- Storages
  - [Membrane.HTTPAdaptiveStream.Storage](Membrane.HTTPAdaptiveStream.Storage.md): Behaviour for storing manifests and stream segments.

  - [Membrane.HTTPAdaptiveStream.Storages.FileStorage](Membrane.HTTPAdaptiveStream.Storages.FileStorage.md): `Membrane.HTTPAdaptiveStream.Storage` implementation that saves the stream to
files locally.

  - [Membrane.HTTPAdaptiveStream.Storages.GenServerStorage](Membrane.HTTPAdaptiveStream.Storages.GenServerStorage.md): `Membrane.HTTPAdaptiveStream.Storage` implementation that issues a call or cast
with a `t:message_t/0` to given destination on each call to store/remove.

  - [Membrane.HTTPAdaptiveStream.Storages.SendStorage](Membrane.HTTPAdaptiveStream.Storages.SendStorage.md): `Membrane.HTTPAdaptiveStream.Storage` implementation that sends a `t:message_t/0`
to given destination on each call to store/remove.

