mirror of
https://git.sr.ht/~thestr4ng3r/chiaki
synced 2025-08-21 05:53:12 -07:00
Support Version 7 in ChiakiTakion
This commit is contained in:
parent
c957ef690e
commit
31f80592f0
4 changed files with 21 additions and 1 deletions
|
@ -67,6 +67,7 @@ static inline uint8_t chiaki_takion_av_packet_audio_unit_size(ChiakiTakionAVPack
|
|||
static inline uint8_t chiaki_takion_av_packet_audio_source_units_count(ChiakiTakionAVPacket *packet) { return packet->units_in_frame_fec & 0xf; }
|
||||
static inline uint8_t chiaki_takion_av_packet_audio_fec_units_count(ChiakiTakionAVPacket *packet) { return (packet->units_in_frame_fec >> 4) & 0xf; }
|
||||
|
||||
typedef ChiakiErrorCode (*ChiakiTakionAVPacketParse)(ChiakiTakionAVPacket *packet, uint8_t *buf, size_t buf_size);
|
||||
|
||||
typedef struct chiaki_takion_congestion_packet_t
|
||||
{
|
||||
|
@ -115,6 +116,7 @@ typedef struct chiaki_takion_connect_info_t
|
|||
ChiakiTakionCallback cb;
|
||||
void *cb_user;
|
||||
bool enable_crypt;
|
||||
uint8_t protocol_version;
|
||||
} ChiakiTakionConnectInfo;
|
||||
|
||||
|
||||
|
@ -165,6 +167,8 @@ typedef struct chiaki_takion_t
|
|||
* Advertised Receiver Window Credit
|
||||
*/
|
||||
uint32_t a_rwnd;
|
||||
|
||||
ChiakiTakionAVPacketParse av_packet_parse;
|
||||
} ChiakiTakion;
|
||||
|
||||
|
||||
|
|
|
@ -125,6 +125,7 @@ CHIAKI_EXPORT ChiakiErrorCode chiaki_senkusha_run(ChiakiSenkusha *senkusha)
|
|||
assert(err == CHIAKI_ERR_SUCCESS);
|
||||
|
||||
takion_info.enable_crypt = false;
|
||||
takion_info.protocol_version = 7;
|
||||
|
||||
takion_info.cb = senkusha_takion_cb;
|
||||
takion_info.cb_user = senkusha;
|
||||
|
|
|
@ -139,6 +139,7 @@ CHIAKI_EXPORT ChiakiErrorCode chiaki_stream_connection_run(ChiakiStreamConnectio
|
|||
assert(err == CHIAKI_ERR_SUCCESS);
|
||||
|
||||
takion_info.enable_crypt = true;
|
||||
takion_info.protocol_version = 9;
|
||||
|
||||
takion_info.cb = stream_connection_takion_cb;
|
||||
takion_info.cb_user = stream_connection;
|
||||
|
|
|
@ -177,6 +177,20 @@ CHIAKI_EXPORT ChiakiErrorCode chiaki_takion_connect(ChiakiTakion *takion, Chiaki
|
|||
ChiakiErrorCode ret = CHIAKI_ERR_SUCCESS;
|
||||
|
||||
takion->log = info->log;
|
||||
|
||||
switch(info->protocol_version)
|
||||
{
|
||||
case 7:
|
||||
takion->av_packet_parse = chiaki_takion_v7_av_packet_parse;
|
||||
break;
|
||||
case 9:
|
||||
takion->av_packet_parse = chiaki_takion_v9_av_packet_parse;
|
||||
break;
|
||||
default:
|
||||
CHIAKI_LOGE(takion->log, "Unknown Takion Protocol Version %u", (unsigned int)info->protocol_version);
|
||||
return CHIAKI_ERR_INVALID_DATA;
|
||||
}
|
||||
|
||||
takion->gkcrypt_local = NULL;
|
||||
ret = chiaki_mutex_init(&takion->gkcrypt_local_mutex, true);
|
||||
if(ret != CHIAKI_ERR_SUCCESS)
|
||||
|
@ -199,7 +213,7 @@ CHIAKI_EXPORT ChiakiErrorCode chiaki_takion_connect(ChiakiTakion *takion, Chiaki
|
|||
takion->postponed_packets_size = 0;
|
||||
takion->postponed_packets_count = 0;
|
||||
|
||||
CHIAKI_LOGI(takion->log, "Takion connecting");
|
||||
CHIAKI_LOGI(takion->log, "Takion connecting (version %u)", (unsigned int)info->protocol_version);
|
||||
|
||||
ChiakiErrorCode err = chiaki_stop_pipe_init(&takion->stop_pipe);
|
||||
if(err != CHIAKI_ERR_SUCCESS)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue