Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions broadcaster/lib/broadcaster/forwarder.ex
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ defmodule Broadcaster.Forwarder do
alias Phoenix.PubSub

alias ExWebRTC.PeerConnection
alias ExWebRTC.RTP.H264
alias ExWebRTC.RTP.Munger
alias ExWebRTC.RTP.VP8
alias ExWebRTC.Recorder

alias Broadcaster.PeerSupervisor
Expand Down Expand Up @@ -460,7 +460,7 @@ defmodule Broadcaster.Forwarder do
layer = default_layer(input)

{audio_track, video_track} = get_tracks(pc, :sender)
munger = Munger.new(90_000)
munger = Munger.new(:vp8, 90_000)

output = %{
audio: audio_track.id,
Expand All @@ -484,7 +484,7 @@ defmodule Broadcaster.Forwarder do
Map.new(state.outputs, fn
{pc, %{input_id: ^input_id, layer: layer, pending_layer: p_layer} = output} ->
output =
if p_layer == rid and p_layer != layer and H264.keyframe?(packet) do
if p_layer == rid and p_layer != layer and VP8.keyframe?(packet) do
munger = Munger.update(output.munger)
%{output | layer: p_layer, munger: munger}
else
Expand Down
7 changes: 4 additions & 3 deletions broadcaster/mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ defmodule Broadcaster.MixProject do
def project do
[
app: :broadcaster,
version: "0.9.0",
version: "0.10.0",
elixir: "~> 1.14",
elixirc_paths: elixirc_paths(Mix.env()),
start_permanent: Mix.env() == :prod,
Expand Down Expand Up @@ -58,8 +58,9 @@ defmodule Broadcaster.MixProject do
{:jason, "~> 1.2"},
{:bandit, "~> 1.2"},
{:corsica, "~> 2.1.3"},
{:ex_webrtc, "~> 0.8.0"},
{:ex_webrtc_dashboard, "~> 0.8.0"},
{:ex_webrtc, "~> 0.14.0"},
{:ex_webrtc_dashboard, "~> 0.9.0"},
{:ex_webrtc_recorder, "~> 0.3.0"},
{:earmark, "~> 1.4"},
{:libcluster, "~> 3.4"},
{:syn, "~> 3.3"},
Expand Down
72 changes: 49 additions & 23 deletions broadcaster/mix.lock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion nexus/lib/nexus/room.ex
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ defmodule Nexus.Room do
end

@impl true
def handle_call({:mark_ready, id, _peer_ids}, _from, state) do
def handle_call({:mark_ready, id}, _from, state) do
Logger.debug("Peer #{id} was already marked as ready, ignoring")

{:reply, :ok, state}
Expand Down
6 changes: 3 additions & 3 deletions nexus/mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ defmodule Nexus.MixProject do
def project do
[
app: :nexus,
version: "0.4.0",
version: "0.5.0",
elixir: "~> 1.14",
elixirc_paths: elixirc_paths(Mix.env()),
start_permanent: Mix.env() == :prod,
Expand Down Expand Up @@ -51,8 +51,8 @@ defmodule Nexus.MixProject do
{:jason, "~> 1.2"},
{:dns_cluster, "~> 0.1.1"},
{:bandit, "~> 1.2"},
{:ex_webrtc, "~> 0.8.0"},
{:ex_webrtc_dashboard, "~> 0.8.0"},
{:ex_webrtc, "~> 0.14.0"},
{:ex_webrtc_dashboard, "~> 0.9.0"},

# Dialyzer and credo
{:dialyxir, ">= 0.0.0", only: :dev, runtime: false},
Expand Down
44 changes: 22 additions & 22 deletions nexus/mix.lock

Large diffs are not rendered by default.

10 changes: 10 additions & 0 deletions recognizer/0000-exla-disable-failing-clang-compile-check.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
--- ./deps/exla/Makefile 2025-06-23 13:36:52
+++ ./deps/exla/Makefile 2025-06-23 14:09:21
@@ -27,6 +27,7 @@
# Note: this is on :xla 0.5.0 -- things can change with later versions
CFLAGS = -fPIC -I$(ERTS_INCLUDE_DIR) -I$(XLA_INCLUDE_PATH) -Wall -Wno-sign-compare \
-Wno-unused-parameter -Wno-missing-field-initializers -Wno-comment \
+ -Wno-missing-template-arg-list-after-template-kw \
-std=c++17 -w -DLLVM_VERSION_STRING=

NVCCFLAGS = -shared -Xcompiler -fPIC
2 changes: 1 addition & 1 deletion recognizer/lib/recognizer/room.ex
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ defmodule Recognizer.Room do
task: nil,
video_track: nil,
video_depayloader: video_depayloader,
video_decoder: Xav.Decoder.new(:vp8),
video_decoder: Xav.Decoder.new(:vp8, out_format: :rgb24),
video_buffer: JitterBuffer.new(latency: @jitter_buffer_latency_ms),
audio_track: nil,
session_start_time: System.monotonic_time(:millisecond)
Expand Down
31 changes: 23 additions & 8 deletions recognizer/mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ defmodule Recognizer.MixProject do
def project do
[
app: :recognizer,
version: "0.6.0",
version: "0.7.0",
elixir: "~> 1.14",
elixirc_paths: elixirc_paths(Mix.env()),
start_permanent: Mix.env() == :prod,
Expand Down Expand Up @@ -58,11 +58,11 @@ defmodule Recognizer.MixProject do
{:jason, "~> 1.2"},
{:dns_cluster, "~> 0.1.1"},
{:plug_cowboy, "~> 2.5"},
{:ex_webrtc, "~> 0.8.0"},
{:ex_webrtc_dashboard, "~> 0.8.0"},
{:xav, "~> 0.8.0"},
{:bumblebee, "~> 0.5.3"},
{:exla, "~> 0.7.1"},
{:ex_webrtc, "~> 0.14.0"},
{:ex_webrtc_dashboard, "~> 0.9.0"},
{:xav, "~> 0.11.0"},
{:bumblebee, "~> 0.6.2"},
{:exla, "~> 0.9.2"},

# Dialyzer and credo
{:dialyxir, ">= 0.0.0", only: :dev, runtime: false},
Expand All @@ -78,12 +78,13 @@ defmodule Recognizer.MixProject do
# See the documentation for `Mix` for more info on aliases.
defp aliases do
[
setup: ["deps.get", "assets.setup", "assets.build"],
setup: ["deps.get", "deps.patch", "assets.setup", "assets.build"],
"assets.setup": ["tailwind.install --if-missing", "esbuild.install --if-missing"],
"assets.build": ["tailwind default", "esbuild default"],
"assets.deploy": ["tailwind default --minify", "esbuild default --minify", "phx.digest"],
"assets.format": &lint_and_format_assets/1,
"assets.check": &check_assets/1
"assets.check": &check_assets/1,
"deps.patch": &patch_deps/1
]
end

Expand Down Expand Up @@ -114,4 +115,18 @@ defmodule Recognizer.MixProject do
{_stream, rc} = System.cmd("npm", ["--prefix=assets"] ++ command, into: IO.stream())
{command, rc}
end

# HACK: With clang 17.0.0, compilation of `exla==0.9.2` fails because of the `-Wmissing-template-arg-list-after-template-kw` check.
# This issue isn't present in `exla==0.10.0`, but `bumblebee==0.6.2` depends on `nx ~> 0.9.0`,
# and since `exla==0.10.0` depends on `nx ~> 0.10.0`, we're stuck on `exla==0.9.2` until a new version of `bumblebee` is released.
#
# This patch adds the `-Wno-missing-template-arg-list-after-template-kw` flag in `exla`'s Makefile to suppress the compiler warning.
defp patch_deps(_args) do
{_, _} =
System.cmd("patch", ~w(-p1 -i ./0000-exla-disable-failing-clang-compile-check.patch),
into: IO.stream()
)

:ok
end
end
Loading
Loading