From a2bf5889d22a9d63d7b227f96a478570e73a7f31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Per=C5=BCy=C5=82o?= Date: Tue, 3 Feb 2026 10:45:06 +0100 Subject: [PATCH 1/3] Add capture image agent request --- fishjam/agent_notifications.proto | 5 +++++ .../lib/fishjam/agent_notifications.pb.ex | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/fishjam/agent_notifications.proto b/fishjam/agent_notifications.proto index c54c7be..7edd078 100644 --- a/fishjam/agent_notifications.proto +++ b/fishjam/agent_notifications.proto @@ -44,12 +44,17 @@ message AgentRequest { string track_id = 1; } + message CaptureImage { + string track_id = 1; + } + oneof content { AuthRequest auth_request = 1; AddTrack add_track = 2; RemoveTrack remove_track = 3; TrackData track_data = 4; InterruptTrack interrupt_track = 5; + CaptureImage capture_image = 6; } } diff --git a/fishjam_protos/lib/fishjam/agent_notifications.pb.ex b/fishjam_protos/lib/fishjam/agent_notifications.pb.ex index 952daca..690760d 100644 --- a/fishjam_protos/lib/fishjam/agent_notifications.pb.ex +++ b/fishjam_protos/lib/fishjam/agent_notifications.pb.ex @@ -71,6 +71,17 @@ defmodule Fishjam.AgentRequest.InterruptTrack do field :track_id, 1, type: :string, json_name: "trackId" end +defmodule Fishjam.AgentRequest.CaptureImage do + @moduledoc false + + use Protobuf, + full_name: "fishjam.AgentRequest.CaptureImage", + protoc_gen_elixir_version: "0.16.0", + syntax: :proto3 + + field :track_id, 1, type: :string, json_name: "trackId" +end + defmodule Fishjam.AgentRequest do @moduledoc false @@ -99,6 +110,11 @@ defmodule Fishjam.AgentRequest do type: Fishjam.AgentRequest.InterruptTrack, json_name: "interruptTrack", oneof: 0 + + field :capture_image, 6, + type: Fishjam.AgentRequest.CaptureImage, + json_name: "captureImage", + oneof: 0 end defmodule Fishjam.AgentResponse.Authenticated do From 694aad31e504028cfebdeaf2bab317e4ad0b81b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Per=C5=BCy=C5=82o?= Date: Tue, 3 Feb 2026 11:05:27 +0100 Subject: [PATCH 2/3] Add track image agent response --- fishjam/agent_notifications.proto | 7 +++++++ .../lib/fishjam/agent_notifications.pb.ex | 14 ++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/fishjam/agent_notifications.proto b/fishjam/agent_notifications.proto index 7edd078..2be7896 100644 --- a/fishjam/agent_notifications.proto +++ b/fishjam/agent_notifications.proto @@ -70,8 +70,15 @@ message AgentResponse { bytes data = 3; } + message TrackImage { + string track_id = 1; + string content_type = 2; + bytes data = 3; + } + oneof content { Authenticated authenticated = 1; TrackData track_data = 2; + TrackImage track_image = 3; } } diff --git a/fishjam_protos/lib/fishjam/agent_notifications.pb.ex b/fishjam_protos/lib/fishjam/agent_notifications.pb.ex index 690760d..ee705a9 100644 --- a/fishjam_protos/lib/fishjam/agent_notifications.pb.ex +++ b/fishjam_protos/lib/fishjam/agent_notifications.pb.ex @@ -139,6 +139,19 @@ defmodule Fishjam.AgentResponse.TrackData do field :data, 3, type: :bytes end +defmodule Fishjam.AgentResponse.TrackImage do + @moduledoc false + + use Protobuf, + full_name: "fishjam.AgentResponse.TrackImage", + protoc_gen_elixir_version: "0.16.0", + syntax: :proto3 + + field :track_id, 1, type: :string, json_name: "trackId" + field :content_type, 2, type: :string, json_name: "contentType" + field :data, 3, type: :bytes +end + defmodule Fishjam.AgentResponse do @moduledoc false @@ -151,4 +164,5 @@ defmodule Fishjam.AgentResponse do field :authenticated, 1, type: Fishjam.AgentResponse.Authenticated, oneof: 0 field :track_data, 2, type: Fishjam.AgentResponse.TrackData, json_name: "trackData", oneof: 0 + field :track_image, 3, type: Fishjam.AgentResponse.TrackImage, json_name: "trackImage", oneof: 0 end From 546676bbbc2875ba093563d6e779e0bd0fc17b36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Per=C5=BCy=C5=82o?= Date: Tue, 3 Feb 2026 17:26:24 +0100 Subject: [PATCH 3/3] Update docs --- doc/docs.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/doc/docs.md b/doc/docs.md index 2cd4ee6..0dbe5e7 100644 --- a/doc/docs.md +++ b/doc/docs.md @@ -8,12 +8,14 @@ - [AgentRequest.AddTrack](#fishjam-AgentRequest-AddTrack) - [AgentRequest.AddTrack.CodecParameters](#fishjam-AgentRequest-AddTrack-CodecParameters) - [AgentRequest.AuthRequest](#fishjam-AgentRequest-AuthRequest) + - [AgentRequest.CaptureImage](#fishjam-AgentRequest-CaptureImage) - [AgentRequest.InterruptTrack](#fishjam-AgentRequest-InterruptTrack) - [AgentRequest.RemoveTrack](#fishjam-AgentRequest-RemoveTrack) - [AgentRequest.TrackData](#fishjam-AgentRequest-TrackData) - [AgentResponse](#fishjam-AgentResponse) - [AgentResponse.Authenticated](#fishjam-AgentResponse-Authenticated) - [AgentResponse.TrackData](#fishjam-AgentResponse-TrackData) + - [AgentResponse.TrackImage](#fishjam-AgentResponse-TrackImage) - [fishjam/media_events/peer/peer.proto](#fishjam_media_events_peer_peer-proto) - [MediaEvent](#fishjam-media_events-peer-MediaEvent) @@ -143,6 +145,7 @@ Defines any type of message passed from agent peer to Fishjam | remove_track | [AgentRequest.RemoveTrack](#fishjam-AgentRequest-RemoveTrack) | | | | track_data | [AgentRequest.TrackData](#fishjam-AgentRequest-TrackData) | | | | interrupt_track | [AgentRequest.InterruptTrack](#fishjam-AgentRequest-InterruptTrack) | | | +| capture_image | [AgentRequest.CaptureImage](#fishjam-AgentRequest-CaptureImage) | | | @@ -197,6 +200,21 @@ Request sent by agent, to authenticate to Fishjam server + + +### AgentRequest.CaptureImage + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| track_id | [string](#string) | | | + + + + + + ### AgentRequest.InterruptTrack @@ -253,6 +271,7 @@ Defines any type of message passed from Fishjam to agent peer | ----- | ---- | ----- | ----------- | | authenticated | [AgentResponse.Authenticated](#fishjam-AgentResponse-Authenticated) | | | | track_data | [AgentResponse.TrackData](#fishjam-AgentResponse-TrackData) | | | +| track_image | [AgentResponse.TrackImage](#fishjam-AgentResponse-TrackImage) | | | @@ -285,6 +304,23 @@ Notification containing a chunk of a track's data stream + + + +### AgentResponse.TrackImage + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| track_id | [string](#string) | | | +| content_type | [string](#string) | | | +| data | [bytes](#bytes) | | | + + + + +