Skip to content
This repository was archived by the owner on Sep 19, 2024. It is now read-only.

Commit 41f9b3d

Browse files
committed
Add framerate opts to HLSEndpoint
1 parent 7c4d9ae commit 41f9b3d

File tree

3 files changed

+47
-30
lines changed

3 files changed

+47
-30
lines changed

lib/membrane_rtc_engine/endpoints/hls_endpoint.ex

+21-6
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,13 @@ if Enum.all?(
2929
* `{:playlist_playable, content_type, stream_id}`
3030
* `{:cleanup, clean_function, stream_id}`
3131
"""
32+
],
33+
framerate: [
34+
spec: integer(),
35+
description: """
36+
Framerate of tracks
37+
""",
38+
default: 30
3239
]
3340

3441
@impl true
@@ -37,7 +44,8 @@ if Enum.all?(
3744
tracks: %{},
3845
stream_ids: MapSet.new(),
3946
output_directory: opts.output_directory,
40-
owner: opts.owner
47+
owner: opts.owner,
48+
framerate: opts.framerate
4149
}
4250

4351
{:ok, state}
@@ -100,7 +108,14 @@ if Enum.all?(
100108
File.rm_rf(directory)
101109
File.mkdir_p!(directory)
102110

103-
spec = hls_links_and_children(link_builder, track.encoding, track_id, track.stream_id)
111+
spec =
112+
hls_links_and_children(
113+
link_builder,
114+
track.encoding,
115+
track_id,
116+
track.stream_id,
117+
state.framerate
118+
)
104119

105120
{spec, state} =
106121
if MapSet.member?(state.stream_ids, track.stream_id) do
@@ -127,7 +142,7 @@ if Enum.all?(
127142
{{:ok, spec: spec}, state}
128143
end
129144

130-
defp hls_links_and_children(link_builder, :OPUS, track_id, stream_id),
145+
defp hls_links_and_children(link_builder, :OPUS, track_id, stream_id, _framerate),
131146
do: %ParentSpec{
132147
children: %{
133148
{:opus_decoder, track_id} => Membrane.Opus.Decoder,
@@ -144,7 +159,7 @@ if Enum.all?(
144159
]
145160
}
146161

147-
defp hls_links_and_children(link_builder, :AAC, track_id, stream_id),
162+
defp hls_links_and_children(link_builder, :AAC, track_id, stream_id, _framerate),
148163
do: %ParentSpec{
149164
children: %{},
150165
links: [
@@ -154,11 +169,11 @@ if Enum.all?(
154169
]
155170
}
156171

157-
defp hls_links_and_children(link_builder, :H264, track_id, stream_id),
172+
defp hls_links_and_children(link_builder, :H264, track_id, stream_id, framerate),
158173
do: %ParentSpec{
159174
children: %{
160175
{:video_parser, track_id} => %Membrane.H264.FFmpeg.Parser{
161-
framerate: {30, 1},
176+
framerate: {framerate, 1},
162177
alignment: :au,
163178
attach_nalus?: true
164179
}

mix.exs

+6-6
Original file line numberDiff line numberDiff line change
@@ -40,19 +40,19 @@ defmodule Membrane.RTC.Engine.MixProject do
4040
[
4141
{:membrane_core, github: "membraneframework/membrane_core", override: true},
4242
{:membrane_webrtc_plugin,
43-
github: "membraneframework/membrane_webrtc_plugin", optional: true},
43+
github: "membraneframework/membrane_webrtc_plugin", branch: "simulcast", optional: true},
4444
{:membrane_http_adaptive_stream_plugin,
4545
github: "membraneframework/membrane_http_adaptive_stream_plugin", optional: true},
46-
{:membrane_mp4_plugin, "~> 0.9.0", optional: true},
47-
{:membrane_aac_plugin, "~> 0.8.0", optional: true},
48-
{:membrane_aac_format, "~> 0.5.0", optional: true, override: true},
49-
{:membrane_aac_fdk_plugin, "~> 0.8.0", optional: true},
46+
{:membrane_mp4_plugin, "~> 0.10.0", optional: true, override: true},
47+
{:membrane_aac_plugin, "~> 0.11.0", optional: true},
48+
{:membrane_aac_format, "~> 0.6.0", optional: true},
49+
{:membrane_aac_fdk_plugin, "~> 0.9.0", optional: true},
5050
{:membrane_element_tee, "~> 0.5.0"},
5151
{:membrane_element_fake, "~> 0.5.0"},
5252
{:jason, "~> 1.2"},
5353
{:dialyxir, "1.1.0", only: :dev, runtime: false},
5454
{:ex_doc, "0.24.2", only: :dev, runtime: false},
55-
{:credo, "~> 1.4", only: :dev, runtime: false, override: true}
55+
{:credo, "~> 1.5.6", only: :dev, runtime: false, override: true}
5656
]
5757
end
5858

0 commit comments

Comments
 (0)