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
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
name: Protobuf lint
container:
image: bufbuild/buf:1.23.1
image: bufbuild/buf:1.45.0
steps:
- name: Checkout the code
uses: actions/checkout@v3
Expand Down
2 changes: 1 addition & 1 deletion buf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ build:
- fishjam_protos
lint:
use:
- DEFAULT
- STANDARD
ignore_only:
PACKAGE_VERSION_SUFFIX:
- fishjam
29 changes: 6 additions & 23 deletions fishjam/media_events/peer/peer.proto
Original file line number Diff line number Diff line change
Expand Up @@ -6,42 +6,25 @@ import "fishjam/media_events/shared.proto";

// Defines any type of message sent from Peer to Membrane RTC Engine
message MediaEvent {
// SCHEMAS
message VariantBitrate {
media_events.Variant variant = 1;
int32 bitrate = 2;
}

message TrackIdToMetadata {
string track_id = 1;
media_events.Metadata metadata = 2;
}

message TrackIdToBitrates {
oneof tracks {
TrackBitrate track_bitrate = 1;
}
}

// MEDIA EVENTS

// Sent when a peer wants to join WebRTC Endpoint.
message Connect {
media_events.Metadata metadata = 1;
string metadata_json = 1;
}

// Sent when a peer disconnects from WebRTC Endpoint.
message Disconnect {}

// Sent when a peer wants to update its metadata
message UpdateEndpointMetadata {
media_events.Metadata metadata = 1;
string metadata_json = 1;
}

// Sent when a peer wants to update its track's metadata
message UpdateTrackMetadata {
string track_id = 1;
media_events.Metadata metadata = 2;
string metadata_json = 2;
}

// Sent when peer wants to renegatiate connection due to adding a track or removing a track
Expand All @@ -52,9 +35,9 @@ message MediaEvent {
// The "mid" is an identifier used to associate an RTP packet with an MLine from the SDP offer/answer.
message SdpOffer {
string sdp_offer = 1;
repeated TrackIdToMetadata track_id_to_metadata = 2;
repeated TrackIdToBitrates track_id_to_bitrates = 3;
repeated media_events.MidToTrackId mid_to_track_id = 4;
map<string, string> track_id_to_metadata_json = 2;
map<string, TrackBitrate> track_id_to_bitrates = 3;
map<string, string> mid_to_track_id = 4;
}

// Sent when Peer wants to update its track's bitrate
Expand Down
21 changes: 8 additions & 13 deletions fishjam/media_events/server/server.proto
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,11 @@ import "fishjam/media_events/shared.proto";
// Defines any type of message sent from Membrane RTC Engine to Peer
message MediaEvent {
// SCHEMAS
message Track {
string track_id = 1;
media_events.Metadata metadata = 2;
}

message Endpoint {
string endpoint_id = 1;
string endpoint_type = 2;
media_events.Metadata metadata = 3;
repeated Track tracks = 4;
string metadata_json = 3;
map<string, string> track_id_to_metadata_json = 4;
}

message IceServer {
Expand All @@ -30,20 +25,20 @@ message MediaEvent {
// Sent when metadata of one of the endpoints was updated
message EndpointUpdated {
string endpoint_id = 1;
media_events.Metadata metadata = 2;
string metadata_json = 2;
}

// Sent when metadata of one of the tracks was updated
message TrackUpdated {
string endpoint_id = 1;
string track_id = 2;
media_events.Metadata metadata = 3;
string metadata_json = 3;
}

// Sent to informs that one of the peers has added one or more tracks.
message TracksAdded {
string endpoint_id = 1;
repeated Track tracks = 2;
map<string, string> track_id_to_metadata_json = 2;
}

// Sent to informs that one of the peers has removed one or more tracks.
Expand All @@ -55,13 +50,13 @@ message MediaEvent {
// Sent to all peers in the room after a new endpoint was added.
message EndpointAdded {
string endpoint_id = 1;
media_events.Metadata metadata = 2;
string metadata_json = 2;
}

// Sent to the peer after connecting to the WebRTC Endpoint.
message Connected {
string endpoint_id = 1;
repeated Endpoint endpoints = 2;
map<string, Endpoint> endpoints_id_to_endpoint = 2;
repeated IceServer ice_servers = 3;
}

Expand All @@ -88,7 +83,7 @@ message MediaEvent {
// Sent after receiving `SdpOffer` from Peer
message SdpAnswer {
string sdp_answer = 1;
repeated media_events.MidToTrackId mid_to_track_id = 2;
map<string, string> mid_to_track_id = 2;
}

// Sent to inform that the track denoted by `trackId` has changed their voice actiivty
Expand Down
16 changes: 0 additions & 16 deletions fishjam/media_events/shared.proto
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,6 @@ syntax = "proto3";

package fishjam.media_events;

enum Variant {
VARIANT_UNSPECIFIED = 0;
VARIANT_LOW = 1;
VARIANT_MEDIUM = 2;
VARIANT_HIGH = 3;
}

message Metadata {
string json = 1;
}

message MidToTrackId {
string mid = 1;
string track_id = 2;
}

// Contains information about an ICE candidate which will be sent to the peer/server
message Candidate {
string candidate = 1;
Expand Down
65 changes: 32 additions & 33 deletions fishjam_protos/lib/fishjam/media_events/peer/peer.pb.ex
Original file line number Diff line number Diff line change
@@ -1,69 +1,65 @@
defmodule Fishjam.MediaEvents.Peer.MediaEvent.VariantBitrate do
defmodule Fishjam.MediaEvents.Peer.MediaEvent.Connect do
@moduledoc false

use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"

field :variant, 1, type: Fishjam.MediaEvents.Variant, enum: true
field :bitrate, 2, type: :int32
field :metadata_json, 1, type: :string, json_name: "metadataJson"
end

defmodule Fishjam.MediaEvents.Peer.MediaEvent.TrackIdToMetadata do
defmodule Fishjam.MediaEvents.Peer.MediaEvent.Disconnect do
@moduledoc false

use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"

field :track_id, 1, type: :string, json_name: "trackId"
field :metadata, 2, type: Fishjam.MediaEvents.Metadata
end

defmodule Fishjam.MediaEvents.Peer.MediaEvent.TrackIdToBitrates do
defmodule Fishjam.MediaEvents.Peer.MediaEvent.UpdateEndpointMetadata do
@moduledoc false

use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"

oneof :tracks, 0

field :track_bitrate, 1,
type: Fishjam.MediaEvents.Peer.MediaEvent.TrackBitrate,
json_name: "trackBitrate",
oneof: 0
field :metadata_json, 1, type: :string, json_name: "metadataJson"
end

defmodule Fishjam.MediaEvents.Peer.MediaEvent.Connect do
defmodule Fishjam.MediaEvents.Peer.MediaEvent.UpdateTrackMetadata do
@moduledoc false

use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"

field :metadata, 1, type: Fishjam.MediaEvents.Metadata
field :track_id, 1, type: :string, json_name: "trackId"
field :metadata_json, 2, type: :string, json_name: "metadataJson"
end

defmodule Fishjam.MediaEvents.Peer.MediaEvent.Disconnect do
defmodule Fishjam.MediaEvents.Peer.MediaEvent.RenegotiateTracks do
@moduledoc false

use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"
end

defmodule Fishjam.MediaEvents.Peer.MediaEvent.UpdateEndpointMetadata do
defmodule Fishjam.MediaEvents.Peer.MediaEvent.SdpOffer.TrackIdToMetadataJsonEntry do
@moduledoc false

use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"
use Protobuf, map: true, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"

field :metadata, 1, type: Fishjam.MediaEvents.Metadata
field :key, 1, type: :string
field :value, 2, type: :string
end

defmodule Fishjam.MediaEvents.Peer.MediaEvent.UpdateTrackMetadata do
defmodule Fishjam.MediaEvents.Peer.MediaEvent.SdpOffer.TrackIdToBitratesEntry do
@moduledoc false

use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"
use Protobuf, map: true, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"

field :track_id, 1, type: :string, json_name: "trackId"
field :metadata, 2, type: Fishjam.MediaEvents.Metadata
field :key, 1, type: :string
field :value, 2, type: Fishjam.MediaEvents.Peer.MediaEvent.TrackBitrate
end

defmodule Fishjam.MediaEvents.Peer.MediaEvent.RenegotiateTracks do
defmodule Fishjam.MediaEvents.Peer.MediaEvent.SdpOffer.MidToTrackIdEntry do
@moduledoc false

use Protobuf, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"
use Protobuf, map: true, syntax: :proto3, protoc_gen_elixir_version: "0.13.0"

field :key, 1, type: :string
field :value, 2, type: :string
end

defmodule Fishjam.MediaEvents.Peer.MediaEvent.SdpOffer do
Expand All @@ -73,20 +69,23 @@ defmodule Fishjam.MediaEvents.Peer.MediaEvent.SdpOffer do

field :sdp_offer, 1, type: :string, json_name: "sdpOffer"

field :track_id_to_metadata, 2,
field :track_id_to_metadata_json, 2,
repeated: true,
type: Fishjam.MediaEvents.Peer.MediaEvent.TrackIdToMetadata,
json_name: "trackIdToMetadata"
type: Fishjam.MediaEvents.Peer.MediaEvent.SdpOffer.TrackIdToMetadataJsonEntry,
json_name: "trackIdToMetadataJson",
map: true

field :track_id_to_bitrates, 3,
repeated: true,
type: Fishjam.MediaEvents.Peer.MediaEvent.TrackIdToBitrates,
json_name: "trackIdToBitrates"
type: Fishjam.MediaEvents.Peer.MediaEvent.SdpOffer.TrackIdToBitratesEntry,
json_name: "trackIdToBitrates",
map: true

field :mid_to_track_id, 4,
repeated: true,
type: Fishjam.MediaEvents.MidToTrackId,
json_name: "midToTrackId"
type: Fishjam.MediaEvents.Peer.MediaEvent.SdpOffer.MidToTrackIdEntry,
json_name: "midToTrackId",
map: true
end

defmodule Fishjam.MediaEvents.Peer.MediaEvent.TrackBitrate do
Expand Down
Loading