WARNING: The online documentation has moved to https://docs.pjsip.org.

Visit the new documentation at https://docs.pjsip.org:

BLOG | DOCUMENTATION | GITHUB

Home --> Documentations --> PJMEDIA Reference

Video conference bridge implementation destination. More...

Data Structures

struct  pjmedia_vid_conf_setting
 
struct  pjmedia_vid_conf_port_info
 

Typedefs

typedef struct pjmedia_vid_conf pjmedia_vid_conf
 

Enumerations

enum  pjmedia_vid_conf_layout {
  PJMEDIA_VID_CONF_LAYOUT_DEFAULT ,
  PJMEDIA_VID_CONF_LAYOUT_SELECTIVE_FOCUS ,
  PJMEDIA_VID_CONF_LAYOUT_INTERVAL_FOCUS ,
  PJMEDIA_VID_CONF_LAYOUT_CUSTOM
}
 

Functions

void pjmedia_vid_conf_setting_default (pjmedia_vid_conf_setting *opt)
 
pj_status_t pjmedia_vid_conf_create (pj_pool_t *pool, const pjmedia_vid_conf_setting *opt, pjmedia_vid_conf **p_vid_conf)
 
pj_status_t pjmedia_vid_conf_destroy (pjmedia_vid_conf *vid_conf)
 
pj_status_t pjmedia_vid_conf_add_port (pjmedia_vid_conf *vid_conf, pj_pool_t *pool, pjmedia_port *port, const pj_str_t *name, void *opt, unsigned *p_slot)
 
pj_status_t pjmedia_vid_conf_remove_port (pjmedia_vid_conf *vid_conf, unsigned slot)
 
unsigned pjmedia_vid_conf_get_port_count (pjmedia_vid_conf *vid_conf)
 
pj_status_t pjmedia_vid_conf_enum_ports (pjmedia_vid_conf *vid_conf, unsigned slots[], unsigned *count)
 
pj_status_t pjmedia_vid_conf_get_port_info (pjmedia_vid_conf *vid_conf, unsigned slot, pjmedia_vid_conf_port_info *info)
 
pj_status_t pjmedia_vid_conf_connect_port (pjmedia_vid_conf *vid_conf, unsigned src_slot, unsigned sink_slot, void *opt)
 
pj_status_t pjmedia_vid_conf_disconnect_port (pjmedia_vid_conf *vid_conf, unsigned src_slot, unsigned sink_slot)
 
pj_status_t pjmedia_vid_conf_update_port (pjmedia_vid_conf *vid_conf, unsigned slot)
 

Detailed Description

This describes the video conference bridge implementation in PJMEDIA. The conference bridge provides powerful and efficient mechanism to route the video flow and combine multiple video data from multiple video sources.

Typedef Documentation

◆ pjmedia_vid_conf

Opaque type for video conference bridge.

Enumeration Type Documentation

◆ pjmedia_vid_conf_layout

Enumeration of video conference layout mode.

Enumerator
PJMEDIA_VID_CONF_LAYOUT_DEFAULT 

In mixing video from multiple sources, each source will occupy about the same size in the mixing result frame at all time.

PJMEDIA_VID_CONF_LAYOUT_SELECTIVE_FOCUS 

Warning: this is not implemented yet.

In mixing video from multiple sources, one specified participant (or source port) will be the focus (i.e: occupy bigger portion than the others).

PJMEDIA_VID_CONF_LAYOUT_INTERVAL_FOCUS 

Warning: this is not implemented yet.

In mixing video from multiple sources, one participant will be the focus at a time (i.e: occupy bigger portion than the others), and after some interval the focus will be shifted to another participant, so each participant will have the same focus duration.

PJMEDIA_VID_CONF_LAYOUT_CUSTOM 

Warning: this is not implemented yet.

In mixing video from multiple sources, each participant (or source port) will have specific layout configuration.

Function Documentation

◆ pjmedia_vid_conf_setting_default()

void pjmedia_vid_conf_setting_default ( pjmedia_vid_conf_setting opt)

Initialize video conference settings with default values.

Parameters
optThe settings to be initialized.

◆ pjmedia_vid_conf_create()

pj_status_t pjmedia_vid_conf_create ( pj_pool_t pool,
const pjmedia_vid_conf_setting opt,
pjmedia_vid_conf **  p_vid_conf 
)

Create a video conference bridge.

