1
0
Fork 0
mirror of https://gitlab.gnome.org/GNOME/calls.git synced 2024-06-30 15:49:31 +00:00

sip: media-pipeline: Allow pausing pipeline

We want to pause a pipeline in the multi call scenario.
This commit is contained in:
Evangelos Ribeiro Tzaras 2022-02-28 11:24:33 +01:00
parent 3523403a0c
commit 86e76380c2
2 changed files with 18 additions and 4 deletions

View file

@ -822,11 +822,24 @@ calls_sip_media_pipeline_stop (CallsSipMediaPipeline *self)
void
calls_sip_media_pipeline_pause (CallsSipMediaPipeline *self)
calls_sip_media_pipeline_pause (CallsSipMediaPipeline *self,
gboolean pause)
{
g_return_if_fail (CALLS_IS_SIP_MEDIA_PIPELINE (self));
g_debug ("Pause/unpause media pipeline");
self->is_running = FALSE;
if (self->is_running != pause)
return;
g_debug ("%s media pipeline", self->is_running ?
"Pausing" :
"Unpausing");
gst_element_set_state (self->recv_pipeline, self->is_running ?
GST_STATE_PAUSED :
GST_STATE_PLAYING);
gst_element_set_state (self->send_pipeline, self->is_running ?
GST_STATE_PAUSED :
GST_STATE_PLAYING);
self->is_running = !self->is_running;
}

View file

@ -38,6 +38,7 @@ G_DECLARE_FINAL_TYPE (CallsSipMediaPipeline, calls_sip_media_pipeline, CALLS, SI
CallsSipMediaPipeline* calls_sip_media_pipeline_new (MediaCodecInfo *codec);
void calls_sip_media_pipeline_start (CallsSipMediaPipeline *self);
void calls_sip_media_pipeline_stop (CallsSipMediaPipeline *self);
void calls_sip_media_pipeline_pause (CallsSipMediaPipeline *self);
void calls_sip_media_pipeline_pause (CallsSipMediaPipeline *self,
gboolean pause);
G_END_DECLS