diff --git a/fec_manager.cpp b/fec_manager.cpp index 99a6b91..2e2686b 100644 --- a/fec_manager.cpp +++ b/fec_manager.cpp @@ -574,10 +574,13 @@ int fec_decode_manager_t::input(char *s,int len) } } + //mylog(log_info,"mp.size()=%d index=%d\n",mp.size(),index); + if(fec_data[index].used!=0) { u32_t tmp_seq=fec_data[index].seq; anti_replay.set_invaild(tmp_seq); + if(mp.find(tmp_seq)!=mp.end()) { mp.erase(tmp_seq); diff --git a/fec_manager.h b/fec_manager.h index 801801f..f0f8fbc 100644 --- a/fec_manager.h +++ b/fec_manager.h @@ -167,19 +167,19 @@ class fec_decode_manager_t { anti_replay_t anti_replay; fec_data_t *fec_data; - int index; unordered_map mp; blob_decode_t blob_decode; - + int index; int output_n; char ** output_s_arr; int * output_len_arr; - char *output_s_arr_buf[max_fec_packet_num+100]; - int output_len_arr_buf[max_fec_packet_num+100]; int ready_for_output; + char *output_s_arr_buf[max_fec_packet_num+100];//only for type=1,for type=0 the buf inside blot_t is used + int output_len_arr_buf[max_fec_packet_num+100];//same + public: fec_decode_manager_t() { diff --git a/main.cpp b/main.cpp index c21e1d3..ab57e9f 100644 --- a/main.cpp +++ b/main.cpp @@ -26,7 +26,7 @@ typedef int i32_t; int mtu_warn=1350; -int disable_mtu_warn=0; +int disable_mtu_warn=1; int disable_fec=0; int debug_force_flush_fec=0;