From 6a99d9bf65aa5878cb409945ed2bdbdcb916d047 Mon Sep 17 00:00:00 2001
From: chenqiyang <1406175257@qq.com>
Date: 星期五, 02 九月 2022 14:56:40 +0800
Subject: [PATCH] 更新linphone sdk

---
 Shared.IOS.HDLLinphoneSDK/Shared.IOS.HDLLinphoneSDK/Library/mediastreamer2.framework/Headers/msconference.h |  211 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 211 insertions(+), 0 deletions(-)

diff --git a/Shared.IOS.HDLLinphoneSDK/Shared.IOS.HDLLinphoneSDK/Library/mediastreamer2.framework/Headers/msconference.h b/Shared.IOS.HDLLinphoneSDK/Shared.IOS.HDLLinphoneSDK/Library/mediastreamer2.framework/Headers/msconference.h
index 6d4e9f3..b9b0a65 100755
--- a/Shared.IOS.HDLLinphoneSDK/Shared.IOS.HDLLinphoneSDK/Library/mediastreamer2.framework/Headers/msconference.h
+++ b/Shared.IOS.HDLLinphoneSDK/Shared.IOS.HDLLinphoneSDK/Library/mediastreamer2.framework/Headers/msconference.h
@@ -31,11 +31,18 @@
  * @{
  */
 
+struct _MSAudioConference;
+struct _MSAudioEndpoint;
+
+typedef void (*MSAudioConferenceNotifyActiveTalker)(struct _MSAudioConference *, struct _MSAudioEndpoint *ep);
+
 /**
  * Structure that holds audio conference parameters
 **/
 struct _MSAudioConferenceParams{
 	int samplerate; /**< Conference audio sampling rate in Hz: 8000, 16000 ...*/
+	MSAudioConferenceNotifyActiveTalker active_talker_callback;
+	void *user_data;
 };
 
 /**
@@ -100,6 +107,14 @@
 **/
 MS2_PUBLIC void ms_audio_conference_remove_member(MSAudioConference *obj, MSAudioEndpoint *ep);
 
+
+/**
+ * Process events of the audio conference.
+ * Calling this method periodically (for example every 50 ms), is necessary
+ * to receive the active talker notifications to the callback set in the MSAudioConferenceParams.
+ * @param obj the conference
+**/
+MS2_PUBLIC void ms_audio_conference_process_events(MSAudioConference *obj);
 /**
  * Mutes or unmutes a participant.
  * 
@@ -168,6 +183,21 @@
 MS2_PUBLIC MSAudioEndpoint * ms_audio_endpoint_get_from_stream(AudioStream *st, bool_t is_remote);
 
 /**
+ * Associate a user pointer to the endpoint.
+ * @param ep the endpoint
+ * @param user_data the user data
+ */
+MS2_PUBLIC void ms_audio_endpoint_set_user_data(MSAudioEndpoint *ep, void *user_data);
+
+/**
+ * Get the user pointer associated to the endpoint.
+ * @param ep the endpoint
+ * @return the user data
+ */
+MS2_PUBLIC void * ms_audio_endpoint_get_user_data(const MSAudioEndpoint *ep);
+
+
+/**
  * Destroys a MSAudioEndpoint that was created from an AudioStream with ms_audio_endpoint_get_from_stream().
  * The AudioStream can then be destroyed if needed.
 **/
@@ -210,7 +240,188 @@
  * @}
  */
 
+/**
+ * @addtogroup mediastreamer2_video_conference
+ * @{
+ */
 
