doesnt work any more,no idea

This commit is contained in:
wangyu- 2017-10-08 11:09:36 -05:00
parent 1a4149eef2
commit 8fd5118e6c
3 changed files with 19 additions and 23 deletions

View File

@ -172,20 +172,21 @@ int fec_encode_manager_t::input(char *s,int len/*,int &is_first_packet*/)
buf[i][tmp_idx++]=(unsigned char)fec_data_num; buf[i][tmp_idx++]=(unsigned char)fec_data_num;
buf[i][tmp_idx++]=(unsigned char)fec_redundant_num; buf[i][tmp_idx++]=(unsigned char)fec_redundant_num;
buf[i][tmp_idx++]=(unsigned char)i; buf[i][tmp_idx++]=(unsigned char)i;
output_buf[i]=buf[i]+tmp_idx; output_buf[i]=buf[i]+tmp_idx; //////caution ,trick here.
output_len[i]=tmp_idx+blob_len;
if(i<fec_data_num) if(i<fec_data_num)
{ {
memcpy(buf[i]+tmp_idx,blob_output[i],blob_len); memcpy(buf[i]+tmp_idx,blob_output[i],blob_len);
tmp_idx+=blob_len; tmp_idx+=blob_len;
} }
} }
output_len=blob_len+sizeof(u32_t)+4*sizeof(char);/////remember to change this 4,if modified the protocol //output_len=blob_len+sizeof(u32_t)+4*sizeof(char);/////remember to change this 4,if modified the protocol
rs_encode2(fec_data_num,fec_data_num+fec_redundant_num,output_buf,blob_len); rs_encode2(fec_data_num,fec_data_num+fec_redundant_num,output_buf,blob_len);
for(int i=0;i<fec_data_num+fec_redundant_num;i++) for(int i=0;i<fec_data_num+fec_redundant_num;i++)
{ {
output_buf[i]=buf[i]; output_buf[i]=buf[i];//////caution ,trick here.
} }
ready_for_output=1; ready_for_output=1;
@ -211,12 +212,12 @@ int fec_encode_manager_t::input(char *s,int len/*,int &is_first_packet*/)
return 0; return 0;
} }
int fec_encode_manager_t::output(int &n,char ** &s_arr,int &len) int fec_encode_manager_t::output(int &n,char ** &s_arr,int *&len)
{ {
if(!ready_for_output) if(!ready_for_output)
{ {
n=-1; n=-1;
len=-1; len=0;
s_arr=0; s_arr=0;
} }
else else

View File

@ -35,7 +35,7 @@ struct anti_replay_t
if(st.find(seq)!=st.end() ) if(st.find(seq)!=st.end() )
{ {
mylog(log_trace,"seq %llx exist\n",seq); mylog(log_trace,"seq %u exist\n",seq);
return; return;
//return 0; //return 0;
} }
@ -101,7 +101,7 @@ class fec_encode_manager_t
int fec_pending_time; int fec_pending_time;
char buf[max_fec_packet_num+5][buf_len+100]; char buf[max_fec_packet_num+5][buf_len+100];
char *output_buf[max_fec_packet_num+5]; char *output_buf[max_fec_packet_num+5];
int output_len; int output_len[max_fec_packet_num+5];
int ready_for_output; int ready_for_output;
u32_t seq; u32_t seq;
int counter; int counter;
@ -116,7 +116,7 @@ public:
u64_t get_timer_fd64(); u64_t get_timer_fd64();
int re_init(int data_num,int redundant_num,int mtu,int pending_num,int pending_time); int re_init(int data_num,int redundant_num,int mtu,int pending_num,int pending_time);
int input(char *s,int len/*,int &is_first_packet*/); int input(char *s,int len/*,int &is_first_packet*/);
int output(int &n,char ** &s_arr,int &len); int output(int &n,char ** &s_arr,int *&len);
}; };
struct fec_data_t struct fec_data_t
{ {

View File

@ -121,10 +121,10 @@ int delay_send(my_time_t delay,const dest_t &dest,char *data,int len)
int from_normal_to_fec(conn_info_t & conn_info,char *data,int len,int & out_n,char **&out_arr,int *&out_len,int *&out_delay) int from_normal_to_fec(conn_info_t & conn_info,char *data,int len,int & out_n,char **&out_arr,int *&out_len,int *&out_delay)
{ {
static int out_delay_buf[max_fec_packet_num+100]={0}; static int out_delay_buf[max_fec_packet_num+100]={0};
static int out_len_buf[max_fec_packet_num+100]={0}; //static int out_len_buf[max_fec_packet_num+100]={0};
static int counter=0; static int counter=0;
out_delay=out_delay_buf; out_delay=out_delay_buf;
out_len=out_len_buf; //out_len=out_len_buf;
if(0) if(0)
{ {
@ -150,14 +150,9 @@ int from_normal_to_fec(conn_info_t & conn_info,char *data,int len,int & out_n,ch
//char **s_arr; //char **s_arr;
//int s_len; //int s_len;
int tmp_out_len;
conn_info.fec_encode_manager.output(out_n,out_arr,tmp_out_len);
for(int i=0;i<out_n;i++) conn_info.fec_encode_manager.output(out_n,out_arr,out_len);
{
out_len_buf[i]=tmp_out_len;
// out_delay_buf[i]=100*i;
}
} }
@ -900,15 +895,15 @@ int unit_test()
int n; int n;
char **s_arr; char **s_arr;
int len; int *len;
fec_encode_manager.output(n,s_arr,len); fec_encode_manager.output(n,s_arr,len);
printf("<n:%d,len:%d>",n,len); printf("<n:%d,len:%d>",n,len[0]);
for(int i=0;i<n;i++) for(int i=0;i<n;i++)
{ {
fec_decode_manager.input(s_arr[i],len); fec_decode_manager.input(s_arr[i],len[i]);
} }
{ {
@ -937,16 +932,16 @@ int unit_test()
int n; int n;
char **s_arr; char **s_arr;
int len; int * len;
fec_encode_manager.output(n,s_arr,len); fec_encode_manager.output(n,s_arr,len);
printf("<n:%d,len:%d>",n,len); printf("<n:%d,len:%d>",n,len[0]);
for(int i=0;i<n;i++) for(int i=0;i<n;i++)
{ {
if(i==1||i==3||i==5||i==0) if(i==1||i==3||i==5||i==0)
fec_decode_manager.input(s_arr[i],len); fec_decode_manager.input(s_arr[i],len[i]);
} }
{ {