mediastreamer2 5.1.64
|
Data Structures | |
struct | _MSVideoConferenceParams |
Typedefs | |
typedef struct _MSVideoConferenceParams | MSVideoConferenceParams |
typedef struct _MSVideoConference | MSVideoConference |
typedef struct _MSVideoEndpoint | MSVideoEndpoint |
typedef struct _MSVideoConference MSVideoConference |
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 _MSVideoConferenceParams MSVideoConferenceParams |
Typedef to structure that holds conference parameters
typedef struct _MSVideoEndpoint MSVideoEndpoint |
The MSVideoEndpoint represents a participant in the conference. It can be constructed from an existing VideoStream object with ms_video_endpoint_get_from_stream().
void ms_video_conference_add_member | ( | MSVideoConference * | obj, |
MSVideoEndpoint * | ep | ||
) |
Adds a participant to the conference.
obj | the conference |
ep | the participant, represented as a MSVideoEndpoint object |
void ms_video_conference_destroy | ( | MSVideoConference * | obj | ) |
Destroys a conference.
obj | the conference All participants must have been removed before destroying the conference. |
const bctbx_list_t * ms_video_conference_get_members | ( | const MSVideoConference * | obj | ) |
Get the list of members, as MSVideoEndpoints.
obj | the conference |
const MSVideoConferenceParams * ms_video_conference_get_params | ( | MSVideoConference * | obj | ) |
Gets conference's current parameters.
obj | the conference. |
int ms_video_conference_get_size | ( | MSVideoConference * | obj | ) |
Returns the size (ie the number of participants) of a conference.
obj | the conference |
MSVideoEndpoint * ms_video_conference_get_video_placeholder_member | ( | const MSVideoConference * | obj | ) |
Get the video placeholder member, as MSVideoEndpoint.
obj | the conference |
MSVideoConference * ms_video_conference_new | ( | MSFactory * | factory, |
const MSVideoConferenceParams * | params | ||
) |
Creates a conference.
params | a MSVideoConferenceParams structure, containing conference parameters. |
void ms_video_conference_remove_member | ( | MSVideoConference * | obj, |
MSVideoEndpoint * | ep | ||
) |
Removes a participant from the conference.
obj | the conference |
ep | the participant, represented as a MSVideoEndpoint object |
void ms_video_conference_set_audio_conference | ( | MSVideoConference * | obj, |
MSAudioConference * | audioconf | ||
) |
Put an audio conference and a video conference in relationship. The audio conference will monitor the active speaker, and notify the video conference.
obj | the video conference |
obj | the audio conference |
void ms_video_conference_set_focus | ( | MSVideoConference * | obj, |
MSVideoEndpoint * | ep | ||
) |
Switch the focus of the video conf on a given member.
obj | the conference |
ep | the participant, represented as a MSVideoEndpoint object |
MSVideoEndpoint * ms_video_endpoint_get_from_stream | ( | VideoStream * | st, |
bool_t | is_remote | ||
) |
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.
For example:
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);
void * ms_video_endpoint_get_user_data | ( | const MSVideoEndpoint * | ep | ) |
Get the user pointer associated to the endpoint.
ep | the endpoint |
void ms_video_endpoint_release_from_stream | ( | MSVideoEndpoint * | obj | ) |
Destroys a MSVideoEndpoint that was created from a VideoStream with ms_video_endpoint_get_from_stream(). The VideoStream can then be destroyed if needed.
void ms_video_endpoint_set_user_data | ( | MSVideoEndpoint * | ep, |
void * | user_data | ||
) |
Associate a user pointer to the endpoint.
ep | the endpoint |
user_data | the user data |