+/**
+ * Structure that holds audio conference parameters
+**/
+struct _MSVideoConferenceParams{
+	int min_switch_interval;
+	const char *codec_mime_type;
+};
+
+/**
+ * Typedef to structure that holds conference parameters
+**/
+typedef struct _MSVideoConferenceParams MSVideoConferenceParams;
+
+/**
+ * The MSVideoConference is the object representing a video conference.
+ *
+ * First, the conference has to be created with ms_video_conference_new(), with parameters supplied.
+ * Then, participants to the conference can be added with ms_video_conference_add_member().
+ * Participants can be removed from the conference with ms_video_conference_remove_member().
+ * The conference processing is performed in a new thread run by a MSTicker object, which is owned by the conference.
+ * When all participants are removed, the MSVideoConference object can then be safely destroyed with ms_video_conference_destroy().
+**/
+typedef struct _MSVideoConference MSVideoConference;
+
+
+/**
+ * The MSVideoEndpoint represents a participant in the conference.
+ * It can be constructed from an existing VideoStream object with
+ * ms_video_endpoint_get_from_stream().
+**/
+typedef struct _MSVideoEndpoint MSVideoEndpoint;
+
+
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Creates a conference.
+ * @param params a MSVideoConferenceParams structure, containing conference parameters.
+ * @returns a MSVideoConference object.
+**/
+MS2_PUBLIC MSVideoConference * ms_video_conference_new(MSFactory *factory, const MSVideoConferenceParams *params);
+
+/**
+ * Gets conference's current parameters.
+ * @param obj the conference.
+ * @returns a read-only pointer to the conference parameters.
+**/
+MS2_PUBLIC const MSVideoConferenceParams *ms_video_conference_get_params(MSVideoConference *obj);
+
+/**
+ * Adds a participant to the conference.
+ * @param obj the conference
+ * @param ep the participant, represented as a MSVideoEndpoint object
+**/
+MS2_PUBLIC void ms_video_conference_add_member(MSVideoConference *obj, MSVideoEndpoint *ep);
+
+/**
+ * Removes a participant from the conference.
+ * @param obj the conference
+ * @param ep the participant, represented as a MSVideoEndpoint object
+**/
+MS2_PUBLIC void ms_video_conference_remove_member(MSVideoConference *obj, MSVideoEndpoint *ep);
+
+
+/**
+ * Switch the focus of the video conf on a given member.
+ * @param obj the conference
+ * @param ep the participant, represented as a MSVideoEndpoint object
+ */
+MS2_PUBLIC void ms_video_conference_set_focus(MSVideoConference *obj, MSVideoEndpoint *ep);
+
+/**
+* Get the video placeholder member, as MSVideoEndpoint.
+* @param obj the conference
+* @return a MSVideoEndpoint object.
+*/
+MS2_PUBLIC MSVideoEndpoint *ms_video_conference_get_video_placeholder_member(const MSVideoConference *obj);
+
+/**
+ * Get the list of members, as MSVideoEndpoints.
+ * @param obj the conference
+ * @return a list of MSVideoEndpoint objects.
+ */
+MS2_PUBLIC const bctbx_list_t* ms_video_conference_get_members(const MSVideoConference *obj);
+
+/**
+ * Put an audio conference and a video conference in relationship.
+ * The audio conference will monitor the active speaker, and notify the video conference.
+ * @param obj the video conference
+ * @param obj the audio conference
+ */
+MS2_PUBLIC void ms_video_conference_set_audio_conference(MSVideoConference *obj, MSAudioConference *audioconf);
+
+/**
+ * Returns the size (ie the number of participants) of a conference.
+ * @param obj the conference
+**/
+MS2_PUBLIC int ms_video_conference_get_size(MSVideoConference *obj);
+
+/**
+ * Destroys a conference.
+ * @param obj the conference
+ * All participants must have been removed before destroying the conference.
+**/
+MS2_PUBLIC void ms_video_conference_destroy(MSVideoConference *obj);
+
+/**
+ * Creates an MSVideoEndpoint from an existing VideoStream.
+ *
+ * In order to create graphs for video processing of each participant, the VideoStream object is used, because
+ * this object already handles all the processing for encoding, decoding, etc...
+ *
+ * The construction of the participants depends whether it is a remote participant, that is somebody in the network
+ * sending and receiving video through RTP, or a local participant, that is somebody using the local camera to capture
+ * and local screen to display video.
+ *
+ * To create a remote participant, first create and start a VideoStream for the participant with video_stream_new() and
+ * video_stream_start() with NULL MSWebCam argument.
+ * Then, create a MSVideoEndpoint representing this participant by calling ms_video_endpoint_get_from_stream() with
+ * is_remote=TRUE.
+ *
+ * To create a local participant, first create and start a VideoStream with video_stream_new() and video_stream_start(), 
+ * with the correct MSWebCam to use.
+ * Arguments controlling RTP should be filled with placeholders value and will not be used for conferencing.
+ * Then, create a MSVideoEndpoint representing this local participant by calling ms_video_endpoint_get_from_stream() 
+ * with the video stream and is_remote=FALSE.<br>
+ * For example:<br>
+ * <PRE>
+ * VideoStream *st=video_stream_new(65000,65001,FALSE);
+ * video_stream_start(st, conf->local_dummy_profile,
+ *				"127.0.0.1",
+ *				65000,
+ *				"127.0.0.1",
+ *				65001,
+ *				0,
+ *				40,
+ *				webcam
+ *				);
+ * MSVideoEndpoint *local_endpoint=ms_video_endpoint_get_from_stream(st,FALSE);
+ * </PRE>
+**/
+MS2_PUBLIC MSVideoEndpoint * ms_video_endpoint_get_from_stream(VideoStream *st, bool_t is_remote);
+
+
+/**
+ * Associate a user pointer to the endpoint.
+ * @param ep the endpoint
+ * @param user_data the user data
+ */
+MS2_PUBLIC void ms_video_endpoint_set_user_data(MSVideoEndpoint *ep, void *user_data);
+
+/**
+ * Get the user pointer associated to the endpoint.
+ * @param ep the endpoint
+ * @return the user data
+ */
+MS2_PUBLIC void * ms_video_endpoint_get_user_data(const MSVideoEndpoint *ep);
+
+
+/**
+ * Destroys a MSVideoEndpoint that was created from a VideoStream with ms_video_endpoint_get_from_stream().
+ * The VideoStream can then be destroyed if needed.
+**/
+MS2_PUBLIC void ms_video_endpoint_release_from_stream(MSVideoEndpoint *obj);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/**
+ * @}
+ */
 
 #endif
 

--
Gitblit v1.8.0