Group PJMEDIA_VIDEO_PORT

group PJMEDIA_VIDEO_PORT

Video media port.

Typedefs

typedef struct pjmedia_vid_port pjmedia_vid_port

Opaque data type for video port.

Functions

void pjmedia_vid_port_param_default(pjmedia_vid_port_param *prm)

Initialize the parameter with the default values. Note that this typically would only fill the structure to zeroes unless they have different default values.

Parameters:

prm – The parameter.

pj_status_t pjmedia_vid_port_create(pj_pool_t *pool, const pjmedia_vid_port_param *prm, pjmedia_vid_port **p_vp)

Create a video port with the specified parameter. When video port opens the video stream with different parameter than the requested values in the prm.vidparam argument, it will automatically do the necessary conversion.

Parameters:
  • pool – Pool to allocate memory from.

  • prm – The video port parameter.

  • p_vp – Pointer to receive the result.

Returns:

PJ_SUCCESS if video port has been created successfully, or the appropriate error code.

void pjmedia_vid_port_set_cb(pjmedia_vid_port *vid_port, const pjmedia_vid_dev_cb *cb, void *user_data)

Set the callbacks of the video port’s underlying video stream.

Parameters:
  • vid_port – The video port.

  • cb – Pointer to structure containing video stream callbacks.

  • user_data – Arbitrary user data, which will be given back in the callbacks.

pjmedia_vid_dev_stream *pjmedia_vid_port_get_stream(pjmedia_vid_port *vid_port)

Return the underlying video stream of the video port.

Parameters:

vid_port – The video port.

Returns:

The video stream.

pjmedia_port *pjmedia_vid_port_get_passive_port(pjmedia_vid_port *vid_port)

Return the (passive) media port of the video port. This operation is only valid for video ports created with passive interface selected. Retrieving the media port for active video ports may raise an assertion.

Parameters:

vid_port – The video port.

Returns:

The media port instance, or NULL.

pjmedia_clock_src *pjmedia_vid_port_get_clock_src(pjmedia_vid_port *vid_port)

Get a clock source from the video port.

Parameters:

vid_port – The video port.

Returns:

The clock source.

pj_status_t pjmedia_vid_port_set_clock_src(pjmedia_vid_port *vid_port, pjmedia_clock_src *clocksrc)

Set a clock source for the video port.

Parameters:
  • vid_port – The video port.

  • clocksrc – The clock source.

Returns:

PJ_SUCCESS on success or the appropriate error code.

pj_status_t pjmedia_vid_port_subscribe_event(pjmedia_vid_port *vid_port, pjmedia_port *port)

Subscribe media event notifications from the specified media port. Sample use case is that renderer video port needs to monitor stream port events so renderer can adjust its param whenever stream port detects format change.

Parameters:
  • vid_port – The video port.

  • port – The media port whose events to be monitored.

Returns:

PJ_SUCCESS on success or the appropriate error code.

pj_status_t pjmedia_vid_port_unsubscribe_event(pjmedia_vid_port *vid_port, pjmedia_port *port)

Unsubscribe media event notifications from the specified media port.

Parameters:
  • vid_port – The video port.

  • port – The media port whose events to be unsubscribed.

Returns:

PJ_SUCCESS on success or the appropriate error code.

pj_status_t pjmedia_vid_port_connect(pjmedia_vid_port *vid_port, pjmedia_port *port, pj_bool_t destroy)

Connect the video port to a downstream (slave) media port. This operation is only valid for video ports created with active interface selected. Connecting a passive video port may raise an assertion.

Parameters:
  • vid_port – The video port.

  • port – A downstream media port to be connected to this video port.

  • destroy – Specify if the downstream media port should also be destroyed by this video port when the video port is destroyed.

Returns:

PJ_SUCCESS on success or the appropriate error code.

pj_status_t pjmedia_vid_port_disconnect(pjmedia_vid_port *vid_port)

Disconnect the video port from its downstream (slave) media port, if any. This operation is only valid for video ports created with active interface selected, and assertion may be triggered if this is invoked on a passive video port.

Parameters:

vid_port – The video port.

Returns:

PJ_SUCCESS on success or the appropriate error code.

pjmedia_port *pjmedia_vid_port_get_connected_port(pjmedia_vid_port *vid_port)

Retrieve the media port currently connected as downstream media port of the specified video port. This operation is only valid for video ports created with active interface selected, and assertion may be triggered if this is invoked on a passive video port.

Parameters:

vid_port – The video port.

Returns:

Media port currently connected to the video port, if any.

pj_status_t pjmedia_vid_port_start(pjmedia_vid_port *vid_port)

Start the video port.

Parameters:

vid_port – The video port.

Returns:

PJ_SUCCESS on success or the appropriate error code.

pj_bool_t pjmedia_vid_port_is_running(pjmedia_vid_port *vid_port)

Query whether the video port has been started.

Parameters:

vid_port – The video port.

Returns:

PJ_TRUE if the video port has been started.

pj_status_t pjmedia_vid_port_stop(pjmedia_vid_port *vid_port)

Stop the video port.

Parameters:

vid_port – The video port.

Returns:

PJ_SUCCESS on success or the appropriate error code.

void pjmedia_vid_port_destroy(pjmedia_vid_port *vid_port)

Destroy the video port, along with its video stream. If the video port is an active one, this may also destroy the downstream media port, if the destroy flag is set when the media port is connected.

Parameters:

vid_port – The video port.

struct pjmedia_vid_port_param
#include <vid_port.h>

This structure describes the parameters to create a video port

Public Members

pjmedia_vid_dev_param vidparam

Video stream parameter.

pj_bool_t active

Specify whether the video port should use active or passive interface. If active interface is selected, the video port will perform as a media clock, automatically calls pjmedia_port_get_frame() and pjmedia_port_put_frame() of its slave port (depending on the direction that is specified when opening the video stream). If passive interface is selected, application can retrieve the media port of this video port by calling pjmedia_vid_port_get_passive_port(), and subsequently calls pjmedia_port_put_frame() or pjmedia_port_get_frame() to that media port.

Default: PJ_TRUE