diff --git a/daemon/codec.c b/daemon/codec.c index 2afc3ee4b..4c2e4e9a7 100644 --- a/daemon/codec.c +++ b/daemon/codec.c @@ -4831,7 +4831,7 @@ static void codec_store_find_matching_codecs(rtp_pt_q *out_compat, rtp_payload_t struct codec_store *cs, const str *codec, rtp_payload_type *pt_parsed) { - AUTO_CLEANUP_NULL(rtp_payload_type *pt_store, payload_type_destroy); + g_autoptr(rtp_payload_type) pt_store = NULL; rtp_payload_type *pt = NULL; if (pt_parsed) @@ -5370,7 +5370,7 @@ void codec_store_transcode(struct codec_store *cs, str_q *offer, struct codec_st for (__auto_type l = offer->head; l; l = l->next) { str *codec = l->data; // parse out given codec string - AUTO_CLEANUP(rtp_payload_type *pt, payload_type_destroy) + g_autoptr(rtp_payload_type) pt = codec_make_payload_type_sup(codec, cs->media); // find matching existing PT if one exists diff --git a/include/codec.h b/include/codec.h index 7d73b88d1..d9a6280d0 100644 --- a/include/codec.h +++ b/include/codec.h @@ -158,9 +158,11 @@ struct codec_packet *codec_packet_dup(struct codec_packet *p); bool codec_packet_copy(struct codec_packet *p); void payload_type_free(rtp_payload_type *p); -void payload_type_destroy(rtp_payload_type **p); rtp_payload_type *rtp_payload_type_dup(const rtp_payload_type *pt); +G_DEFINE_AUTOPTR_CLEANUP_FUNC(rtp_payload_type, payload_type_free) + + // special return value `(void *) 0x1` to signal type mismatch rtp_payload_type *codec_make_payload_type(const str *codec_str, enum media_type);