[farsight2/master] Use fs_codec_add_optional_parameter everywhere
Olivier Crête
olivier.crete at collabora.co.uk
Tue Dec 23 15:22:30 PST 2008
---
gst/fsrtpconference/fs-rtp-codec-cache.c | 11 ++++----
gst/fsrtpconference/fs-rtp-codec-negotiation.c | 10 ++-----
gst/fsrtpconference/fs-rtp-discover-codecs.c | 10 +------
gst/fsrtpconference/fs-rtp-dtmf-event-source.c | 6 +----
gst/fsrtpconference/fs-rtp-specific-nego.c | 26 +++++--------------
python/pyfarsight.override | 23 ++++++++---------
tests/check/base/fscodec.c | 31 ++++-------------------
tests/check/main/rtpcodecs.c | 5 +---
8 files changed, 37 insertions(+), 85 deletions(-)
diff --git a/gst/fsrtpconference/fs-rtp-codec-cache.c b/gst/fsrtpconference/fs-rtp-codec-cache.c
index fe091df..066d4bb 100644
--- a/gst/fsrtpconference/fs-rtp-codec-cache.c
+++ b/gst/fsrtpconference/fs-rtp-codec-cache.c
@@ -183,11 +183,12 @@ load_codec_blueprint (FsMediaType media_type, gchar **in, gsize *size) {
READ_CHECK (read_codec_blueprint_int (in, size, &tmp_size));
for (i = 0; i < tmp_size; i++) {
- FsCodecParameter *param = g_new0 (FsCodecParameter, 1);
- READ_CHECK (read_codec_blueprint_string (in, size, &(param->name)));
- READ_CHECK (read_codec_blueprint_string (in, size, &(param->value)));
- codec_blueprint->codec->optional_params =
- g_list_append (codec_blueprint->codec->optional_params, param);
+ gchar *name, *value;
+ READ_CHECK (read_codec_blueprint_string (in, size, &(name)));
+ READ_CHECK (read_codec_blueprint_string (in, size, &(value)));
+ fs_codec_add_optional_parameter (codec_blueprint->codec, name, value);
+ g_free (name);
+ g_free (value);
}
READ_CHECK (read_codec_blueprint_string (in, size, &tmp));
diff --git a/gst/fsrtpconference/fs-rtp-codec-negotiation.c b/gst/fsrtpconference/fs-rtp-codec-negotiation.c
index a58ad81..73653ea 100644
--- a/gst/fsrtpconference/fs-rtp-codec-negotiation.c
+++ b/gst/fsrtpconference/fs-rtp-codec-negotiation.c
@@ -344,13 +344,9 @@ create_local_codec_associations (FsMediaType media_type,
if (!g_ascii_strcasecmp (bp_param->name, pref_param->name))
break;
}
- if (!pref_param_e) {
- FsCodecParameter *newparam = g_new0 (FsCodecParameter, 1);
- newparam->name = g_strdup (bp_param->name);
- newparam->value = g_strdup (bp_param->value);
- ca->codec->optional_params = g_list_append (ca->codec->optional_params,
- newparam);
- }
+ if (!pref_param_e)
+ fs_codec_add_optional_parameter (ca->codec, bp_param->name,
+ bp_param->value);
}
{
diff --git a/gst/fsrtpconference/fs-rtp-discover-codecs.c b/gst/fsrtpconference/fs-rtp-discover-codecs.c
index ce60e97..6a34c77 100644
--- a/gst/fsrtpconference/fs-rtp-discover-codecs.c
+++ b/gst/fsrtpconference/fs-rtp-discover-codecs.c
@@ -1398,14 +1398,8 @@ extract_field_data (GQuark field_id,
else
{
if (type == G_TYPE_STRING)
- {
- FsCodecParameter *optional_param = g_new0 (FsCodecParameter, 1);
-
- optional_param->name = g_strdup (field_name);
- optional_param->value = g_strdup (g_value_get_string (value));
- codec->optional_params = g_list_append (codec->optional_params,
- optional_param);
- }
+ fs_codec_add_optional_parameter (codec, field_name,
+ g_value_get_string (value));
}
return TRUE;
diff --git a/gst/fsrtpconference/fs-rtp-dtmf-event-source.c b/gst/fsrtpconference/fs-rtp-dtmf-event-source.c
index 1db191c..343b6b1 100644
--- a/gst/fsrtpconference/fs-rtp-dtmf-event-source.c
+++ b/gst/fsrtpconference/fs-rtp-dtmf-event-source.c
@@ -139,7 +139,6 @@ fs_rtp_dtmf_event_source_class_add_blueprint (FsRtpSpecialSourceClass *klass,
GList *done_item = NULL;
gboolean skip = FALSE;
CodecBlueprint *new_bp = NULL;
- FsCodecParameter *param = NULL;
if (bp->codec->media_type != FS_MEDIA_TYPE_AUDIO)
continue;
@@ -167,10 +166,7 @@ fs_rtp_dtmf_event_source_class_add_blueprint (FsRtpSpecialSourceClass *klass,
new_bp->codec = fs_codec_new (FS_CODEC_ID_ANY, "telephone-event",
FS_MEDIA_TYPE_AUDIO, bp->codec->clock_rate);
- param = g_new0 (FsCodecParameter, 1);
- param->name = g_strdup ("events");
- param->value = g_strdup ("0-15");
- new_bp->codec->optional_params = g_list_prepend (NULL, param);
+ fs_codec_add_optional_parameter (new_bp->codec, "events", "0-15");
new_bp->rtp_caps = fs_codec_to_gst_caps (new_bp->codec);
new_bp->media_caps = gst_caps_new_any ();
diff --git a/gst/fsrtpconference/fs-rtp-specific-nego.c b/gst/fsrtpconference/fs-rtp-specific-nego.c
index 8f0fc8f..ca30695 100644
--- a/gst/fsrtpconference/fs-rtp-specific-nego.c
+++ b/gst/fsrtpconference/fs-rtp-specific-nego.c
@@ -153,13 +153,9 @@ sdp_is_compat_default (GstCaps *rtp_caps, FsCodec *local_codec,
/* Let's add the local param to the negotiated codec if it does not exist in
* the remote codec */
- if (!negotiated_param_list) {
- FsCodecParameter *newparam = g_new (FsCodecParameter, 1);
- newparam->name = g_strdup (local_param->name);
- newparam->value = g_strdup (local_param->value);
- negotiated_codec->optional_params = g_list_append (
- negotiated_codec->optional_params, newparam);
- }
+ if (!negotiated_param_list)
+ fs_codec_add_optional_parameter (negotiated_codec, local_param->name,
+ local_param->value);
}
return negotiated_codec;
@@ -239,11 +235,8 @@ sdp_is_compat_ilbc (GstCaps *rtp_caps, FsCodec *local_codec,
/* Let's add the local param to the negotiated codec if it does not exist in
* the remote codec */
if (!negotiated_param_list) {
- FsCodecParameter *newparam = g_new (FsCodecParameter, 1);
- newparam->name = g_strdup (local_param->name);
- newparam->value = g_strdup (local_param->value);
- negotiated_codec->optional_params = g_list_append (
- negotiated_codec->optional_params, newparam);
+ fs_codec_add_optional_parameter (negotiated_codec, local_param->name,
+ local_param->value);
if (!g_ascii_strcasecmp (local_param->name, "mode")) {
has_mode = TRUE;
@@ -267,13 +260,8 @@ sdp_is_compat_ilbc (GstCaps *rtp_caps, FsCodec *local_codec,
/* If we still can't find the mode anywhere, let's add it since it's
* mandatory and use default value of 30 ms */
- if (!has_mode) {
- FsCodecParameter *newparam = g_new0 (FsCodecParameter, 1);
- newparam->name = g_strdup ("mode");
- newparam->value = g_strdup ("30");
- negotiated_codec->optional_params = g_list_append (
- negotiated_codec->optional_params, newparam);
- }
+ if (!has_mode)
+ fs_codec_add_optional_parameter (negotiated_codec, "mode", "30");
return negotiated_codec;
diff --git a/python/pyfarsight.override b/python/pyfarsight.override
index 6034e82..a476ed6 100644
--- a/python/pyfarsight.override
+++ b/python/pyfarsight.override
@@ -343,7 +343,6 @@ _wrap_fs_codec_tp_setattr(PyObject *self, char *attr, PyObject *value)
else if (!strcmp (attr, "optional_params"))
{
GList *p;
- GList *newlist = NULL;
int i = 0;
if (value == NULL)
@@ -372,16 +371,6 @@ _wrap_fs_codec_tp_setattr(PyObject *self, char *attr, PyObject *value)
}
}
- for (i = 0; i < PySequence_Size (value); i++)
- {
- PyObject *item = PySequence_GetItem (value, i);
- FsCodecParameter *param = g_new0 (FsCodecParameter, 1);
-
- param->name = g_strdup (PyString_AsString (PyTuple_GetItem (item, 0)));
- param->value = g_strdup (PyString_AsString (PyTuple_GetItem (item, 1)));
- newlist = g_list_append (newlist, param);
- }
-
none:
for (p = g_list_first (codec->optional_params); p; p = g_list_next (p))
@@ -392,7 +381,17 @@ _wrap_fs_codec_tp_setattr(PyObject *self, char *attr, PyObject *value)
g_free (p->data);
}
g_list_free (codec->optional_params);
- codec->optional_params = newlist;
+
+ if (value == NULL)
+ return 0;
+
+ for (i = 0; i < PySequence_Size (value); i++)
+ {
+ PyObject *item = PySequence_GetItem (value, i);
+ fs_codec_add_optional_parameter(codec,
+ PyString_AsString (PyTuple_GetItem (item, 0)),
+ PyString_AsString (PyTuple_GetItem (item, 1)));
+ }
}
else
{
diff --git a/tests/check/base/fscodec.c b/tests/check/base/fscodec.c
index fc8c8c5..ca66659 100644
--- a/tests/check/base/fscodec.c
+++ b/tests/check/base/fscodec.c
@@ -89,22 +89,10 @@ static FsCodec *
init_codec_with_three_params (void)
{
FsCodec *codec = fs_codec_new (1, "aa", FS_MEDIA_TYPE_APPLICATION, 650);
- FsCodecParameter *p1 = NULL;
- p1 = g_new0 (FsCodecParameter, 1);
- p1->name = g_strdup ("aa1");
- p1->value = g_strdup ("bb1");
- codec->optional_params = g_list_append (codec->optional_params, p1);
-
- p1 = g_new0 (FsCodecParameter, 1);
- p1->name = g_strdup ("aa2");
- p1->value = g_strdup ("bb2");
- codec->optional_params = g_list_append (codec->optional_params, p1);
-
- p1 = g_new0 (FsCodecParameter, 1);
- p1->name = g_strdup ("aa3");
- p1->value = g_strdup ("bb3");
- codec->optional_params = g_list_append (codec->optional_params, p1);
+ fs_codec_add_optional_parameter (codec, "aa1", "bb1");
+ fs_codec_add_optional_parameter (codec, "aa2", "bb2");
+ fs_codec_add_optional_parameter (codec, "aa3", "bb3");
return codec;
}
@@ -115,14 +103,13 @@ _free_codec_param (gpointer param)
FsCodecParameter *p = param;
g_free (p->name);
g_free (p->value);
- g_free (p);
+ g_slice_free (FsCodecParameter, p);
}
GST_START_TEST (test_fscodec_are_equal_opt_params)
{
FsCodec *codec1;
FsCodec *codec2;
- FsCodecParameter *p1 = NULL;
codec1 = init_codec_with_three_params ();
codec2 = init_codec_with_three_params ();
@@ -134,10 +121,7 @@ GST_START_TEST (test_fscodec_are_equal_opt_params)
codec1->optional_params = g_list_remove (codec1->optional_params,
g_list_first (codec1->optional_params)->data);
- p1 = g_new0 (FsCodecParameter, 1);
- p1->name = g_strdup ("aa1");
- p1->value = g_strdup ("bb1");
- codec1->optional_params = g_list_append (codec1->optional_params, p1);
+ fs_codec_add_optional_parameter (codec1, "aa1", "bb1");
fail_unless (fs_codec_are_equal (codec1, codec2) == TRUE,
"Identical codecs (with params in different order 1) not recognized");
@@ -146,10 +130,7 @@ GST_START_TEST (test_fscodec_are_equal_opt_params)
codec1->optional_params = g_list_remove (codec1->optional_params,
g_list_first (codec1->optional_params)->data);
- p1 = g_new0 (FsCodecParameter, 1);
- p1->name = g_strdup ("aa2");
- p1->value = g_strdup ("bb2");
- codec1->optional_params = g_list_append (codec1->optional_params, p1);
+ fs_codec_add_optional_parameter (codec1, "aa2", "bb2");
fail_unless (fs_codec_are_equal (codec1, codec2) == TRUE,
"Identical codecs (with params in different order 2) not recognized");
diff --git a/tests/check/main/rtpcodecs.c b/tests/check/main/rtpcodecs.c
index 8ac8e25..c35dfc5 100644
--- a/tests/check/main/rtpcodecs.c
+++ b/tests/check/main/rtpcodecs.c
@@ -71,10 +71,7 @@ GST_START_TEST (test_rtpcodecs_local_codecs_config)
"PCMA",
FS_MEDIA_TYPE_AUDIO,
8000);
- FsCodecParameter *param = g_new0 (FsCodecParameter, 1);
- param->name = g_strdup ("p1");
- param->value = g_strdup ("v1");
- codec->optional_params = g_list_append (NULL, param);
+ fs_codec_add_optional_parameter (codec, "p1", "v1");
codecs = g_list_append (codecs, codec);
}
--
1.5.6.5
More information about the farsight-commits
mailing list