diff options
| author | dumeijie <[email protected]> | 2022-09-07 19:43:28 +0800 |
|---|---|---|
| committer | dumeijie <[email protected]> | 2022-09-07 19:43:28 +0800 |
| commit | 779a3aba55d0dcd22dded18c7869b5ee4e72a602 (patch) | |
| tree | e4bd40c3b2e01ae2f6e43d5f1e70eef09dc1ea88 /src/frag_dedup.c | |
| parent | 674ea3c470538801a51efa8a6131041d3d8b3678 (diff) | |
🦄 refactor(for voip):voip-dev
Diffstat (limited to 'src/frag_dedup.c')
| -rw-r--r-- | src/frag_dedup.c | 112 |
1 files changed, 14 insertions, 98 deletions
diff --git a/src/frag_dedup.c b/src/frag_dedup.c index 0c2d503..ac55f27 100644 --- a/src/frag_dedup.c +++ b/src/frag_dedup.c @@ -1,5 +1,5 @@ /* -* �������Դ��ѯҵ�� +* �������Դ��ѯҵ�ᅣ1�7 */ #include <sys/ioctl.h> @@ -107,16 +107,16 @@ void media_dedup_report(media_t* mdi) break; } } - + /* if(FLAG_TEST(mdi->td_query, TD_QUERY_TYPE_DEDUP) && !FLAG_TEST(mdi->td_query, TD_QUERY_RES_NOREPORT)) { soqav_dedup_report(g_frag_run.dedup_hd, mdi->td, &detail); } else { - /*�ظ���Ŀ����Ҫ�ϱ���TD��ΪNULL*/ + /*�ظ���Ŀ����Ҫ�ϱ���TD��ΪNULL soqav_dedup_report(g_frag_run.dedup_hd, NULL, &detail); - } + }*/ frag_write_to_log(AV_DEDUP_REPORT, mdi->mid, (void*)mdi->td, (void*)&mdi->byte_proc, mdi->configID); atomic_inc(&g_frag_stat.media_stat[LOG_MEDIA_DEDUP_REPORT]); if(mdi->td_complete) @@ -142,7 +142,7 @@ long media_query_ack(void *data, const uint8_t *key, uint size, void *user_arg) int result = ack_rsl->status; uint32_t multisrc_bizmanip = ack_rsl->cpz_payload_ip; - /*���Դ���*/ + /*���Դ���*/ /* result = BIT_TD_MULTI_SOURCE; multisrc_bizmanip = 16777343; @@ -151,7 +151,7 @@ long media_query_ack(void *data, const uint8_t *key, uint size, void *user_arg) if(NULL!=mdi) { - /*���֮ǰ�յ���Ӧ�𣬲����ٴ���*/ + /*���֮ǰ�յ���Ӧ�𣬲����ٴ��ᅣ1�7*/ if(FLAG_TEST(mdi->td_query, TD_QUERY_ACK_DEDUP) || FLAG_TEST(mdi->td_query, TD_QUERY_ACK_MULTISRC)) { return 0; @@ -159,8 +159,8 @@ long media_query_ack(void *data, const uint8_t *key, uint size, void *user_arg) FLAG_SET(mdi->td_query, TD_QUERY_ACK_DEDUP); FLAG_SET(mdi->td_query, TD_QUERY_ACK_MULTISRC); - /*debug ���ز����ߵ�����£�����debugģʽ������ʧЧ*/ - /*��Դ�����ݻ���*/ + /*debug ���ز����ߵ�����£�����debugģʽ������ʧЧ*/ + /*��Դ�����ݻ���*/ if(FLAG_TEST(mdi->td_query, TD_QUERY_TYPE_MULTISRC)) { if(result & BIT_TD_KNOWN) @@ -170,7 +170,7 @@ long media_query_ack(void *data, const uint8_t *key, uint size, void *user_arg) FLAG_SET(mdi->td_query, TD_QUERY_RES_DEDUP); FLAG_SET(mdi->td_query, TD_QUERY_RES_NOREPORT); } - /*���IP�DZ���16777343(127.0.0.1)���ҽ�ĿIDһ��������Ҫ�ۺ�*/ + /*���IP�DZ���16777343(127.0.0.1)���ҽ�ĿIDһ��������Ҫ�ۺ�*/ else if(result & BIT_TD_MULTI_SOURCE && (multisrc_bizmanip!=16777343 ||(multisrc_bizmanip==16777343 && mdi->mid != (uint64_t)ack_rsl->mid))) { inet_ntop(AF_INET, &multisrc_bizmanip, ip_buf, 64); @@ -193,10 +193,10 @@ long media_query_ack(void *data, const uint8_t *key, uint size, void *user_arg) frag_ivi_info.thread_seq = first_item->thread_seq; atomic_inc(&g_frag_stat.sysinfo_stat[MULTISRC_QUEUE][QUEUE_OUT]); frag_write_to_log(ADD_FRAG_FROM_TAILQ, frag_ivi_info.frg->mid, frag_ivi_info.frg, NULL, 0); - /*��Ŀ�ظ���ֱ�Ӷ���*/ + /*��Ŀ�ظ���ֱ�Ӷ���*/ if(result & BIT_TD_KNOWN && !g_frag_cfg.dedup_invalid) { - /*��Ӧ�ü���ȥ��ͳ�ƣ���Ϊ�ⲿ��������ʵ�Ѿ������˷�������*/ + /*��Ӧ�ü���ȥ��ͳ�ƣ���Ϊ�ⲿ��������ʵ�Ѿ������˷�������*/ free_frag_in(frag_ivi_info.frg,0,NULL); } else @@ -208,7 +208,7 @@ long media_query_ack(void *data, const uint8_t *key, uint size, void *user_arg) FLAG_SET(frag_ivi_info.frg->frag_flag, FRAG_FLAG_MULTISRC); frag_add_wait_lq(&frag_ivi_info, 1, frag_ivi_info.thread_seq); } - /*���ۺϵĶ�Դ�����ݶ�������Ϊ�Ѿ�������*/ + /*���ۺϵĶ�Դ�����ݶ�������Ϊ�Ѿ�������*/ else { free_frag_in(frag_ivi_info.frg,0,NULL); @@ -356,10 +356,10 @@ long set_td_data(media_t* mdi, frag_in_t* frg) cur_td_datalen = ((frg->offset+frg->datalen)>g_frag_cfg.td_data_maxsize) ? (g_frag_cfg.td_data_maxsize-frg->offset): frg->datalen; memcpy(mdi->td_data+frg->offset, frg->data, cur_td_datalen); mdi->td_datalen += cur_td_datalen; - /*td_data�������ܲ�ѯ*/ + /*td_data�������ܲ�ѯ*/ if(mdi->td_datalen==g_frag_cfg.td_data_maxsize) { - //url is not empty,�ȴ���Դ��ѯURL�����url����TD + //url is not empty,�ȴ���Դ��ѯURL�����url����TD if(NULL != mdi->opt[MEDIA_OPT_URL][mdi->url_opt_index]) { FLAG_SET(mdi->td_query,TD_QUERY_TYPE_DEDUP); @@ -428,88 +428,4 @@ void free_query_detail(query_detail_t* query_detail) } } -void proc_media_multisrc(media_t* mdi, int timeout) -{ - query_detail_t* query_detail = NULL; - struct stream_tuple4_v4 tuple4_v4 ; - struct stream_tuple4_v6 tuple4_v6 ; - - /*�ж��Ƿ���Ҫ�����ѯ*/ - /*����ʱ֮��һ���ᷢ���ѯ*/ - if(!FLAG_TEST(mdi->td_query, TD_QUERY_TYPE_YES)&& - (((FLAG_TEST(mdi->td_query, TD_QUERY_TYPE_DEDUP)||mdi->byte_proc>g_frag_cfg.td_data_maxsize) - && FLAG_TEST(mdi->td_query, TD_QUERY_TYPE_MULTISRC))||timeout)) - { - /*��������td_meta,�̶�����td*/ - if((g_frag_cfg.av_dedup_switch) && (mdi->opt[MEDIA_OPT_TD_META][mdi->url_opt_index] == NULL)) - { - generate_td_meta(mdi); - if(mdi->td_complete != 1 && mdi->td_datalen==g_frag_cfg.td_data_maxsize) - { - caculate_md5(mdi->opt[MEDIA_OPT_TD_META][mdi->url_opt_index]->opt_value, mdi->opt[MEDIA_OPT_TD_META][mdi->url_opt_index]->opt_len, mdi->td_data, mdi->td_datalen, mdi->td, TD_LEN); - mdi->td_complete = 1; - } - } - - FLAG_SET(mdi->td_query, TD_QUERY_TYPE_YES); - /*�����Ҫ���ж�Դ���߽��ز�ѯ�����query_detail*/ - query_detail = (query_detail_t*)calloc(1, sizeof(query_detail_t)); - query_detail->total_len = mdi->media_len; - query_detail->mid = mdi->mid; - - /*addr*/ - if(NULL!=mdi->opt[MEDIA_OPT_ADDR][mdi->url_opt_index]) - { - query_detail->addrtype = addrlist_to_streamtuple4(mdi->opt[MEDIA_OPT_ADDR][mdi->url_opt_index]->opt_value, &tuple4_v4, &tuple4_v6); - switch(query_detail->addrtype) - { - case ADDR_TYPE_IPV4: - query_detail->tuple4_v4 = (struct stream_tuple4_v4*)malloc(sizeof(struct stream_tuple4_v4));; - memcpy(query_detail->tuple4_v4, &tuple4_v4, sizeof(tuple4_v4)); - break; - case ADDR_TYPE_IPV6: - query_detail->tuple4_v6 = (struct stream_tuple4_v6*)malloc(sizeof(struct stream_tuple4_v6));; - memcpy(query_detail->tuple4_v6, &tuple4_v6, sizeof(tuple4_v6)); - break; - } - } - /*��Դ��ѯ*/ - if(FLAG_TEST(mdi->td_query, TD_QUERY_TYPE_MULTISRC)) - { - /*���ö�ʱ��*/ - struct timer_context_t *context = (struct timer_context_t *)calloc(1, sizeof(struct timer_context_t)); - context->mid = mdi->mid; - MESA_timer_add(g_frag_run.multisrc_timer[mdi->thread_seq], - time(NULL), - g_frag_cfg.multisrc_wait_timeout, - soqav_query_timeout, - context, - soqav_query_free_timeout, - &mdi->timer_idx); - g_frag_run.multisrc_timer_on[mdi->thread_seq] = 1; - if(NULL!=mdi->opt[MEDIA_OPT_URL][mdi->url_opt_index]) - { - query_detail->url = (char*)malloc(mdi->opt[MEDIA_OPT_URL][mdi->url_opt_index]->opt_len); - query_detail->urllen = mdi->opt[MEDIA_OPT_URL][mdi->url_opt_index]->opt_len; - memcpy((void*)query_detail->url, mdi->opt[MEDIA_OPT_URL][mdi->url_opt_index]->opt_value, mdi->opt[MEDIA_OPT_URL][mdi->url_opt_index]->opt_len); - } - } - if(FLAG_TEST(mdi->td_query, TD_QUERY_TYPE_DEDUP)) - { - atomic_inc(&g_frag_stat.media_stat[LOG_MEDIA_TD_QUERY]); - soqav_dedup_query(g_frag_run.dedup_hd, mdi->td, query_detail, soqav_query_callback, (void*)mdi->mid); - } - else - { - soqav_dedup_query(g_frag_run.dedup_hd, NULL, query_detail, soqav_query_callback, (void*)mdi->mid); - } - atomic_inc(&g_frag_stat.media_stat[LOG_MEDIA_DEDUP_QUERY]); - frag_write_to_log(SEND_AV_DEDUP_QUERY, mdi->mid, mdi, NULL, 0); - if(NULL!=query_detail) - { - free_query_detail(query_detail); - query_detail =NULL; - } - } -} |
