Squashed 'external/toxcore/c-toxcore/' changes from e58eb27a8..1828c5356
1828c5356 fix(toxav): remove extra copy of video frame on encode b66b8ded6 refactor: improve group stability, moderation determinism, and DHT dual-stack handling 4fbd7c10a fix(toxav): fix heap buffer overflow in RTP video packet handling 809fe8c78 refactor(tox): make the `#define` consts int literals. 50d242a37 refactor(toxav): improve MSI safety and testability da1c13a2f fix(toxav): harden video processing and fix large frame handling 472825288 fix(toxav): fix multiple logic bugs in audio module dc963d9a9 fix(toxav): fix multiple bugs in bandwidth controller and add tests 3bf5778ef refactor(toxav): split out RTP module and add exhaustive unit tests b79b7d436 fix(autotools): add tox_log_level.h to public headers list ea2e34ff2 chore: Disable cirrus. We're out of quota again. b449ea2ed chore(ci): update azure runner image to windows-2022 windows-2019 is EOL e115b136d refactor: Make add_to_list non-recursive. REVERT: e58eb27a8 fix(toxav): remove extra copy of video frame on encode Tested and works, but there might be alignment issues and other stuff. git-subtree-dir: external/toxcore/c-toxcore git-subtree-split: 1828c5356b2daf1d5f680854e776d74b181d268c
This commit is contained in:
@@ -556,7 +556,7 @@ void gcc_resend_packets(const GC_Chat *chat, GC_Connection *gconn)
|
||||
const uint16_t start = gconn->send_array_start;
|
||||
const uint16_t end = gconn->send_message_id % GCC_BUFFER_SIZE;
|
||||
|
||||
GC_Message_Array_Entry *array_entry = &gconn->send_array[start];
|
||||
const GC_Message_Array_Entry *array_entry = &gconn->send_array[start];
|
||||
|
||||
if (array_entry_is_empty(array_entry)) {
|
||||
return;
|
||||
@@ -569,23 +569,23 @@ void gcc_resend_packets(const GC_Chat *chat, GC_Connection *gconn)
|
||||
}
|
||||
|
||||
for (uint16_t i = start; i != end; i = (i + 1) % GCC_BUFFER_SIZE) {
|
||||
array_entry = &gconn->send_array[i];
|
||||
GC_Message_Array_Entry *const array_entry_loop = &gconn->send_array[i];
|
||||
|
||||
if (array_entry_is_empty(array_entry)) {
|
||||
if (array_entry_is_empty(array_entry_loop)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (tm == array_entry->last_send_try) {
|
||||
if (tm == array_entry_loop->last_send_try) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const uint64_t delta = array_entry->last_send_try - array_entry->time_added;
|
||||
array_entry->last_send_try = tm;
|
||||
const uint64_t delta = array_entry_loop->last_send_try - array_entry_loop->time_added;
|
||||
array_entry_loop->last_send_try = tm;
|
||||
|
||||
/* if this occurrs less than once per second this won't be reliable */
|
||||
if (delta > 1 && is_power_of_2(delta)) {
|
||||
gcc_encrypt_and_send_lossless_packet(chat, gconn, array_entry->data, array_entry->data_length,
|
||||
array_entry->message_id, array_entry->packet_type);
|
||||
gcc_encrypt_and_send_lossless_packet(chat, gconn, array_entry_loop->data, array_entry_loop->data_length,
|
||||
array_entry_loop->message_id, array_entry_loop->packet_type);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user