|  |  |  | Farstream Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | ||||
#include <farstream/fs-conference.h> struct FsCodec; enum FsMediaType; struct FsCodecParameter; struct FsFeedbackParameter; #define FS_CODEC_ID_ANY #define FS_CODEC_ID_DISABLE FsCodec * fs_codec_new (int id,const char *encoding_name,FsMediaType media_type,guint clock_rate); void fs_codec_destroy (FsCodec *codec); FsCodec * fs_codec_copy (const FsCodec *codec); gboolean fs_codec_are_equal (const FsCodec *codec1,const FsCodec *codec2); GList * fs_codec_list_from_keyfile (const gchar *filename,GError **error); void fs_codec_list_destroy (GList *codec_list); GList * fs_codec_list_copy (const GList *codec_list); gboolean fs_codec_list_are_equal (GList *list1,GList *list2); gchar * fs_codec_to_string (const FsCodec *codec); void fs_codec_add_optional_parameter (FsCodec *codec,const gchar *name,const gchar *value); void fs_codec_remove_optional_parameter (FsCodec *codec,FsCodecParameter *param); FsCodecParameter * fs_codec_get_optional_parameter (FsCodec *codec,const gchar *name,const gchar *value); FsCodecParameter * fs_codec_parameter_copy (const FsCodecParameter *param); void fs_codec_parameter_free (FsCodecParameter *param); void fs_codec_add_feedback_parameter (FsCodec *codec,const gchar *type,const gchar *subtype,const gchar *extra_params); FsFeedbackParameter * fs_codec_get_feedback_parameter (FsCodec *codec,const gchar *type,const gchar *subtype,const gchar *extra_params); void fs_codec_remove_feedback_parameter (FsCodec *codec,GList *item); FsFeedbackParameter * fs_feedback_parameter_copy (const FsFeedbackParameter *param); void fs_feedback_parameter_free (FsFeedbackParameter *param); #define FS_CODEC_FORMAT #define FS_CODEC_ARGS (codec) const gchar * fs_media_type_to_string (FsMediaType media_type);
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.
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] | 
typedef enum {
  FS_MEDIA_TYPE_AUDIO,
  FS_MEDIA_TYPE_VIDEO,
  FS_MEDIA_TYPE_LAST = FS_MEDIA_TYPE_VIDEO
} FsMediaType;
Enum used to signify the media type of a codec or stream.
| A media type that encodes audio. | |
| A media type that encodes video. | |
| 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
#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
| 
 | codec identifier, if RTP this should be based on IETF RTP payload types | 
| 
 | Name of media type this encodes | 
| 
 | FsMediaType for type of codec | 
| 
 | The clock rate this codec encodes at, if applicable | 
| Returns : | A newly allocated FsCodec | 
FsCodec *           fs_codec_copy                       (const FsCodec *codec);
Copies a FsCodec structure.
| 
 | codec to copy | 
| Returns : | a copy of the codec | 
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= | 
| 
 | Name of the GKeyFile to read the codecs parameters from | 
| 
 | location of a GError, or NULL if no error occured | 
| Returns : | The GList of FsCodec or NULLif the keyfile was empty or an error occured. [element-type FsCodec][transfer full] | 
GList *             fs_codec_list_copy                  (const GList *codec_list);
Copies a list of FsCodec structures.
| 
 | a GList of FsCodec to copy. [transfer none][element-type FsCodec] | 
| Returns : | The new list. [element-type FsCodec][transfer full] | 
gboolean fs_codec_list_are_equal (GList *list1,GList *list2);
Verifies if two glist of fscodecs are identical
| 
 | a GList of FsCodec. [element-type FsCodec] | 
| 
 | a GList of FsCodec. [element-type FsCodec] | 
| Returns : | TRUEif they are identical,FALSEotherwise | 
gchar *             fs_codec_to_string                  (const FsCodec *codec);
Returns a newly-allocated string representing the codec
| 
 | A farstream codec | 
| Returns : | the newly-allocated string | 
void fs_codec_add_optional_parameter (FsCodec *codec,const gchar *name,const gchar *value);
This function adds an new optional parameter to a FsCodec
| 
 | The FsCodec to add the parameter to | 
| 
 | The name of the optional parameter | 
| 
 | 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.
| 
 | a FsCodec | 
| 
 | a pointer to the FsCodecParameter to remove | 
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
| 
 | a FsCodec | 
| 
 | The name of the parameter to search for | 
| 
 | The value of the parameter to search for or NULLfor any value | 
| Returns : | (transfer none) the FsCodecParameter from the FsCodec or NULL | 
FsCodecParameter *  fs_codec_parameter_copy             (const FsCodecParameter *param);
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
| 
 | The FsCodec to add the parameter to | 
| 
 | The type of the feedback parameter | 
| 
 | The subtype of the feedback parameter | 
| 
 | 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;
| 
 | a FsCodec | 
| 
 | The subtype of the parameter to search for or NULLfor any type | 
| 
 | The subtype of the parameter to search for or NULLfor any subtype | 
| 
 | The extra_params of the parameter to search for or NULLfor
any extra_params | 
| Returns : | the FsFeedbackParameter from the FsCodec or NULL | 
void fs_codec_remove_feedback_parameter (FsCodec *codec,GList *item);
Removes an optional parameter from a codec.
NULL param will do nothing.
| 
 | a FsCodec | 
| 
 | 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);
#define FS_CODEC_FORMAT "%d: %s %s clock:%d channels:%d params:%p"
A format that can be used in printf like format strings to format a FsCodec
#define FS_CODEC_ARGS(codec)
Formats the codec in args for FS_CODEC_FORMAT
| 
 | a FsCodec | 
const gchar *       fs_media_type_to_string             (FsMediaType media_type);
Gives a user-printable string representing the media type
| 
 | A media type | 
| Returns : | a static string representing the media type |