1
0
Fork 0
mirror of https://gitlab.gnome.org/GNOME/calls.git synced 2025-01-05 19:15:32 +00:00

sip-media: enable echo cancellation

by setting "filter.want" to "echo-cancel" for the pulsesink and pulsesrc
GStElement's.
This commit is contained in:
Evangelos Ribeiro Tzaras 2021-03-15 16:36:05 +01:00
parent 8a6f1bb203
commit 19e7f8f119

View file

@ -326,6 +326,7 @@ initable_init (GInitable *initable,
GstCaps *caps;
g_autofree char *caps_string = NULL;
GstPad *srcpad, *sinkpad;
GstStructure *props = NULL;
/* could also use autoaudiosink instead of pulsesink */
self->audiosink = gst_element_factory_make ("pulsesink", "sink");
@ -423,6 +424,24 @@ initable_init (GInitable *initable,
return FALSE;
}
/* enable echo cancellation and set buffer size to 40ms */
props = gst_structure_new ("props",
"media.role", G_TYPE_STRING, "phone",
"filter.want", G_TYPE_STRING, "echo-cancel",
NULL);
g_object_set (self->audiosink,
"buffer-time", (gint64) 40000,
"stream-properties", props,
NULL);
g_object_set (self->audiosrc,
"buffer-time", (gint64) 40000,
"stream-properties", props,
NULL);
gst_structure_free (props);
gst_bin_add (GST_BIN (self->send_pipeline), self->send_rtpbin);
gst_bin_add (GST_BIN (self->recv_pipeline), self->recv_rtpbin);