Packages
membrane_mpeg_ts_plugin
2.4.3
2.4.9
2.4.8
2.4.7
2.4.6
2.4.5
2.4.4
2.4.3
2.4.2
2.4.1
2.4.0
2.3.18
2.3.17
2.3.16
2.3.15
2.3.14
2.3.12
2.3.11
2.3.10
2.3.9
2.3.8
2.3.7
2.3.6
2.3.5
2.3.4
2.3.3
2.3.2
2.3.1
2.3.0
2.2.1
2.2.0
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.2
2.0.1
2.0.0
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.0
1.0.3
1.0.2
1.0.1
1.0.0
MPEG-TS Demuxer that implements the Membrane.Filter behaviour.
Current section
Files
Jump to
Current section
Files
lib/membrane/mpeg/ts/profiles.ex
defmodule Membrane.MPEG.TS.Profiles do
@moduledoc """
Well-known stream profiles that combine stream_type, descriptors, and payload adapters.
Profiles provide a higher-level way to select or configure streams without
hiding the underlying PMT details. For example, `:opus_mpeg_ts` expands to
PES private data with an `Opus` registration descriptor and uses the Opus
MPEG-TS packetizer/depacketizer.
"""
@profiles %{
opus_mpeg_ts: %{
stream_type: :PES_PRIVATE_DATA,
descriptors: [%{tag: 0x05, data: "Opus"}],
stream_category: :audio,
packetizer: Membrane.MPEG.TS.OpusPayload
},
scte35: %{
stream_type: :PES_PRIVATE_DATA,
descriptors: [%{tag: 0x05, data: "CUEI"}],
stream_category: :cues,
packetizer: nil
}
}
@spec fetch(atom()) :: {:ok, map()} | :error
def fetch(profile) do
Map.fetch(@profiles, profile)
end
@spec fetch!(atom()) :: map()
def fetch!(profile) do
Map.fetch!(@profiles, profile)
end
@spec list() :: [atom()]
def list do
Map.keys(@profiles)
end
end