Browse Source

TT#101653 update transcode-test with new codec flags

Change-Id: I359820746b5ca5f82638a81089ed30b16e402ad4
pull/1126/head
Richard Fuchs 5 years ago
parent
commit
de7807f0f1
1 changed files with 14 additions and 8 deletions
  1. +14
    -8
      t/transcode-test.c

+ 14
- 8
t/transcode-test.c View File

@ -13,10 +13,9 @@ struct poller *rtpe_poller;
GString *dtmf_logs; GString *dtmf_logs;
static str *sdup(char *s) { 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) { static void queue_dump(GString *s, GQueue *q) {
for (GList *l = q->head; l; l = l->next) { 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->monologue = &ml_B;
media_B->protocol = &transport_protocols[PROTO_RTP_AVP]; media_B->protocol = &transport_protocols[PROTO_RTP_AVP];
g_queue_init(&rtp_types); // parsed from received SDP 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)) #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; str splitter = s;
while (1) { 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); char *c = memrchr(splitter.s, '/', splitter.len);
if (!c) if (!c)
break; break;
@ -107,16 +107,22 @@ static void __sdp_pt_fmt(int num, str codec, int clockrate, str full_codec, str
static void offer(void) { static void offer(void) {
printf("offer\n"); printf("offer\n");
codec_tracker_init(media_B);
codec_rtp_payload_types(media_B, media_A, &rtp_types, &flags); codec_rtp_payload_types(media_B, media_A, &rtp_types, &flags);
codec_handlers_update(media_B, media_A, &flags, NULL); codec_handlers_update(media_B, media_A, &flags, NULL);
codec_tracker_finish(media_B);
g_queue_clear(&rtp_types); g_queue_clear(&rtp_types);
memset(&flags, 0, sizeof(flags)); memset(&flags, 0, sizeof(flags));
} }
static void answer(void) { static void answer(void) {
printf("answer\n"); printf("answer\n");
codec_tracker_init(media_A);
codec_rtp_payload_types(media_A, media_B, &rtp_types, &flags); codec_rtp_payload_types(media_A, media_B, &rtp_types, &flags);
codec_handlers_update(media_A, media_B, &flags, NULL); 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) \ #define expect(side, dir, codecs) \


Loading…
Cancel
Save