RTP Specific types

RTP Specific types

Synopsis

#include <gst/farsight/fs-rtp.h>

                    FsRtpHeaderExtension;
FsRtpHeaderExtension * fs_rtp_header_extension_new      (guint id,
                                                         FsStreamDirection direction,
                                                         const gchar *uri);
FsRtpHeaderExtension * fs_rtp_header_extension_copy     (FsRtpHeaderExtension *extension);
void                fs_rtp_header_extension_destroy     (FsRtpHeaderExtension *extension);
gboolean            fs_rtp_header_extension_are_equal   (FsRtpHeaderExtension *extension1,
                                                         FsRtpHeaderExtension *extension2);
GList *             fs_rtp_header_extension_list_copy   (GList *extensions);
void                fs_rtp_header_extension_list_destroy
                                                        (GList *extensions);
GList *             fs_rtp_header_extension_list_from_keyfile
                                                        (const gchar *filename,
                                                         FsMediaType media_type,
                                                         GError **error);
#define             FS_RTP_HEADER_EXTENSION_FORMAT
#define             FS_RTP_HEADER_EXTENSION_ARGS        (hdrext)

Description

Details

FsRtpHeaderExtension

typedef struct {
  guint id;
  FsStreamDirection direction;
  gchar *uri;
} FsRtpHeaderExtension;

Defines a RTP header extension with its negotiated identifier, direction and URI. They should only be created with fs_rtp_header_extension_new().

guint id;

The identifier of the RTP header extension

FsStreamDirection direction;

the direction in which this extension can be used

gchar *uri;

The URI that defines this extension

fs_rtp_header_extension_new ()

FsRtpHeaderExtension * fs_rtp_header_extension_new      (guint id,
                                                         FsStreamDirection direction,
                                                         const gchar *uri);

Creates a new FsRtpHeaderExtension

id :

The identifier of the RTP header extension

direction :

the direction in which this extension can be used

uri :

The URI that defines this extension

Returns :

a new FsRtpHeaderExtension

fs_rtp_header_extension_copy ()

FsRtpHeaderExtension * fs_rtp_header_extension_copy     (FsRtpHeaderExtension *extension);

Copies a FsRtpHeaderExtension

extension :

The RTP header extension definition to copy

Returns :

a new FsRtpHeaderExtension

fs_rtp_header_extension_destroy ()

void                fs_rtp_header_extension_destroy     (FsRtpHeaderExtension *extension);

Frees the passed FsRtpHeaderExtension

extension :

A RTP header extension to free

fs_rtp_header_extension_are_equal ()

gboolean            fs_rtp_header_extension_are_equal   (FsRtpHeaderExtension *extension1,
                                                         FsRtpHeaderExtension *extension2);

Compares two FsRtpHeaderExtension structures

extension1 :

The first FsRtpHeaderExtension

extension2 :

The second FsRtpHeaderExtension

Returns :

TRUE if they are identical, FALSE otherwise

fs_rtp_header_extension_list_copy ()

GList *             fs_rtp_header_extension_list_copy   (GList *extensions);

Does a deep copy of a GList of FsRtpHeaderExtension

extensions :

a GList of FsRtpHeaderExtension

Returns :

a new GList of FsRtpHeaderExtension

fs_rtp_header_extension_list_destroy ()

void                fs_rtp_header_extension_list_destroy
                                                        (GList *extensions);

Frees the passed GList of FsRtpHeaderExtension

extensions :

a GList of FsRtpHeaderExtension

fs_rtp_header_extension_list_from_keyfile ()

GList *             fs_rtp_header_extension_list_from_keyfile
                                                        (const gchar *filename,
                                                         FsMediaType media_type,
                                                         GError **error);

Reads the content of a GKeyFile of the following format into a GList of FsRtpHeaderExtension structures.

The groups have a format "rtp-hdrext:audio:XXX" or "rtp-hdrext:video:XXX" where XXX is a unique string (per media type).

The valid keys are:

  • id: a int between in the 1-255 and 4096-4351 ranges
  • uri: a URI describing the RTP Header Extension
  • direction (optional): To only send or receive a RTP Header Extension, possible values are "send", "receive", "none" or "both". Defaults to "both"

Example:

1
2
3
4
5
6
7
8
[rtp-hdrext:audio:a]
id=1
uri=urn:ietf:params:rtp-hdrext:toffset

[rtp-hdrext:audio:abc]
id=3
uri=urn:ietf:params:rtp-hdrext:ntp-64
direction=receive

filename :

Name of the GKeyFile to read the RTP Header Extensions from

media_type :

The media type for which to get header extensions

error :

location of a GError, or NULL if no error occured

Returns :

a GList of FsRtpHeaderExtension that must be freed with fs_rtp_header_extension_list_destroy()

FS_RTP_HEADER_EXTENSION_FORMAT

#define FS_RTP_HEADER_EXTENSION_FORMAT "%d: (%s) %s"

A format that can be used in printf like format strings to format a FsRtpHeaderExtension


FS_RTP_HEADER_EXTENSION_ARGS()

#define             FS_RTP_HEADER_EXTENSION_ARGS(hdrext)

Formats the codec in args for FS_RTP_HEADER_EXTENSION_ARGS

hdrext :

a FsRtpHeaderExtension