Prosody RTP processing: API: sm_vidmptx_config_codec_rfc3984

This function is deprecated.

Prototype Definition

int sm_vidmptx_config_codec_rfc3984(struct sm_vidmptx_codec_rfc3984_parms *codecp)

Parameters

*codecp
a structure of the following type:
typedef struct sm_vidmptx_codec_rfc3984_parms {
	tSMVidMPtxId vidmptx;					/* in */
	tSM_INT payload_type;					/* in */
	tSM_INT deaggregate;					/* in */
} SM_VIDMPTX_CODEC_RFC3984_PARMS;

Description

Configures an RFC 3984 packetiser, as defined in IETF RFC 3984, to the VidMP[tx] setting the payload type mapping to payload_type.

The packetiser accepts Audio Video Format (AVF) frames from the VidMP[tx] incoming datafeed as input, and composes RTP packets as output.

A newly configured packetiser will not emit any RTP packets until it receives an H.264 I-Frame in the incoming AVF stream. Waiting for an I-Frame attempts to ensure that the video, when rendered by the remote endpoint, starts cleanly and without the picture disruption which will occur were the rendering decoder to attempt to decode P-Frames (Predicted) without an I-Frame as reference.

The packetiser will emit H.264 parameter sets over RTP whenever received in the incoming AVF stream. In practice, this means it will emit parameter sets every I-frame. Although the parameter sets are unlikely to change often, transmitting them with each I-frame allows more robustness against packet loss, the ability for a remote endpoint to start decoding on any I-frame (i.e. mid-stream) and appears to be the norm amongst videophones.

Fields

vidmptx (Deprecated)
The VidMP[tx] to which to add the packetiser
payload_type (Deprecated)
The payload type identifer to use with this packetiser (see IETF RFC 3550 section 13). Supplying a value of -1 will remove any payload type configuration from the packetiser preventing its use.
deaggregate (Deprecated)
Allows behaviour with aggregation packets to be modified. If this parameter is set to 0, each aggregation packet received as input is transmitted as a whole. Otherwise, each such packet is split and one packet transmitted for each H.264 NALU. Setting this to a value other than 0 should not be necessary when transmitting to an endpoint which is properly RFC3984 compliant.

Returns

0 if call completed successfully, otherwise a standard error such as:


This function is part of the Prosody RTP processing API.