diff --git a/t/transcode-test.c b/t/transcode-test.c index ab484c57d..e33e20d78 100644 --- a/t/transcode-test.c +++ b/t/transcode-test.c @@ -13,10 +13,9 @@ struct poller *rtpe_poller; GString *dtmf_logs; static str *sdup(char *s) { - str *r = g_slice_alloc(sizeof(*r)); - char *d = strdup(s); - str_init(r, d); - return r; + str r; + str_init(&r, s); + return str_dup(&r); } static void queue_dump(GString *s, GQueue *q) { for (GList *l = q->head; l; l = l->next) { @@ -67,9 +66,10 @@ static void __start(const char *file, int line) { media_B->monologue = &ml_B; media_B->protocol = &transport_protocols[PROTO_RTP_AVP]; g_queue_init(&rtp_types); // parsed from received SDP - flags.codec_strip = g_hash_table_new_full(str_hash, str_equal, str_slice_free, NULL); - flags.codec_mask = g_hash_table_new_full(str_hash, str_equal, str_slice_free, NULL); - flags.codec_set = g_hash_table_new_full(str_hash, str_equal, str_slice_free, NULL); + flags.codec_strip = g_hash_table_new_full(str_case_hash, str_case_equal, free, NULL); + flags.codec_mask = g_hash_table_new_full(str_case_hash, str_case_equal, free, NULL); + flags.codec_except = g_hash_table_new_full(str_case_hash, str_case_equal, free, NULL); + flags.codec_set = g_hash_table_new_full(str_case_hash, str_case_equal, free, free); } #define transcode(codec) g_queue_push_tail(&flags.codec_transcode, sdup(#codec)) @@ -83,7 +83,7 @@ static void codec_set(char *c) { str splitter = s; while (1) { - g_hash_table_replace(flags.codec_set, str_slice_dup(&splitter), str_slice_dup(&s)); + g_hash_table_replace(flags.codec_set, str_dup(&splitter), str_dup(&s)); char *c = memrchr(splitter.s, '/', splitter.len); if (!c) break; @@ -107,16 +107,22 @@ static void __sdp_pt_fmt(int num, str codec, int clockrate, str full_codec, str static void offer(void) { printf("offer\n"); + codec_tracker_init(media_B); codec_rtp_payload_types(media_B, media_A, &rtp_types, &flags); codec_handlers_update(media_B, media_A, &flags, NULL); + codec_tracker_finish(media_B); g_queue_clear(&rtp_types); memset(&flags, 0, sizeof(flags)); } static void answer(void) { printf("answer\n"); + codec_tracker_init(media_A); codec_rtp_payload_types(media_A, media_B, &rtp_types, &flags); codec_handlers_update(media_A, media_B, &flags, NULL); + codec_tracker_finish(media_A); + g_queue_clear(&rtp_types); + memset(&flags, 0, sizeof(flags)); } #define expect(side, dir, codecs) \