Top |
#define | FS_CODEC_ID_ANY |
#define | FS_CODEC_ID_DISABLE |
FsCodec * | fs_codec_new () |
void | fs_codec_destroy () |
FsCodec * | fs_codec_copy () |
gboolean | fs_codec_are_equal () |
GList * | fs_codec_list_from_keyfile () |
void | fs_codec_list_destroy () |
GList * | fs_codec_list_copy () |
gboolean | fs_codec_list_are_equal () |
gchar * | fs_codec_to_string () |
void | fs_codec_add_optional_parameter () |
void | fs_codec_remove_optional_parameter () |
FsCodecParameter * | fs_codec_get_optional_parameter () |
FsCodecParameter * | fs_codec_parameter_copy () |
void | fs_codec_parameter_free () |
void | fs_codec_add_feedback_parameter () |
FsFeedbackParameter * | fs_codec_get_feedback_parameter () |
void | fs_codec_remove_feedback_parameter () |
FsFeedbackParameter * | fs_feedback_parameter_copy () |
void | fs_feedback_parameter_free () |
#define | FS_CODEC_ARGS() |
const gchar * | fs_media_type_to_string () |
struct | FsCodec |
enum | FsMediaType |
struct | FsCodecParameter |
struct | FsFeedbackParameter |
#define | FS_CODEC_FORMAT |
An FsCodec is a way to exchange codec information between the client and Farstream. The information specified in this structure is usually representative of the codec information exchanged in the signaling.
#define FS_CODEC_ID_ANY (-1)
If the id of a FsCodec is FS_CODEC_ID_ANY, then it will be replaced with a dynamic payload type at runtime
#define FS_CODEC_ID_DISABLE (-2)
If the id of a FsCodec is FS_CODEC_ID_DISABLE, then this codec will not be used
FsCodec * fs_codec_new (int id
,const char *encoding_name
,FsMediaType media_type
,guint clock_rate
);
Allocates and initializes a FsCodec structure
id |
codec identifier, if RTP this should be based on IETF RTP payload types |
|
encoding_name |
Name of media type this encodes |
|
media_type |
FsMediaType for type of codec |
|
clock_rate |
The clock rate this codec encodes at, if applicable |
void
fs_codec_destroy (FsCodec *codec
);
Deletes a FsCodec structure and all its data. Is a no-op on NULL
codec
[skip]
gboolean fs_codec_are_equal (const FsCodec *codec1
,const FsCodec *codec2
);
Compare two codecs, it will declare two codecs to be identical even
if their optional parameters are in a different order. NULL
encoding names
are ignored.
GList * fs_codec_list_from_keyfile (const gchar *filename
,GError **error
);
Reads the content of a GKeyFile of the following format into a GList of FsCodec structures.
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[audio/codec1] clock-rate=8000 [audio/codec1:1] clock-rate=16000 [audio/codec2] one_param=QCIF another_param=WOW [video/codec3] wierd_param=42 feedback:nack/pli=1 feedback:tfrc= |
The GList of FsCodec or NULL
if the keyfile was empty or an error occured.
[element-type FsCodec][transfer full]
void
fs_codec_list_destroy (GList *codec_list
);
Deletes a list of FsCodec structures and the list itself.
Does nothing on NULL
lists.
[skip]
GList *
fs_codec_list_copy (const GList *codec_list
);
Copies a list of FsCodec structures.
gboolean fs_codec_list_are_equal (GList *list1
,GList *list2
);
Verifies if two glist of fscodecs are identical
gchar *
fs_codec_to_string (const FsCodec *codec
);
Returns a newly-allocated string representing the codec
void fs_codec_add_optional_parameter (FsCodec *codec
,const gchar *name
,const gchar *value
);
This function adds an new optional parameter to a FsCodec
codec |
The FsCodec to add the parameter to |
|
name |
The name of the optional parameter |
|
value |
The extra_params of the optional parameter |
void fs_codec_remove_optional_parameter (FsCodec *codec
,FsCodecParameter *param
);
Removes an optional parameter from a codec.
NULL param will do nothing.
FsCodecParameter * fs_codec_get_optional_parameter (FsCodec *codec
,const gchar *name
,const gchar *value
);
Finds the FsCodecParameter in the FsCodec that has the requested name
and, if not NULL
, the requested value
codec |
a FsCodec |
|
name |
The name of the parameter to search for |
|
value |
The value of the parameter to search for or |
[allow-none] |
FsCodecParameter *
fs_codec_parameter_copy (const FsCodecParameter *param
);
Makes a copy of a FsCodecParameter
void
fs_codec_parameter_free (FsCodecParameter *param
);
Frees a FsCodecParameter
void fs_codec_add_feedback_parameter (FsCodec *codec
,const gchar *type
,const gchar *subtype
,const gchar *extra_params
);
This function adds an new feedback parameter to a FsCodec
codec |
The FsCodec to add the parameter to |
|
type |
The type of the feedback parameter |
|
subtype |
The subtype of the feedback parameter |
|
extra_params |
The extra_params of the feeback parameter |
FsFeedbackParameter * fs_codec_get_feedback_parameter (FsCodec *codec
,const gchar *type
,const gchar *subtype
,const gchar *extra_params
);
Finds the FsFeedbackParameter in the FsCodec that has the requested subtype, type and extra_params. One of which must be non-NULL;
codec |
a FsCodec |
|
type |
The subtype of the parameter to search for or |
[allow-none] |
subtype |
The subtype of the parameter to search for or |
[allow-none] |
extra_params |
The extra_params of the parameter to search for
or |
[allow-none] |
void fs_codec_remove_feedback_parameter (FsCodec *codec
,GList *item
);
Removes an optional parameter from a codec.
NULL param will do nothing.
codec |
a FsCodec |
|
item |
a pointer to the GList element to remove that contains a FsFeedbackParameter. |
[transfer none][element-type FsFeedbackParameter] |
FsFeedbackParameter *
fs_feedback_parameter_copy (const FsFeedbackParameter *param
);
Makes a copy of a FsFeedbackParameter
void
fs_feedback_parameter_free (FsFeedbackParameter *param
);
Frees a FsFeedbackParameter
const gchar *
fs_media_type_to_string (FsMediaType media_type
);
Gives a user-printable string representing the media type
struct FsCodec { gint id; char *encoding_name; FsMediaType media_type; guint clock_rate; guint channels; guint minimum_reporting_interval; GList *optional_params; GList *feedback_params; };
This structure reprensents one codec that can be offered or received
gint |
numeric identifier for encoding, eg. PT for SDP |
|
the name of the codec |
||
FsMediaType |
type of media this codec is for |
|
guint |
clock rate of this stream |
|
guint |
Number of channels codec should decode |
|
guint |
The minimum interval between two RTCP reports, If it is not specified (G_MAXUINT), it is up to the protocol to decide (it is 5 seconds for RTP). |
|
GList * |
key pairs of param name to param data. |
[element-type FsCodecParameter] |
GList * |
key triplets of feedbck param type, subtype and extra string that is supported for this codec. |
[element-type FsFeedbackParameter] |
Enum used to signify the media type of a codec or stream.
A media type that encodes audio. |
||
A media type that encodes video. |
||
A media type for application data. |
||
Largest valid FsMediaType |
struct FsCodecParameter { gchar *name; gchar *value; };
Used to store arbitary parameters for a codec
struct FsFeedbackParameter { gchar *type; gchar *subtype; gchar *extra_params; };
Use to store feedback parameters