Parameters
poolThe memory pool.
optThe video conference settings.
p_vid_confPointer to receive the video conference bridge.
Returns
PJ_SUCCESS on success, or the appropriate error code.

◆ pjmedia_vid_conf_destroy()

pj_status_t pjmedia_vid_conf_destroy ( pjmedia_vid_conf vid_conf)

Destroy video conference bridge.

Parameters
vid_confThe video conference bridge.
Returns
PJ_SUCCESS on success.

◆ pjmedia_vid_conf_add_port()

pj_status_t pjmedia_vid_conf_add_port ( pjmedia_vid_conf vid_conf,
pj_pool_t pool,
pjmedia_port port,
const pj_str_t name,
void *  opt,
unsigned *  p_slot 
)

Add a media port to the video conference bridge.

Parameters
vid_confThe video conference bridge.
poolThe memory pool, the brige will create new pool based on this pool factory for this media port.
portThe media port to be added.
nameName to be assigned to the slot. If not set, it will be set to the media port name.
optThe option, for future use, currently this must be NULL.
p_slotPointer to receive the slot index of the port in the conference bridge.
Returns
PJ_SUCCESS on success, or the appropriate error code.

◆ pjmedia_vid_conf_remove_port()

pj_status_t pjmedia_vid_conf_remove_port ( pjmedia_vid_conf vid_conf,
unsigned  slot 
)

Remove a media port from the video conference bridge.

Parameters
vid_confThe video conference bridge.
slotThe media port's slot index to be removed.
Returns
PJ_SUCCESS on success, or the appropriate error code.

◆ pjmedia_vid_conf_get_port_count()

unsigned pjmedia_vid_conf_get_port_count ( pjmedia_vid_conf vid_conf)

Get number of ports currently registered in the video conference bridge.

Parameters
vid_confThe video conference bridge.
Returns
Number of ports currently registered to the video conference bridge.

◆ pjmedia_vid_conf_enum_ports()

pj_status_t pjmedia_vid_conf_enum_ports ( pjmedia_vid_conf vid_conf,
unsigned  slots[],
unsigned *  count 
)

Enumerate occupied slots in the video conference bridge.

Parameters
vid_confThe video conference bridge.
slotsArray of slot to be filled in.
countOn input, specifies the maximum number of slot in the array. On return, it will be filled with the actual number of slot.
Returns
PJ_SUCCESS on success.

◆ pjmedia_vid_conf_get_port_info()

pj_status_t pjmedia_vid_conf_get_port_info ( pjmedia_vid_conf vid_conf,
unsigned  slot,
pjmedia_vid_conf_port_info info 
)

Get port info.

Parameters
vid_confThe video conference bridge.
slotSlot index.
infoPointer to receive the info.
Returns
PJ_SUCCESS on success.

◆ pjmedia_vid_conf_connect_port()

pj_status_t pjmedia_vid_conf_connect_port ( pjmedia_vid_conf vid_conf,
unsigned  src_slot,
unsigned  sink_slot,
void *  opt 
)

Enable unidirectional video flow from the specified source slot to the specified sink slot.

Parameters
vid_confThe video conference bridge.
src_slotSource slot.
sink_slotSink slot.
optThe option, for future use, currently this must be NULL.
Returns
PJ_SUCCES on success.

◆ pjmedia_vid_conf_disconnect_port()

pj_status_t pjmedia_vid_conf_disconnect_port ( pjmedia_vid_conf vid_conf,
unsigned  src_slot,
unsigned  sink_slot 
)

Disconnect unidirectional video flow from the specified source to the specified sink slot.

Parameters
vid_confThe video conference bridge.
src_slotSource slot.
sink_slotSink slot.
Returns
PJ_SUCCESS on success.

◆ pjmedia_vid_conf_update_port()

pj_status_t pjmedia_vid_conf_update_port ( pjmedia_vid_conf vid_conf,
unsigned  slot 
)

Update or refresh port states from video port info. Some port may change its port info in the middle of a session, for example when a video stream decoder learns that incoming video size or frame rate has changed, video conference needs to be informed to update its internal states.

Parameters
vid_confThe video conference bridge.
slotThe media port's slot index to be updated.
Returns
PJ_SUCCESS on success, or the appropriate error code.

References PJ_END_DECL.

 


PJMEDIA small footprint Open Source media stack
Copyright (C) 2006-2008 Teluu Inc.