return FALSE;
}
+#ifdef TEST_EXT_RENDERER
+static void rendercb(void *data, const MSPicture *local, const MSPicture *remote){
+ ms_message("rendercb, local buffer=%p, remote buffer=%p",
+ local ? local->planes[0] : NULL, remote? remote->planes[0] : NULL);
+}
+#endif
+
void linphone_core_init_media_streams(LinphoneCore *lc, LinphoneCall *call){
SalMediaDescription *md=call->localdesc;
lc->audiostream=audio_stream_new(md->streams[0].port,linphone_core_ipv6_enabled(lc));
rtp_session_set_transports(lc->audiostream->session,lc->a_rtp,lc->a_rtcp);
#ifdef VIDEO_ENABLED
- if ((lc->video_conf.display || lc->video_conf.capture) && md->streams[1].port>0)
+ if ((lc->video_conf.display || lc->video_conf.capture) && md->streams[1].port>0){
lc->videostream=video_stream_new(md->streams[1].port,linphone_core_ipv6_enabled(lc));
+#ifdef TEST_EXT_RENDERER
+ video_stream_set_render_callback(lc->videostream,rendercb,NULL);
+#endif
+ }
#else
lc->videostream=NULL;
#endif
if (sndcard) ms_snd_card_set_level(sndcard,MS_SND_CARD_PLAYBACK,level);
}
-
+/**
+ * Sets call playback gain in db
+ *
+ * @ingroup media_parameters
+**/
void linphone_core_set_soft_play_level(LinphoneCore *lc, float level){
float gain=level;
lc->sound_conf.soft_play_lev=level;
ms_filter_call_method(st->volrecv,MS_VOLUME_SET_DB_GAIN,&gain);
}else ms_warning("Could not apply gain: gain control wasn't activated.");
}
+
+/**
+ * Returns call playback gain in db
+ *
+ * @ingroup media_parameters
+**/
float linphone_core_get_soft_play_level(LinphoneCore *lc) {
float gain=0;
AudioStream *st=lc->audiostream;
if (st->volrecv){
- ms_filter_call_method(st->volrecv,MS_VOLUME_GET,&gain);
+ ms_filter_call_method(st->volrecv,MS_VOLUME_GET_GAIN_DB,&gain);
}else ms_warning("Could not get gain: gain control wasn't activated.");
return gain;