#ifndef TGCALLS_GROUP_JOIN_PAYLOAD_H #define TGCALLS_GROUP_JOIN_PAYLOAD_H #include #include #include namespace tgcalls { struct GroupJoinPayloadVideoSourceGroup { std::vector ssrcs; std::string semantics; }; struct GroupJoinPayloadVideoPayloadType { struct FeedbackType { std::string type; std::string subtype; }; uint32_t id = 0; std::string name; uint32_t clockrate = 0; uint32_t channels = 0; std::vector feedbackTypes; std::vector> parameters; }; struct GroupJoinTransportDescription { struct Fingerprint { std::string hash; std::string setup; std::string fingerprint; }; struct Candidate { std::string port; std::string protocol; std::string network; std::string generation; std::string id; std::string component; std::string foundation; std::string priority; std::string ip; std::string type; std::string tcpType; std::string relAddr; std::string relPort; }; std::string ufrag; std::string pwd; std::vector fingerprints; std::vector candidates; }; struct GroupJoinVideoInformation { uint32_t serverVideoBandwidthProbingSsrc = 0; std::string endpointId; std::vector payloadTypes; std::vector> extensionMap; }; struct GroupParticipantVideoInformation { std::string endpointId; std::vector ssrcGroups; }; struct GroupJoinPayload { uint32_t audioSsrc = 0; std::string json; }; } #endif