sip: media: rework codec negotiation

introduce `calls_sip_media_manager_get_capabilities ()` which takes
a GList of MediaCodecInfo's as input to generate a SDP message.
If using in an SDP answer we simply feed it a list of the common codecs
as gathered from the SDP offer.
This commit is contained in:
Evangelos Ribeiro Tzaras
2021-04-08 16:43:13 +02:00
committed by Guido Gunther
parent 4eb07148cc
commit c2bd6e9344
7 changed files with 144 additions and 11 deletions

View File

@@ -27,6 +27,7 @@
#include "gst-rfc3551.h"
#include <sofia-sip/nua.h>
#include <sofia-sip/sdp.h>
#include <glib-object.h>
#define CALLS_TYPE_SIP_MEDIA_MANAGER (calls_sip_media_manager_get_type ())
@@ -35,9 +36,16 @@ G_DECLARE_FINAL_TYPE (CallsSipMediaManager, calls_sip_media_manager, CALLS, SIP_
CallsSipMediaManager* calls_sip_media_manager_default (void);
gchar* calls_sip_media_manager_get_capabilities (CallsSipMediaManager *self,
guint port,
gboolean use_srtp,
GList *supported_codecs);
gchar* calls_sip_media_manager_static_capabilities (CallsSipMediaManager *self,
guint port,
gboolean use_srtp);
gboolean calls_sip_media_manager_supports_media (CallsSipMediaManager *self,
const char *media_type);
MediaCodecInfo* get_best_codec (CallsSipMediaManager *self);
GList * calls_sip_media_manager_codec_candidates (CallsSipMediaManager *self);
GList * calls_sip_media_manager_get_codecs_from_sdp (CallsSipMediaManager *self,
sdp_media_t *sdp_media);