diff --git a/daemon/call.c b/daemon/call.c index ceed2b8ba..45d44f83b 100644 --- a/daemon/call.c +++ b/daemon/call.c @@ -637,7 +637,7 @@ static struct call_media *__get_media(struct call_monologue *ml, const struct st // check if we have an existing media struct. resize array if needed if (arr_index >= ml->medias->len) - g_ptr_array_set_size(ml->medias, want_index); + t_ptr_array_set_size(ml->medias, want_index); if (ml->medias->pdata[arr_index]) { __C_DBG("found existing call_media for stream #%u", want_index); @@ -3867,7 +3867,7 @@ void call_media_free(struct call_media **mdp) { } void __monologue_free(struct call_monologue *m) { - g_ptr_array_free(m->medias, true); + t_ptr_array_free(m->medias, true); g_hash_table_destroy(m->associated_tags); g_hash_table_destroy(m->media_ids); free_ssrc_hash(&m->ssrc_hash); @@ -4081,7 +4081,7 @@ struct call_monologue *__monologue_create(struct call *call) { ret->call = call; ret->created = rtpe_now.tv_sec; ret->associated_tags = g_hash_table_new(g_direct_hash, g_direct_equal); - ret->medias = g_ptr_array_new(); + ret->medias = medias_arr_new(); ret->media_ids = g_hash_table_new(str_hash, str_equal); ret->ssrc_hash = create_ssrc_hash_call(); diff --git a/daemon/call_interfaces.c b/daemon/call_interfaces.c index d46bd966d..53a522103 100644 --- a/daemon/call_interfaces.c +++ b/daemon/call_interfaces.c @@ -71,7 +71,7 @@ static int call_stream_address_gstring(GString *o, struct packet_stream *ps, enu return ret; } -static str *streams_print(GPtrArray *s, int start, int end, const char *prefix, enum stream_address_format format) { +static str *streams_print(medias_arr *s, int start, int end, const char *prefix, enum stream_address_format format) { GString *o; int i, af, port; struct call_media *media; diff --git a/daemon/redis.c b/daemon/redis.c index 5d1464d26..b78331acb 100644 --- a/daemon/redis.c +++ b/daemon/redis.c @@ -38,7 +38,7 @@ typedef union { GQueue *q; stream_fd_q *sfds_q; - GPtrArray *pa; + medias_arr *ma; sfd_intf_list_q *siq; packet_stream_q *psq; } callback_arg_t __attribute__ ((__transparent_union__)); @@ -1252,10 +1252,10 @@ static int rbl_cb_simple(str *s, callback_arg_t qp, struct redis_list *list, voi } static int rbpa_cb_simple(str *s, callback_arg_t pap, struct redis_list *list, void *ptr) { - GPtrArray *pa = pap.pa; + medias_arr *pa = pap.ma; int j; j = str_to_i(s, 0); - g_ptr_array_add(pa, redis_list_get_idx_ptr(list, (unsigned) j)); + t_ptr_array_add(pa, redis_list_get_idx_ptr(list, (unsigned) j)); return 0; } @@ -1265,7 +1265,7 @@ static int json_build_list(callback_arg_t q, struct call *c, const char *key, return json_build_list_cb(q, c, key, idx, list, rbl_cb_simple, NULL, root_reader); } -static int json_build_ptra(GPtrArray *q, struct call *c, const char *key, +static int json_build_ptra(medias_arr *q, struct call *c, const char *key, unsigned int idx, struct redis_list *list, JsonReader *root_reader) { return json_build_list_cb(q, c, key, idx, list, rbpa_cb_simple, NULL, root_reader); diff --git a/include/call.h b/include/call.h index 54886e06d..12eb34a94 100644 --- a/include/call.h +++ b/include/call.h @@ -502,6 +502,9 @@ struct call_media { volatile unsigned int media_flags; }; +TYPED_GPTRARRAY(medias_arr, struct call_media) + + struct media_subscription { struct call_media * media; /* media itself */ struct call_monologue * monologue; /* whom media belongs to */ @@ -536,7 +539,7 @@ struct call_monologue { const struct logical_intf *logical_intf; GHashTable *associated_tags; GHashTable *subscribers_ht; /* for quick lookup */ - GPtrArray *medias; + medias_arr *medias; GHashTable *media_ids; struct media_player *player; unsigned long long sdp_session_id;