/*设置某个节点的状态*/ static int app_mult_set_node_tc(MULTICAST_Output_Server_NODE *node) { if(node == NULL) { PRINTF("Error\n"); return -1; } int num = 0; int vrate = 0; int vcbr = 0; int arate = 0; int trate = 0; int crate = 0; int ret = 0; app_get_encode_rate(&vrate, &arate, &vcbr); if(node->config.tc_flag == NOTUSED || vcbr == 0) { if(node->tc_num != -1) { tc_del_element(node->tc_num); node->tc_num = -1; } return 0; } if(node->config.tc_flag == ISUSED) { if(node->client == NULL) { if(node->tc_num != -1) { tc_del_element(node->tc_num); node->tc_num = -1; } return 0; } num = node->client->num + 1; if(vcbr == 1) { trate = app_trans_rate(vrate, arate, node->config.type); crate = trate * (node->config.tc_rate + 100) / 100; //set rate ret = tc_add_element(num, node->config.main_ip, node->config.video_port, arate, crate); if(ret < 0) { PRINTF("Warnning\n"); node->tc_num = -1; } else { node->tc_num = num; } } } return 0; }
int stream_rtsp_add_client_tc(int num, int tc_flag, int tc_rate, char *dst_ip, unsigned short port) { int vrate = 0; int vcbr = 0; int arate = 0; int trate = 0; int crate = 0; int ret = 0; // int tc_flag =0; int tc_num = num + 1; app_get_encode_rate(&vrate, &arate, &vcbr); // if(tc_flag == NOTUSED || vcbr == 0) { // if( tc_num != -1) { // tc_del_element(tc_num); //node->tc_num = -1; // } // return 0; // } if(vcbr == 0) { return -1; } // if(tc_flag == ISUSED) { //if(node->client == NULL) { // if(node->tc_num != -1) { // tc_del_element(node->tc_num); // node->tc_num = -1; // } // // return 0; // } //num = ; if(vcbr == 1) { trate = app_trans_rate(vrate, arate, TYPE_RTP); crate = trate * (tc_rate + 100) / 100; //set rate ret = tc_add_element(num, dst_ip, port, trate, crate); if(ret < 0) { PRINTF("Warnning\n"); return -1; //node->tc_num = -1; } else { return 0; //node->tc_num = num; } } return -1; }
static int stream_rtsp_set_clinet_tc(int num, int tc_flag, int tc_rate, char *dst_ip, unsigned short port) { int vrate = 0; int vcbr = 0; int arate = 0; int trate = 0; int crate = 0; int ret = 0; // int tc_flag =0; int tc_num = num ; tc_del_element(tc_num); app_get_encode_rate(&vrate, &arate, &vcbr); if(vcbr == 0 || tc_flag == NOTUSED) { PRINTF("vcbr = %d,tc_flag =%d\n", vcbr, tc_flag); return -1; } if(vcbr == 1) { trate = app_trans_rate(vrate, arate, TYPE_RTP); crate = trate * (tc_rate + 100) / 100; //set rate ret = tc_add_element(num, dst_ip, port, trate, crate); if(ret < 0) { PRINTF("Warnning\n"); return -1; //node->tc_num = -1; } else { return 0; //node->tc_num = num; } } return -1; }
int tc_set_element(int classid, char *dst_ip, unsigned short dst_port, int a_rate, int c_rate) { return tc_add_element(classid, dst_ip, dst_port, a_rate, c_rate); }