Loading CMakeLists.txt +1 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) find_package (Threads) add_subdirectory(prrt) add_library(PRRT defines.h prrt/socket.c prrt/block.c prrt/block.h prrt/packet.c prrt/packet.h prrt/processes/feedback_receiver.c prrt/processes/feedback_receiver.h prrt/processes/data_transmitter.c prrt/processes/data_transmitter.h prrt/coding_params.c prrt/coding_params.h prrt/vdmcode/block_code.c prrt/vdmcode/block_code.h prrt/coding_params.c prrt/coding_params.h prrt/collections/in_buffer.c prrt/collections/in_buffer.h) add_library(PRRT defines.h prrt/socket.c prrt/block.c prrt/block.h prrt/packet.c prrt/packet.h prrt/processes/feedback_receiver.c prrt/processes/feedback_receiver.h prrt/processes/data_transmitter.c prrt/processes/data_transmitter.h prrt/coding_params.c prrt/coding_params.h prrt/vdmcode/block_code.c prrt/vdmcode/block_code.h prrt/coding_params.c prrt/coding_params.h prrt/collections/in_buffer.c prrt/collections/in_buffer.h prrt/stores/forward_packet_table.c prrt/stores/forward_packet_table.h) add_library(UTIL defines.h util/common.c util/common.h util/list.c util/list.h) add_executable(sender sender.c) Loading prrt/block.c +8 −5 Original line number Diff line number Diff line Loading @@ -45,11 +45,11 @@ PrrtPacket *PrrtBlock_get_first_data(PrrtBlock *block_ptr) { return List_shift(block_ptr->data_blocks); } void PrrtBlock_code(PrrtBlock *block_ptr) { void PrrtBlock_code(PrrtBlock *block_ptr, uint16_t *seqno) { int j = 0, m = 0; int k = block_ptr->coding_params.k; int n = block_ptr->coding_params.n; int r = block_ptr->coding_params.r; uint8_t k = block_ptr->coding_params.k; uint8_t n = block_ptr->coding_params.n; uint8_t r = block_ptr->coding_params.r; uint8_t index = 0; uint32_t length = block_ptr->largest_data_length; Loading @@ -75,11 +75,14 @@ void PrrtBlock_code(PrrtBlock *block_ptr) { fec[j] = malloc(sizeof(gf) * length); memset(fec[j], 0, sizeof(gf) * length); PrrtCoder_encode(coder, src, fec[j], j+k, length); // gf **src, gf *fec, int index, int sz PrrtPacket* red_packet_ptr = PrrtPacket_create_redundancy_packet(0, (void*) fec[j], length, 0, index, base_seqno, block_ptr->coding_params); PrrtPacket* red_packet_ptr = PrrtPacket_create_redundancy_packet(0, (void*) fec[j], length, *seqno, index, base_seqno, block_ptr->coding_params); *seqno = *seqno+1 % SEQNO_SPACE; PrrtPacket_print(red_packet_ptr); PrrtBlock_insert_redundancy_packet(block_ptr, red_packet_ptr); } block_ptr->is_coded = TRUE; clear_list(src, k); free(src); } Loading prrt/block.h +1 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ int PrrtBlock_ready(const PrrtBlock *block_ptr); PrrtPacket *PrrtBlock_get_first_data(PrrtBlock *block_ptr); void PrrtBlock_code(PrrtBlock *block_ptr); void PrrtBlock_code(PrrtBlock *block_ptr, uint16_t *seqno); PrrtPacket *PrrtBlock_get_first_red_data(PrrtBlock *block_ptr); Loading prrt/collections/in_buffer.c +0 −1 Original line number Diff line number Diff line #include "in_buffer.h" No newline at end of file prrt/packet.h +2 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ typedef struct { uint32_t payload_len; } PrrtPacket; #define SEQNO_SPACE 66536 // 2**16 as seqno is uint16_t #define PRRT_PACKET_DATA_HEADER_SIZE 12 typedef struct { uint32_t timestamp; Loading Loading
CMakeLists.txt +1 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) find_package (Threads) add_subdirectory(prrt) add_library(PRRT defines.h prrt/socket.c prrt/block.c prrt/block.h prrt/packet.c prrt/packet.h prrt/processes/feedback_receiver.c prrt/processes/feedback_receiver.h prrt/processes/data_transmitter.c prrt/processes/data_transmitter.h prrt/coding_params.c prrt/coding_params.h prrt/vdmcode/block_code.c prrt/vdmcode/block_code.h prrt/coding_params.c prrt/coding_params.h prrt/collections/in_buffer.c prrt/collections/in_buffer.h) add_library(PRRT defines.h prrt/socket.c prrt/block.c prrt/block.h prrt/packet.c prrt/packet.h prrt/processes/feedback_receiver.c prrt/processes/feedback_receiver.h prrt/processes/data_transmitter.c prrt/processes/data_transmitter.h prrt/coding_params.c prrt/coding_params.h prrt/vdmcode/block_code.c prrt/vdmcode/block_code.h prrt/coding_params.c prrt/coding_params.h prrt/collections/in_buffer.c prrt/collections/in_buffer.h prrt/stores/forward_packet_table.c prrt/stores/forward_packet_table.h) add_library(UTIL defines.h util/common.c util/common.h util/list.c util/list.h) add_executable(sender sender.c) Loading
prrt/block.c +8 −5 Original line number Diff line number Diff line Loading @@ -45,11 +45,11 @@ PrrtPacket *PrrtBlock_get_first_data(PrrtBlock *block_ptr) { return List_shift(block_ptr->data_blocks); } void PrrtBlock_code(PrrtBlock *block_ptr) { void PrrtBlock_code(PrrtBlock *block_ptr, uint16_t *seqno) { int j = 0, m = 0; int k = block_ptr->coding_params.k; int n = block_ptr->coding_params.n; int r = block_ptr->coding_params.r; uint8_t k = block_ptr->coding_params.k; uint8_t n = block_ptr->coding_params.n; uint8_t r = block_ptr->coding_params.r; uint8_t index = 0; uint32_t length = block_ptr->largest_data_length; Loading @@ -75,11 +75,14 @@ void PrrtBlock_code(PrrtBlock *block_ptr) { fec[j] = malloc(sizeof(gf) * length); memset(fec[j], 0, sizeof(gf) * length); PrrtCoder_encode(coder, src, fec[j], j+k, length); // gf **src, gf *fec, int index, int sz PrrtPacket* red_packet_ptr = PrrtPacket_create_redundancy_packet(0, (void*) fec[j], length, 0, index, base_seqno, block_ptr->coding_params); PrrtPacket* red_packet_ptr = PrrtPacket_create_redundancy_packet(0, (void*) fec[j], length, *seqno, index, base_seqno, block_ptr->coding_params); *seqno = *seqno+1 % SEQNO_SPACE; PrrtPacket_print(red_packet_ptr); PrrtBlock_insert_redundancy_packet(block_ptr, red_packet_ptr); } block_ptr->is_coded = TRUE; clear_list(src, k); free(src); } Loading
prrt/block.h +1 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ int PrrtBlock_ready(const PrrtBlock *block_ptr); PrrtPacket *PrrtBlock_get_first_data(PrrtBlock *block_ptr); void PrrtBlock_code(PrrtBlock *block_ptr); void PrrtBlock_code(PrrtBlock *block_ptr, uint16_t *seqno); PrrtPacket *PrrtBlock_get_first_red_data(PrrtBlock *block_ptr); Loading
prrt/collections/in_buffer.c +0 −1 Original line number Diff line number Diff line #include "in_buffer.h" No newline at end of file
prrt/packet.h +2 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ typedef struct { uint32_t payload_len; } PrrtPacket; #define SEQNO_SPACE 66536 // 2**16 as seqno is uint16_t #define PRRT_PACKET_DATA_HEADER_SIZE 12 typedef struct { uint32_t timestamp; Loading