![]() |
libgpac
Documentation of the core library of GPAC
|
RTPStreamer object. More...
Collaboration diagram for RTP Streamer:Data Structures | |
| struct | GF_RTPStreamerConfig |
Typedefs | |
| typedef void(* | gf_rtcp_rr_callback) (void *cbk, u32 ssrc, u32 rtt_ms, u64 jitter_rtp_ts, u32 loss_rate) |
Functions | |
| GF_RTPStreamer * | gf_rtp_streamer_new (u32 streamType, u32 codecid, u32 timeScale, const char *ip_dest, u16 port, u32 MTU, u8 TTL, const char *ifce_addr, u32 flags, const u8 *dsi, u32 dsi_len, u32 PayloadType, u32 sample_rate, u32 nb_ch, Bool is_crypted, u32 IV_length, u32 KI_length, u32 MinSize, u32 MaxSize, u32 avgTS, u32 maxDTSDelta, u32 const_dur, u32 bandwidth, u32 max_ptime, u32 au_sn_len, Bool for_rtsp) |
| RTP Streamer constructor with extended parameters. | |
| GF_RTPStreamer * | gf_rtp_streamer_new_ex (const GF_RTPStreamerConfig *cfg, Bool for_rtsp) |
| RTP Streamer constructor with extended parameters. | |
| void | gf_rtp_streamer_del (GF_RTPStreamer *streamer) |
| RTP file streamer destructor. | |
| GF_Err | gf_rtp_streamer_append_sdp (GF_RTPStreamer *rtp, u16 ESID, const u8 *dsi, u32 dsi_len, char *KMS_URI, char **out_sdp_buffer) |
| gets the SDP file | |
| GF_Err | gf_rtp_streamer_append_sdp_extended (GF_RTPStreamer *rtp, u16 ESID, const u8 *dsi, u32 dsi_len, const u8 *dsi_enh, u32 dsi_enh_len, char *KMS_URI, u32 width, u32 height, u32 tw, u32 th, s32 tx, s32 ty, s16 tl, u32 nb_channels, Bool for_rtsp, char **out_sdp_buffer) |
| gets the SDP file | |
| GF_Err | gf_rtp_streamer_send_au (GF_RTPStreamer *rtp, u8 *data, u32 size, u64 cts, u64 dts, Bool is_rap) |
| GF_Err | gf_rtp_streamer_send_au_with_sn (GF_RTPStreamer *rtp, u8 *data, u32 size, u64 cts, u64 dts, Bool is_rap, u32 inc_au_sn) |
| GF_Err | gf_rtp_streamer_send_data (GF_RTPStreamer *streamer, u8 *data, u32 size, u32 fullsize, u64 cts, u64 dts, Bool is_rap, Bool au_start, Bool au_end, u32 au_sn, u32 duration, u32 sampleDescriptionIndex) |
| char * | gf_rtp_streamer_format_sdp_header (char *app_name, char *ip_dest, char *session_name, char *iod64) |
| void | gf_rtp_streamer_disable_auto_rtcp (GF_RTPStreamer *streamer) |
| GF_Err | gf_rtp_streamer_send_bye (GF_RTPStreamer *streamer) |
| GF_Err | gf_rtp_streamer_send_rtcp (GF_RTPStreamer *streamer, Bool force_ts, u32 rtp_ts, u32 force_ntp_type, u32 ntp_sec, u32 ntp_frac) |
| u8 | gf_rtp_streamer_get_payload_type (GF_RTPStreamer *streamer) |
| GF_Err | gf_rtp_streamer_init_rtsp (GF_RTPStreamer *streamer, u32 path_mtu, GF_RTSPTransport *tr, const char *ifce_addr) |
| u16 | gf_rtp_streamer_get_next_rtp_sn (GF_RTPStreamer *streamer) |
| GF_Err | gf_rtp_streamer_set_interleave_callbacks (GF_RTPStreamer *streamer, GF_Err(*RTP_TCPCallback)(void *cbk1, void *cbk2, Bool is_rtcp, u8 *pck, u32 pck_size), void *cbk1, void *cbk2) |
| GF_Err | gf_rtp_streamer_read_rtcp (GF_RTPStreamer *streamer, gf_rtcp_rr_callback rtcp_cbk, void *udta) |
| u32 | gf_rtp_streamer_get_ssrc (GF_RTPStreamer *streamer) |
| u32 | gf_rtp_streamer_get_timescale (GF_RTPStreamer *streamer) |
| u32 | gf_rtp_streamer_get_codecid (GF_RTPStreamer *streamer) |
RTPStreamer object.
This section documents the RTP streamer object of the GPAC framework.
| struct GF_RTPStreamerConfig |
RTP streamer configuration
| Data Fields | ||
|---|---|---|
| u32 | streamType | type of the stream (GF_STREAM_* as defined in <gpac/constants.h> |
| u32 | codecid | codec ID for the stream (GF_CODEC_* as defined in <gpac/constants.h>) |
| u32 | timeScale | unit to express timestamps of access units |
| const char * | ip_dest | IP address of the destination. |
| u16 | port | port number of the destination |
| u32 | MTU | Maximum Transmission Unit size to use. |
| u8 | TTL | Time To Leave. |
| const char * | ifce_addr | IP of the local interface to use (may be NULL) |
| u32 | flags | set of RTP flags passed to the streamer |
| const u8 * | dsi | MPEG-4 Decoder Specific Info for the stream. |
| u32 | dsi_len | length of the dsi parameter |
| u32 | PayloadType | RTP payload type. |
| u32 | sample_rate | audio sample rate |
| u32 | nb_ch | number of channels in audio streams |
| Bool | is_crypted | indicating if the stream is crypted |
| u32 | IV_length | length of the Initialisation Vector used for ISMA encryption |
| u32 | KI_length | length of the key index |
| u32 | MinSize | minimum AU size, 0 if unknown |
| u32 | MaxSize | |
| u32 | avgTS | average TS delta in timeScale, 0 if unknown |
| u32 | maxDTSDelta | maximum DTS delta in timeScale, 0 if unknown |
| u32 | const_dur | constant duration in timeScale, 0 if unknown |
| u32 | bandwidth | bandwidth, 0 if unknown |
| u32 | max_ptime | maximum packet duration in timeScale, 0 if unknown |
| u32 | au_sn_len | length of the MPEG-4 SL descriptor AU sequence number field, 0 if unknown |
| const char * | netcap_id | ID of netcap configuration to use, may be null (see gpac -h netcap) |
| typedef void(* gf_rtcp_rr_callback) (void *cbk, u32 ssrc, u32 rtt_ms, u64 jitter_rtp_ts, u32 loss_rate) |
callback function for procesing RTCP receiver reports
| cbk | user data passed to gf_rtp_streamer_read_rtcp |
| ssrc | ssrc for this report, 0 if same as ssrc of channel |
| rtt_ms | round-trip time estimate in ms |
| jitter_rtp_ts | inter-arrival jitter in RTP channel timescale |
| loss_rate | loss rate in per-thousands |
| GF_RTPStreamer * gf_rtp_streamer_new | ( | u32 | streamType, |
| u32 | codecid, | ||
| u32 | timeScale, | ||
| const char * | ip_dest, | ||
| u16 | port, | ||
| u32 | MTU, | ||
| u8 | TTL, | ||
| const char * | ifce_addr, | ||
| u32 | flags, | ||
| const u8 * | dsi, | ||
| u32 | dsi_len, | ||
| u32 | PayloadType, | ||
| u32 | sample_rate, | ||
| u32 | nb_ch, | ||
| Bool | is_crypted, | ||
| u32 | IV_length, | ||
| u32 | KI_length, | ||
| u32 | MinSize, | ||
| u32 | MaxSize, | ||
| u32 | avgTS, | ||
| u32 | maxDTSDelta, | ||
| u32 | const_dur, | ||
| u32 | bandwidth, | ||
| u32 | max_ptime, | ||
| u32 | au_sn_len, | ||
| Bool | for_rtsp | ||
| ) |
RTP Streamer constructor with extended parameters.
Constructs a new RTP file streamer
| streamType | type of the stream (GF_STREAM_* as defined in <gpac/constants.h>) |
| codecid | codec ID for the stream (GF_CODEC_* as defined in <gpac/constants.h>) |
| timeScale | unit to express timestamps of access units |
| ip_dest | IP address of the destination |
| port | port number of the destination |
| MTU | Maximum Transmission Unit size to use |
| TTL | Time To Leave |
| ifce_addr | IP of the local interface to use (may be NULL) |
| flags | set of RTP flags passed to the streamer |
| dsi | MPEG-4 Decoder Specific Info for the stream |
| dsi_len | length of the dsi parameter |
| PayloadType | RTP payload type |
| sample_rate | audio sample rate |
| nb_ch | number of channels in audio streams |
| is_crypted | Boolean indicating if the stream is crypted |
| IV_length | length of the Initialisation Vector used for encryption |
| KI_length | length of the key index |
| MinSize | minimum AU size, 0 if unknown |
| MaxSize | maximum AU size, 0 if unknown |
| avgTS | average TS delta in timeScale, 0 if unknown |
| maxDTSDelta | maximum DTS delta in timeScale, 0 if unknown |
| const_dur | constant duration in timeScale, 0 if unknown |
| bandwidth | bandwidth, 0 if unknown |
| max_ptime | maximum packet duration in timeScale, 0 if unknown |
| au_sn_len | length of the MPEG-4 SL descriptor AU sequence number field, 0 if unknown |
| for_rtsp | indicates this is an RTP channel in an RTSP session, RTP channel will not be created, use gf_rtp_streamer_init_rtsp |
Here is the call graph for this function:
Here is the caller graph for this function:| GF_RTPStreamer * gf_rtp_streamer_new_ex | ( | const GF_RTPStreamerConfig * | cfg, |
| Bool | for_rtsp | ||
| ) |
RTP Streamer constructor with extended parameters.
Constructs a new RTP file streamer
| cfg | configuration of the streamer |
| for_rtsp | indicates this is an RTP channel in an RTSP session, RTP channel will not be created, use gf_rtp_streamer_init_rtsp |
Here is the call graph for this function:
Here is the caller graph for this function:| void gf_rtp_streamer_del | ( | GF_RTPStreamer * | streamer | ) |
RTP file streamer destructor.
Destructs an RTP file streamer
| streamer | the target RTP streamer |
Here is the call graph for this function:
Here is the caller graph for this function:| GF_Err gf_rtp_streamer_append_sdp | ( | GF_RTPStreamer * | rtp, |
| u16 | ESID, | ||
| const u8 * | dsi, | ||
| u32 | dsi_len, | ||
| char * | KMS_URI, | ||
| char ** | out_sdp_buffer | ||
| ) |
gets the SDP file
Gets the SDP asscoiated with all media in the streaming session (only media parts are returned)
| rtp | the target RTP streamer |
| ESID | The MPEG-4 elementary stream id of the stream to process |
| dsi | The decoder specific info data |
| dsi_len | length of the decoder specific info data |
| KMS_URI | URI of the Key Management System |
| out_sdp_buffer | location to the SDP buffer to allocate and fill |
Here is the call graph for this function:
Here is the caller graph for this function:| GF_Err gf_rtp_streamer_append_sdp_extended | ( | GF_RTPStreamer * | rtp, |
| u16 | ESID, | ||
| const u8 * | dsi, | ||
| u32 | dsi_len, | ||
| const u8 * | dsi_enh, | ||
| u32 | dsi_enh_len, | ||
| char * | KMS_URI, | ||
| u32 | width, | ||
| u32 | height, | ||
| u32 | tw, | ||
| u32 | th, | ||
| s32 | tx, | ||
| s32 | ty, | ||
| s16 | tl, | ||
| u32 | nb_channels, | ||
| Bool | for_rtsp, | ||
| char ** | out_sdp_buffer | ||
| ) |
gets the SDP file
Gets the SDP asscoiated with all media in the streaming session (only media parts are returned)
| rtp | the target RTP streamer |
| ESID | The MPEG-4 elementary stream id of the stream to process |
| dsi | decoder specific info data |
| dsi_len | length of the decoder specific info data |
| dsi_enh | enhancement layer decoder specific info data |
| dsi_enh_len | length of enhancement layer decoder specific info data |
| KMS_URI | URI of the Key Management System |
| width | video width |
| height | video height |
| tw | text window width |
| th | text window height |
| tx | text window horizontal offset |
| ty | text window vertical offset |
| tl | text window z-index |
| nb_channels | number of audio channels, 0 if unknown |
| for_rtsp | if GF_TRUE, produces the SDP for an RTSP describe (no port info) |
| out_sdp_buffer | location to the SDP buffer to allocate and fill |
defined(GPAC_DISABLE_ISOM) && !defined(GPAC_DISABLE_STREAMING)
Here is the call graph for this function:
Here is the caller graph for this function:| GF_Err gf_rtp_streamer_send_au | ( | GF_RTPStreamer * | rtp, |
| u8 * | data, | ||
| u32 | size, | ||
| u64 | cts, | ||
| u64 | dts, | ||
| Bool | is_rap | ||
| ) |
sends a full Access Unit over RTP
| rtp | the target RTP streamer |
| data | AU payload |
| size | AU payload size |
| cts | composition timestamp in timeScale unit |
| dts | decoding timestamp in timeScale unit |
| is_rap | indicates if the AU is a random access |
Here is the call graph for this function:
Here is the caller graph for this function:| GF_Err gf_rtp_streamer_send_au_with_sn | ( | GF_RTPStreamer * | rtp, |
| u8 * | data, | ||
| u32 | size, | ||
| u64 | cts, | ||
| u64 | dts, | ||
| Bool | is_rap, | ||
| u32 | inc_au_sn | ||
| ) |
sends a full Access Unit over RTP
| rtp | the target RTP streamer |
| data | AU payload |
| size | AU payload size |
| cts | composition timestamp in timeScale unit |
| dts | decoding timestamp in timeScale unit |
| is_rap | indicates if the AU is a random access |
| inc_au_sn | increments the AU sequence number by the given value before packetizing (used for MPEG-4 systems carousel) |
Here is the call graph for this function:
Here is the caller graph for this function:| GF_Err gf_rtp_streamer_send_data | ( | GF_RTPStreamer * | streamer, |
| u8 * | data, | ||
| u32 | size, | ||
| u32 | fullsize, | ||
| u64 | cts, | ||
| u64 | dts, | ||
| Bool | is_rap, | ||
| Bool | au_start, | ||
| Bool | au_end, | ||
| u32 | au_sn, | ||
| u32 | duration, | ||
| u32 | sampleDescriptionIndex | ||
| ) |
sends a full or partial Access Unit over RTP
| streamer | the target RTP streamer |
| data | AU payload |
| size | AU payload size |
| fullsize | the size of the complete AU |
| cts | composition timestamp in timeScale unit |
| dts | decoding timestamp in timeScale unit |
| is_rap | indicates if the AU is a random access |
| au_start | indicates if this chunk is the start of the AU |
| au_end | indicates if this chunk is the end of the AU |
| au_sn | indicates the AU sequence number |
| duration | indicates the AU duration |
| sampleDescriptionIndex | indicates the ISOBMFF sampleDescriptionIndex for this AU (needed for 3GPP timed text) |
Here is the call graph for this function:
Here is the caller graph for this function:| char * gf_rtp_streamer_format_sdp_header | ( | char * | app_name, |
| char * | ip_dest, | ||
| char * | session_name, | ||
| char * | iod64 | ||
| ) |
formats a generic SDP header
| app_name | application name, may be NULL |
| ip_dest | destination IP address, shall NOT be NULL |
| session_name | session name, may be NULL |
| iod64 | base64 encoded MPEG-4 IOD, may be NULL |
Here is the call graph for this function:
Here is the caller graph for this function:| void gf_rtp_streamer_disable_auto_rtcp | ( | GF_RTPStreamer * | streamer | ) |
disables RTCP keepalive
| streamer | the target RTP streamer |
Here is the caller graph for this function:| GF_Err gf_rtp_streamer_send_bye | ( | GF_RTPStreamer * | streamer | ) |
sends RTCP bye packet
| streamer | the target RTP streamer |
Here is the call graph for this function:
Here is the caller graph for this function:| GF_Err gf_rtp_streamer_send_rtcp | ( | GF_RTPStreamer * | streamer, |
| Bool | force_ts, | ||
| u32 | rtp_ts, | ||
| u32 | force_ntp_type, | ||
| u32 | ntp_sec, | ||
| u32 | ntp_frac | ||
| ) |
sends RTCP server report
| streamer | the target RTP streamer |
| force_ts | if GF_TRUE, forces using the indicatet ts |
| rtp_ts | the force RTP timestamp to use |
| force_ntp_type | if 0, computes NTP while sending. If 1 or 2, uses ntp_sec and ntp_frac for report. If 2, forces sending reports right away |
| ntp_sec | NTP seconds |
| ntp_frac | NTP fractional part |
Here is the call graph for this function:
Here is the caller graph for this function:| u8 gf_rtp_streamer_get_payload_type | ( | GF_RTPStreamer * | streamer | ) |
gets associated payload type
| streamer | the target RTP streamer |
Here is the caller graph for this function:| GF_Err gf_rtp_streamer_init_rtsp | ( | GF_RTPStreamer * | streamer, |
| u32 | path_mtu, | ||
| GF_RTSPTransport * | tr, | ||
| const char * | ifce_addr | ||
| ) |
initializes the RTP channel for RTSP setup
| streamer | the target RTP streamer |
| path_mtu | MTU path size in bytes |
| tr | the RTSP transport description |
| ifce_addr | IP address of network interface to use |
Here is the call graph for this function:
Here is the caller graph for this function:| u16 gf_rtp_streamer_get_next_rtp_sn | ( | GF_RTPStreamer * | streamer | ) |
gets the sequence number of the next RTP packet to be sent
| streamer | the target RTP streamer |
Here is the caller graph for this function:| GF_Err gf_rtp_streamer_set_interleave_callbacks | ( | GF_RTPStreamer * | streamer, |
| GF_Err(*)(void *cbk1, void *cbk2, Bool is_rtcp, u8 *pck, u32 pck_size) | RTP_TCPCallback, | ||
| void * | cbk1, | ||
| void * | cbk2 | ||
| ) |
sets callback functions for RTP over RTSP sending
| streamer | the target RTP streamer |
| RTP_TCPCallback | the callback function |
| cbk1 | first opaque data passed to callback function |
| cbk2 | second opaque data passed to callback function |
Here is the caller graph for this function:| GF_Err gf_rtp_streamer_read_rtcp | ( | GF_RTPStreamer * | streamer, |
| gf_rtcp_rr_callback | rtcp_cbk, | ||
| void * | udta | ||
| ) |
process rtcp reports if any
| streamer | the target RTP streamer |
| rtcp_cbk | callback function for RTCP reports |
| udta | user data to use for callback function |
Here is the call graph for this function:
Here is the caller graph for this function:| u32 gf_rtp_streamer_get_ssrc | ( | GF_RTPStreamer * | streamer | ) |
gets ssrc of this streamer
| streamer | the target RTP streamer |
Here is the caller graph for this function:| u32 gf_rtp_streamer_get_timescale | ( | GF_RTPStreamer * | streamer | ) |
gets rtp timescale of this streamer
| streamer | the target RTP streamer |
Here is the caller graph for this function:| u32 gf_rtp_streamer_get_codecid | ( | GF_RTPStreamer * | streamer | ) |
gets codecid of this streamer
| streamer | the target RTP streamer |
Here is the caller graph for this function: