// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 // protoc (unknown) // source: live_sfu.proto package gen import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" unsafe "unsafe" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type BackendKind int32 const ( BackendKind_BACKEND_KIND_UNSPECIFIED BackendKind = 0 BackendKind_BACKEND_KIND_CLOUDFLARE BackendKind = 1 // Cloudflare Realtime(主 SFU) BackendKind_BACKEND_KIND_SRS BackendKind = 2 // SRS(次级 / 本地对照) ) // Enum value maps for BackendKind. var ( BackendKind_name = map[int32]string{ 0: "BACKEND_KIND_UNSPECIFIED", 1: "BACKEND_KIND_CLOUDFLARE", 2: "BACKEND_KIND_SRS", } BackendKind_value = map[string]int32{ "BACKEND_KIND_UNSPECIFIED": 0, "BACKEND_KIND_CLOUDFLARE": 1, "BACKEND_KIND_SRS": 2, } ) func (x BackendKind) Enum() *BackendKind { p := new(BackendKind) *p = x return p } func (x BackendKind) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (BackendKind) Descriptor() protoreflect.EnumDescriptor { return file_live_sfu_proto_enumTypes[0].Descriptor() } func (BackendKind) Type() protoreflect.EnumType { return &file_live_sfu_proto_enumTypes[0] } func (x BackendKind) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use BackendKind.Descriptor instead. func (BackendKind) EnumDescriptor() ([]byte, []int) { return file_live_sfu_proto_rawDescGZIP(), []int{0} } type IceServer struct { state protoimpl.MessageState `protogen:"open.v1"` Urls []string `protobuf:"bytes,1,rep,name=urls,proto3" json:"urls,omitempty"` Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` Credential string `protobuf:"bytes,3,opt,name=credential,proto3" json:"credential,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *IceServer) Reset() { *x = IceServer{} mi := &file_live_sfu_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *IceServer) String() string { return protoimpl.X.MessageStringOf(x) } func (*IceServer) ProtoMessage() {} func (x *IceServer) ProtoReflect() protoreflect.Message { mi := &file_live_sfu_proto_msgTypes[0] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use IceServer.ProtoReflect.Descriptor instead. func (*IceServer) Descriptor() ([]byte, []int) { return file_live_sfu_proto_rawDescGZIP(), []int{0} } func (x *IceServer) GetUrls() []string { if x != nil { return x.Urls } return nil } func (x *IceServer) GetUsername() string { if x != nil { return x.Username } return "" } func (x *IceServer) GetCredential() string { if x != nil { return x.Credential } return "" } type GetConfigRequest struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetConfigRequest) Reset() { *x = GetConfigRequest{} mi := &file_live_sfu_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetConfigRequest) ProtoMessage() {} func (x *GetConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_live_sfu_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetConfigRequest.ProtoReflect.Descriptor instead. func (*GetConfigRequest) Descriptor() ([]byte, []int) { return file_live_sfu_proto_rawDescGZIP(), []int{1} } type BackendInfo struct { state protoimpl.MessageState `protogen:"open.v1"` Kind BackendKind `protobuf:"varint,1,opt,name=kind,proto3,enum=gospeak.livedemo.v1.BackendKind" json:"kind,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Configured bool `protobuf:"varint,3,opt,name=configured,proto3" json:"configured,omitempty"` Primary bool `protobuf:"varint,4,opt,name=primary,proto3" json:"primary,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *BackendInfo) Reset() { *x = BackendInfo{} mi := &file_live_sfu_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *BackendInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*BackendInfo) ProtoMessage() {} func (x *BackendInfo) ProtoReflect() protoreflect.Message { mi := &file_live_sfu_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BackendInfo.ProtoReflect.Descriptor instead. func (*BackendInfo) Descriptor() ([]byte, []int) { return file_live_sfu_proto_rawDescGZIP(), []int{2} } func (x *BackendInfo) GetKind() BackendKind { if x != nil { return x.Kind } return BackendKind_BACKEND_KIND_UNSPECIFIED } func (x *BackendInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *BackendInfo) GetConfigured() bool { if x != nil { return x.Configured } return false } func (x *BackendInfo) GetPrimary() bool { if x != nil { return x.Primary } return false } type GetConfigResponse struct { state protoimpl.MessageState `protogen:"open.v1"` Backends []*BackendInfo `protobuf:"bytes,1,rep,name=backends,proto3" json:"backends,omitempty"` Candidate string `protobuf:"bytes,2,opt,name=candidate,proto3" json:"candidate,omitempty"` TokenRequired bool `protobuf:"varint,3,opt,name=token_required,json=tokenRequired,proto3" json:"token_required,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetConfigResponse) Reset() { *x = GetConfigResponse{} mi := &file_live_sfu_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetConfigResponse) ProtoMessage() {} func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_live_sfu_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetConfigResponse.ProtoReflect.Descriptor instead. func (*GetConfigResponse) Descriptor() ([]byte, []int) { return file_live_sfu_proto_rawDescGZIP(), []int{3} } func (x *GetConfigResponse) GetBackends() []*BackendInfo { if x != nil { return x.Backends } return nil } func (x *GetConfigResponse) GetCandidate() string { if x != nil { return x.Candidate } return "" } func (x *GetConfigResponse) GetTokenRequired() bool { if x != nil { return x.TokenRequired } return false } // StreamTarget 表示一个房间在某后端的一条分发目标(SFU 扇出出口)。 type StreamTarget struct { state protoimpl.MessageState `protogen:"open.v1"` Backend BackendKind `protobuf:"varint,1,opt,name=backend,proto3,enum=gospeak.livedemo.v1.BackendKind" json:"backend,omitempty"` SessionId string `protobuf:"bytes,2,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` // Cloudflare: 发布者 sessionId Stream string `protobuf:"bytes,3,opt,name=stream,proto3" json:"stream,omitempty"` // SRS: stream 名 PublishToken string `protobuf:"bytes,4,opt,name=publish_token,json=publishToken,proto3" json:"publish_token,omitempty"` // SRS: 推流 JWT(可选) Url string `protobuf:"bytes,5,opt,name=url,proto3" json:"url,omitempty"` // 拉流播放地址(SRS WHEP,可选) PublishedAt int64 `protobuf:"varint,6,opt,name=published_at,json=publishedAt,proto3" json:"published_at,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *StreamTarget) Reset() { *x = StreamTarget{} mi := &file_live_sfu_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *StreamTarget) String() string { return protoimpl.X.MessageStringOf(x) } func (*StreamTarget) ProtoMessage() {} func (x *StreamTarget) ProtoReflect() protoreflect.Message { mi := &file_live_sfu_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StreamTarget.ProtoReflect.Descriptor instead. func (*StreamTarget) Descriptor() ([]byte, []int) { return file_live_sfu_proto_rawDescGZIP(), []int{4} } func (x *StreamTarget) GetBackend() BackendKind { if x != nil { return x.Backend } return BackendKind_BACKEND_KIND_UNSPECIFIED } func (x *StreamTarget) GetSessionId() string { if x != nil { return x.SessionId } return "" } func (x *StreamTarget) GetStream() string { if x != nil { return x.Stream } return "" } func (x *StreamTarget) GetPublishToken() string { if x != nil { return x.PublishToken } return "" } func (x *StreamTarget) GetUrl() string { if x != nil { return x.Url } return "" } func (x *StreamTarget) GetPublishedAt() int64 { if x != nil { return x.PublishedAt } return 0 } type Room struct { state protoimpl.MessageState `protogen:"open.v1"` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Targets []*StreamTarget `protobuf:"bytes,2,rep,name=targets,proto3" json:"targets,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *Room) Reset() { *x = Room{} mi := &file_live_sfu_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *Room) String() string { return protoimpl.X.MessageStringOf(x) } func (*Room) ProtoMessage() {} func (x *Room) ProtoReflect() protoreflect.Message { mi := &file_live_sfu_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Room.ProtoReflect.Descriptor instead. func (*Room) Descriptor() ([]byte, []int) { return file_live_sfu_proto_rawDescGZIP(), []int{5} } func (x *Room) GetName() string { if x != nil { return x.Name } return "" } func (x *Room) GetTargets() []*StreamTarget { if x != nil { return x.Targets } return nil } type ListRoomsRequest struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ListRoomsRequest) Reset() { *x = ListRoomsRequest{} mi := &file_live_sfu_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ListRoomsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListRoomsRequest) ProtoMessage() {} func (x *ListRoomsRequest) ProtoReflect() protoreflect.Message { mi := &file_live_sfu_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListRoomsRequest.ProtoReflect.Descriptor instead. func (*ListRoomsRequest) Descriptor() ([]byte, []int) { return file_live_sfu_proto_rawDescGZIP(), []int{6} } type ListRoomsResponse struct { state protoimpl.MessageState `protogen:"open.v1"` Rooms []*Room `protobuf:"bytes,1,rep,name=rooms,proto3" json:"rooms,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ListRoomsResponse) Reset() { *x = ListRoomsResponse{} mi := &file_live_sfu_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ListRoomsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListRoomsResponse) ProtoMessage() {} func (x *ListRoomsResponse) ProtoReflect() protoreflect.Message { mi := &file_live_sfu_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListRoomsResponse.ProtoReflect.Descriptor instead. func (*ListRoomsResponse) Descriptor() ([]byte, []int) { return file_live_sfu_proto_rawDescGZIP(), []int{7} } func (x *ListRoomsResponse) GetRooms() []*Room { if x != nil { return x.Rooms } return nil } type PublishRequest struct { state protoimpl.MessageState `protogen:"open.v1"` Room string `protobuf:"bytes,1,opt,name=room,proto3" json:"room,omitempty"` Backend BackendKind `protobuf:"varint,2,opt,name=backend,proto3,enum=gospeak.livedemo.v1.BackendKind" json:"backend,omitempty"` Identity string `protobuf:"bytes,3,opt,name=identity,proto3" json:"identity,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *PublishRequest) Reset() { *x = PublishRequest{} mi := &file_live_sfu_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *PublishRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*PublishRequest) ProtoMessage() {} func (x *PublishRequest) ProtoReflect() protoreflect.Message { mi := &file_live_sfu_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PublishRequest.ProtoReflect.Descriptor instead. func (*PublishRequest) Descriptor() ([]byte, []int) { return file_live_sfu_proto_rawDescGZIP(), []int{8} } func (x *PublishRequest) GetRoom() string { if x != nil { return x.Room } return "" } func (x *PublishRequest) GetBackend() BackendKind { if x != nil { return x.Backend } return BackendKind_BACKEND_KIND_UNSPECIFIED } func (x *PublishRequest) GetIdentity() string { if x != nil { return x.Identity } return "" } type PublishResponse struct { state protoimpl.MessageState `protogen:"open.v1"` SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` Stream string `protobuf:"bytes,2,opt,name=stream,proto3" json:"stream,omitempty"` PublishToken string `protobuf:"bytes,3,opt,name=publish_token,json=publishToken,proto3" json:"publish_token,omitempty"` IceServers []*IceServer `protobuf:"bytes,4,rep,name=ice_servers,json=iceServers,proto3" json:"ice_servers,omitempty"` Target *StreamTarget `protobuf:"bytes,5,opt,name=target,proto3" json:"target,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *PublishResponse) Reset() { *x = PublishResponse{} mi := &file_live_sfu_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *PublishResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*PublishResponse) ProtoMessage() {} func (x *PublishResponse) ProtoReflect() protoreflect.Message { mi := &file_live_sfu_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PublishResponse.ProtoReflect.Descriptor instead. func (*PublishResponse) Descriptor() ([]byte, []int) { return file_live_sfu_proto_rawDescGZIP(), []int{9} } func (x *PublishResponse) GetSessionId() string { if x != nil { return x.SessionId } return "" } func (x *PublishResponse) GetStream() string { if x != nil { return x.Stream } return "" } func (x *PublishResponse) GetPublishToken() string { if x != nil { return x.PublishToken } return "" } func (x *PublishResponse) GetIceServers() []*IceServer { if x != nil { return x.IceServers } return nil } func (x *PublishResponse) GetTarget() *StreamTarget { if x != nil { return x.Target } return nil } type SubscribeRequest struct { state protoimpl.MessageState `protogen:"open.v1"` Room string `protobuf:"bytes,1,opt,name=room,proto3" json:"room,omitempty"` Backend BackendKind `protobuf:"varint,2,opt,name=backend,proto3,enum=gospeak.livedemo.v1.BackendKind" json:"backend,omitempty"` Identity string `protobuf:"bytes,3,opt,name=identity,proto3" json:"identity,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SubscribeRequest) Reset() { *x = SubscribeRequest{} mi := &file_live_sfu_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SubscribeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SubscribeRequest) ProtoMessage() {} func (x *SubscribeRequest) ProtoReflect() protoreflect.Message { mi := &file_live_sfu_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SubscribeRequest.ProtoReflect.Descriptor instead. func (*SubscribeRequest) Descriptor() ([]byte, []int) { return file_live_sfu_proto_rawDescGZIP(), []int{10} } func (x *SubscribeRequest) GetRoom() string { if x != nil { return x.Room } return "" } func (x *SubscribeRequest) GetBackend() BackendKind { if x != nil { return x.Backend } return BackendKind_BACKEND_KIND_UNSPECIFIED } func (x *SubscribeRequest) GetIdentity() string { if x != nil { return x.Identity } return "" } type SubscribeResponse struct { state protoimpl.MessageState `protogen:"open.v1"` SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` Stream string `protobuf:"bytes,2,opt,name=stream,proto3" json:"stream,omitempty"` PublisherSessionId string `protobuf:"bytes,3,opt,name=publisher_session_id,json=publisherSessionId,proto3" json:"publisher_session_id,omitempty"` IceServers []*IceServer `protobuf:"bytes,4,rep,name=ice_servers,json=iceServers,proto3" json:"ice_servers,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SubscribeResponse) Reset() { *x = SubscribeResponse{} mi := &file_live_sfu_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SubscribeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SubscribeResponse) ProtoMessage() {} func (x *SubscribeResponse) ProtoReflect() protoreflect.Message { mi := &file_live_sfu_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SubscribeResponse.ProtoReflect.Descriptor instead. func (*SubscribeResponse) Descriptor() ([]byte, []int) { return file_live_sfu_proto_rawDescGZIP(), []int{11} } func (x *SubscribeResponse) GetSessionId() string { if x != nil { return x.SessionId } return "" } func (x *SubscribeResponse) GetStream() string { if x != nil { return x.Stream } return "" } func (x *SubscribeResponse) GetPublisherSessionId() string { if x != nil { return x.PublisherSessionId } return "" } func (x *SubscribeResponse) GetIceServers() []*IceServer { if x != nil { return x.IceServers } return nil } type StopStreamRequest struct { state protoimpl.MessageState `protogen:"open.v1"` Room string `protobuf:"bytes,1,opt,name=room,proto3" json:"room,omitempty"` Backend BackendKind `protobuf:"varint,2,opt,name=backend,proto3,enum=gospeak.livedemo.v1.BackendKind" json:"backend,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *StopStreamRequest) Reset() { *x = StopStreamRequest{} mi := &file_live_sfu_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *StopStreamRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*StopStreamRequest) ProtoMessage() {} func (x *StopStreamRequest) ProtoReflect() protoreflect.Message { mi := &file_live_sfu_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StopStreamRequest.ProtoReflect.Descriptor instead. func (*StopStreamRequest) Descriptor() ([]byte, []int) { return file_live_sfu_proto_rawDescGZIP(), []int{12} } func (x *StopStreamRequest) GetRoom() string { if x != nil { return x.Room } return "" } func (x *StopStreamRequest) GetBackend() BackendKind { if x != nil { return x.Backend } return BackendKind_BACKEND_KIND_UNSPECIFIED } type StopStreamResponse struct { state protoimpl.MessageState `protogen:"open.v1"` Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *StopStreamResponse) Reset() { *x = StopStreamResponse{} mi := &file_live_sfu_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *StopStreamResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*StopStreamResponse) ProtoMessage() {} func (x *StopStreamResponse) ProtoReflect() protoreflect.Message { mi := &file_live_sfu_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StopStreamResponse.ProtoReflect.Descriptor instead. func (*StopStreamResponse) Descriptor() ([]byte, []int) { return file_live_sfu_proto_rawDescGZIP(), []int{13} } func (x *StopStreamResponse) GetOk() bool { if x != nil { return x.Ok } return false } type WatchRoomRequest struct { state protoimpl.MessageState `protogen:"open.v1"` Room string `protobuf:"bytes,1,opt,name=room,proto3" json:"room,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *WatchRoomRequest) Reset() { *x = WatchRoomRequest{} mi := &file_live_sfu_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *WatchRoomRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*WatchRoomRequest) ProtoMessage() {} func (x *WatchRoomRequest) ProtoReflect() protoreflect.Message { mi := &file_live_sfu_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WatchRoomRequest.ProtoReflect.Descriptor instead. func (*WatchRoomRequest) Descriptor() ([]byte, []int) { return file_live_sfu_proto_rawDescGZIP(), []int{14} } func (x *WatchRoomRequest) GetRoom() string { if x != nil { return x.Room } return "" } type RoomEvent struct { state protoimpl.MessageState `protogen:"open.v1"` Room string `protobuf:"bytes,1,opt,name=room,proto3" json:"room,omitempty"` Targets []*StreamTarget `protobuf:"bytes,2,rep,name=targets,proto3" json:"targets,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *RoomEvent) Reset() { *x = RoomEvent{} mi := &file_live_sfu_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *RoomEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomEvent) ProtoMessage() {} func (x *RoomEvent) ProtoReflect() protoreflect.Message { mi := &file_live_sfu_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RoomEvent.ProtoReflect.Descriptor instead. func (*RoomEvent) Descriptor() ([]byte, []int) { return file_live_sfu_proto_rawDescGZIP(), []int{15} } func (x *RoomEvent) GetRoom() string { if x != nil { return x.Room } return "" } func (x *RoomEvent) GetTargets() []*StreamTarget { if x != nil { return x.Targets } return nil } var File_live_sfu_proto protoreflect.FileDescriptor const file_live_sfu_proto_rawDesc = "" + "\n" + "\x0elive_sfu.proto\x12\x13gospeak.livedemo.v1\"[\n" + "\tIceServer\x12\x12\n" + "\x04urls\x18\x01 \x03(\tR\x04urls\x12\x1a\n" + "\busername\x18\x02 \x01(\tR\busername\x12\x1e\n" + "\n" + "credential\x18\x03 \x01(\tR\n" + "credential\"\x12\n" + "\x10GetConfigRequest\"\x91\x01\n" + "\vBackendInfo\x124\n" + "\x04kind\x18\x01 \x01(\x0e2 .gospeak.livedemo.v1.BackendKindR\x04kind\x12\x12\n" + "\x04name\x18\x02 \x01(\tR\x04name\x12\x1e\n" + "\n" + "configured\x18\x03 \x01(\bR\n" + "configured\x12\x18\n" + "\aprimary\x18\x04 \x01(\bR\aprimary\"\x96\x01\n" + "\x11GetConfigResponse\x12<\n" + "\bbackends\x18\x01 \x03(\v2 .gospeak.livedemo.v1.BackendInfoR\bbackends\x12\x1c\n" + "\tcandidate\x18\x02 \x01(\tR\tcandidate\x12%\n" + "\x0etoken_required\x18\x03 \x01(\bR\rtokenRequired\"\xdb\x01\n" + "\fStreamTarget\x12:\n" + "\abackend\x18\x01 \x01(\x0e2 .gospeak.livedemo.v1.BackendKindR\abackend\x12\x1d\n" + "\n" + "session_id\x18\x02 \x01(\tR\tsessionId\x12\x16\n" + "\x06stream\x18\x03 \x01(\tR\x06stream\x12#\n" + "\rpublish_token\x18\x04 \x01(\tR\fpublishToken\x12\x10\n" + "\x03url\x18\x05 \x01(\tR\x03url\x12!\n" + "\fpublished_at\x18\x06 \x01(\x03R\vpublishedAt\"W\n" + "\x04Room\x12\x12\n" + "\x04name\x18\x01 \x01(\tR\x04name\x12;\n" + "\atargets\x18\x02 \x03(\v2!.gospeak.livedemo.v1.StreamTargetR\atargets\"\x12\n" + "\x10ListRoomsRequest\"D\n" + "\x11ListRoomsResponse\x12/\n" + "\x05rooms\x18\x01 \x03(\v2\x19.gospeak.livedemo.v1.RoomR\x05rooms\"|\n" + "\x0ePublishRequest\x12\x12\n" + "\x04room\x18\x01 \x01(\tR\x04room\x12:\n" + "\abackend\x18\x02 \x01(\x0e2 .gospeak.livedemo.v1.BackendKindR\abackend\x12\x1a\n" + "\bidentity\x18\x03 \x01(\tR\bidentity\"\xe9\x01\n" + "\x0fPublishResponse\x12\x1d\n" + "\n" + "session_id\x18\x01 \x01(\tR\tsessionId\x12\x16\n" + "\x06stream\x18\x02 \x01(\tR\x06stream\x12#\n" + "\rpublish_token\x18\x03 \x01(\tR\fpublishToken\x12?\n" + "\vice_servers\x18\x04 \x03(\v2\x1e.gospeak.livedemo.v1.IceServerR\n" + "iceServers\x129\n" + "\x06target\x18\x05 \x01(\v2!.gospeak.livedemo.v1.StreamTargetR\x06target\"~\n" + "\x10SubscribeRequest\x12\x12\n" + "\x04room\x18\x01 \x01(\tR\x04room\x12:\n" + "\abackend\x18\x02 \x01(\x0e2 .gospeak.livedemo.v1.BackendKindR\abackend\x12\x1a\n" + "\bidentity\x18\x03 \x01(\tR\bidentity\"\xbd\x01\n" + "\x11SubscribeResponse\x12\x1d\n" + "\n" + "session_id\x18\x01 \x01(\tR\tsessionId\x12\x16\n" + "\x06stream\x18\x02 \x01(\tR\x06stream\x120\n" + "\x14publisher_session_id\x18\x03 \x01(\tR\x12publisherSessionId\x12?\n" + "\vice_servers\x18\x04 \x03(\v2\x1e.gospeak.livedemo.v1.IceServerR\n" + "iceServers\"c\n" + "\x11StopStreamRequest\x12\x12\n" + "\x04room\x18\x01 \x01(\tR\x04room\x12:\n" + "\abackend\x18\x02 \x01(\x0e2 .gospeak.livedemo.v1.BackendKindR\abackend\"$\n" + "\x12StopStreamResponse\x12\x0e\n" + "\x02ok\x18\x01 \x01(\bR\x02ok\"&\n" + "\x10WatchRoomRequest\x12\x12\n" + "\x04room\x18\x01 \x01(\tR\x04room\"\\\n" + "\tRoomEvent\x12\x12\n" + "\x04room\x18\x01 \x01(\tR\x04room\x12;\n" + "\atargets\x18\x02 \x03(\v2!.gospeak.livedemo.v1.StreamTargetR\atargets*^\n" + "\vBackendKind\x12\x1c\n" + "\x18BACKEND_KIND_UNSPECIFIED\x10\x00\x12\x1b\n" + "\x17BACKEND_KIND_CLOUDFLARE\x10\x01\x12\x14\n" + "\x10BACKEND_KIND_SRS\x10\x022\xa8\x04\n" + "\aLiveSFU\x12Z\n" + "\tGetConfig\x12%.gospeak.livedemo.v1.GetConfigRequest\x1a&.gospeak.livedemo.v1.GetConfigResponse\x12Z\n" + "\tListRooms\x12%.gospeak.livedemo.v1.ListRoomsRequest\x1a&.gospeak.livedemo.v1.ListRoomsResponse\x12T\n" + "\aPublish\x12#.gospeak.livedemo.v1.PublishRequest\x1a$.gospeak.livedemo.v1.PublishResponse\x12Z\n" + "\tSubscribe\x12%.gospeak.livedemo.v1.SubscribeRequest\x1a&.gospeak.livedemo.v1.SubscribeResponse\x12]\n" + "\n" + "StopStream\x12&.gospeak.livedemo.v1.StopStreamRequest\x1a'.gospeak.livedemo.v1.StopStreamResponse\x12T\n" + "\tWatchRoom\x12%.gospeak.livedemo.v1.WatchRoomRequest\x1a\x1e.gospeak.livedemo.v1.RoomEvent0\x01B\x1bZ\x19gospeak-live-sfu-demo/genb\x06proto3" var ( file_live_sfu_proto_rawDescOnce sync.Once file_live_sfu_proto_rawDescData []byte ) func file_live_sfu_proto_rawDescGZIP() []byte { file_live_sfu_proto_rawDescOnce.Do(func() { file_live_sfu_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_live_sfu_proto_rawDesc), len(file_live_sfu_proto_rawDesc))) }) return file_live_sfu_proto_rawDescData } var file_live_sfu_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_live_sfu_proto_msgTypes = make([]protoimpl.MessageInfo, 16) var file_live_sfu_proto_goTypes = []any{ (BackendKind)(0), // 0: gospeak.livedemo.v1.BackendKind (*IceServer)(nil), // 1: gospeak.livedemo.v1.IceServer (*GetConfigRequest)(nil), // 2: gospeak.livedemo.v1.GetConfigRequest (*BackendInfo)(nil), // 3: gospeak.livedemo.v1.BackendInfo (*GetConfigResponse)(nil), // 4: gospeak.livedemo.v1.GetConfigResponse (*StreamTarget)(nil), // 5: gospeak.livedemo.v1.StreamTarget (*Room)(nil), // 6: gospeak.livedemo.v1.Room (*ListRoomsRequest)(nil), // 7: gospeak.livedemo.v1.ListRoomsRequest (*ListRoomsResponse)(nil), // 8: gospeak.livedemo.v1.ListRoomsResponse (*PublishRequest)(nil), // 9: gospeak.livedemo.v1.PublishRequest (*PublishResponse)(nil), // 10: gospeak.livedemo.v1.PublishResponse (*SubscribeRequest)(nil), // 11: gospeak.livedemo.v1.SubscribeRequest (*SubscribeResponse)(nil), // 12: gospeak.livedemo.v1.SubscribeResponse (*StopStreamRequest)(nil), // 13: gospeak.livedemo.v1.StopStreamRequest (*StopStreamResponse)(nil), // 14: gospeak.livedemo.v1.StopStreamResponse (*WatchRoomRequest)(nil), // 15: gospeak.livedemo.v1.WatchRoomRequest (*RoomEvent)(nil), // 16: gospeak.livedemo.v1.RoomEvent } var file_live_sfu_proto_depIdxs = []int32{ 0, // 0: gospeak.livedemo.v1.BackendInfo.kind:type_name -> gospeak.livedemo.v1.BackendKind 3, // 1: gospeak.livedemo.v1.GetConfigResponse.backends:type_name -> gospeak.livedemo.v1.BackendInfo 0, // 2: gospeak.livedemo.v1.StreamTarget.backend:type_name -> gospeak.livedemo.v1.BackendKind 5, // 3: gospeak.livedemo.v1.Room.targets:type_name -> gospeak.livedemo.v1.StreamTarget 6, // 4: gospeak.livedemo.v1.ListRoomsResponse.rooms:type_name -> gospeak.livedemo.v1.Room 0, // 5: gospeak.livedemo.v1.PublishRequest.backend:type_name -> gospeak.livedemo.v1.BackendKind 1, // 6: gospeak.livedemo.v1.PublishResponse.ice_servers:type_name -> gospeak.livedemo.v1.IceServer 5, // 7: gospeak.livedemo.v1.PublishResponse.target:type_name -> gospeak.livedemo.v1.StreamTarget 0, // 8: gospeak.livedemo.v1.SubscribeRequest.backend:type_name -> gospeak.livedemo.v1.BackendKind 1, // 9: gospeak.livedemo.v1.SubscribeResponse.ice_servers:type_name -> gospeak.livedemo.v1.IceServer 0, // 10: gospeak.livedemo.v1.StopStreamRequest.backend:type_name -> gospeak.livedemo.v1.BackendKind 5, // 11: gospeak.livedemo.v1.RoomEvent.targets:type_name -> gospeak.livedemo.v1.StreamTarget 2, // 12: gospeak.livedemo.v1.LiveSFU.GetConfig:input_type -> gospeak.livedemo.v1.GetConfigRequest 7, // 13: gospeak.livedemo.v1.LiveSFU.ListRooms:input_type -> gospeak.livedemo.v1.ListRoomsRequest 9, // 14: gospeak.livedemo.v1.LiveSFU.Publish:input_type -> gospeak.livedemo.v1.PublishRequest 11, // 15: gospeak.livedemo.v1.LiveSFU.Subscribe:input_type -> gospeak.livedemo.v1.SubscribeRequest 13, // 16: gospeak.livedemo.v1.LiveSFU.StopStream:input_type -> gospeak.livedemo.v1.StopStreamRequest 15, // 17: gospeak.livedemo.v1.LiveSFU.WatchRoom:input_type -> gospeak.livedemo.v1.WatchRoomRequest 4, // 18: gospeak.livedemo.v1.LiveSFU.GetConfig:output_type -> gospeak.livedemo.v1.GetConfigResponse 8, // 19: gospeak.livedemo.v1.LiveSFU.ListRooms:output_type -> gospeak.livedemo.v1.ListRoomsResponse 10, // 20: gospeak.livedemo.v1.LiveSFU.Publish:output_type -> gospeak.livedemo.v1.PublishResponse 12, // 21: gospeak.livedemo.v1.LiveSFU.Subscribe:output_type -> gospeak.livedemo.v1.SubscribeResponse 14, // 22: gospeak.livedemo.v1.LiveSFU.StopStream:output_type -> gospeak.livedemo.v1.StopStreamResponse 16, // 23: gospeak.livedemo.v1.LiveSFU.WatchRoom:output_type -> gospeak.livedemo.v1.RoomEvent 18, // [18:24] is the sub-list for method output_type 12, // [12:18] is the sub-list for method input_type 12, // [12:12] is the sub-list for extension type_name 12, // [12:12] is the sub-list for extension extendee 0, // [0:12] is the sub-list for field type_name } func init() { file_live_sfu_proto_init() } func file_live_sfu_proto_init() { if File_live_sfu_proto != nil { return } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_live_sfu_proto_rawDesc), len(file_live_sfu_proto_rawDesc)), NumEnums: 1, NumMessages: 16, NumExtensions: 0, NumServices: 1, }, GoTypes: file_live_sfu_proto_goTypes, DependencyIndexes: file_live_sfu_proto_depIdxs, EnumInfos: file_live_sfu_proto_enumTypes, MessageInfos: file_live_sfu_proto_msgTypes, }.Build() File_live_sfu_proto = out.File file_live_sfu_proto_goTypes = nil file_live_sfu_proto_depIdxs = nil }