media-gst.h File Reference

Media API. More...

#include "media.h"
#include "mediamanager.h"
#include <gst/gst.h>

Include dependency graph for media-gst.h:

Go to the source code of this file.

Defines

#define PURPLE_TYPE_MEDIA_ELEMENT_TYPE   (purple_media_element_type_get_type())
#define PURPLE_TYPE_MEDIA_ELEMENT_INFO   (purple_media_element_info_get_type())
#define PURPLE_MEDIA_ELEMENT_INFO(obj)   (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_MEDIA_ELEMENT_INFO, PurpleMediaElementInfo))
#define PURPLE_MEDIA_ELEMENT_INFO_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_MEDIA_ELEMENT_INFO, PurpleMediaElementInfo))
#define PURPLE_IS_MEDIA_ELEMENT_INFO(obj)   (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_MEDIA_ELEMENT_INFO))
#define PURPLE_IS_MEDIA_ELEMENT_INFO_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_MEDIA_ELEMENT_INFO))
#define PURPLE_MEDIA_ELEMENT_INFO_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_MEDIA_ELEMENT_INFO, PurpleMediaElementInfo))

Typedefs

typedef struct
_PurpleMediaElementInfo 
PurpleMediaElementInfo
 An opaque structure representing an audio/video source/sink.
typedef struct
_PurpleMediaElementInfoClass 
PurpleMediaElementInfoClass
typedef GstElement *(* PurpleMediaElementCreateCallback )(PurpleMedia *media, const gchar *session_id, const gchar *participant)

Enumerations

enum  PurpleMediaElementType {
  PURPLE_MEDIA_ELEMENT_NONE = 0, PURPLE_MEDIA_ELEMENT_AUDIO = 1, PURPLE_MEDIA_ELEMENT_VIDEO = 1 << 1, PURPLE_MEDIA_ELEMENT_AUDIO_VIDEO,
  PURPLE_MEDIA_ELEMENT_NO_SRCS = 0, PURPLE_MEDIA_ELEMENT_ONE_SRC = 1 << 2, PURPLE_MEDIA_ELEMENT_MULTI_SRC = 1 << 3, PURPLE_MEDIA_ELEMENT_REQUEST_SRC = 1 << 4,
  PURPLE_MEDIA_ELEMENT_NO_SINKS = 0, PURPLE_MEDIA_ELEMENT_ONE_SINK = 1 << 5, PURPLE_MEDIA_ELEMENT_MULTI_SINK = 1 << 6, PURPLE_MEDIA_ELEMENT_REQUEST_SINK = 1 << 7,
  PURPLE_MEDIA_ELEMENT_UNIQUE = 1 << 8, PURPLE_MEDIA_ELEMENT_SRC = 1 << 9, PURPLE_MEDIA_ELEMENT_SINK = 1 << 10
}

Functions

GType purple_media_element_type_get_type (void)
 Gets the element type's GType.
GType purple_media_element_info_get_type (void)
 Gets the element info's GType.
GstElement * purple_media_get_src (PurpleMedia *media, const gchar *sess_id)
 Gets the source from a session.
GstElement * purple_media_get_tee (PurpleMedia *media, const gchar *session_id, const gchar *participant)
 Gets the tee from a given session/stream.
GstElement * purple_media_manager_get_pipeline (PurpleMediaManager *manager)
 Gets the pipeline from the media manager.
GstElement * purple_media_manager_get_element (PurpleMediaManager *manager, PurpleMediaSessionType type, PurpleMedia *media, const gchar *session_id, const gchar *participant)
 Returns a GStreamer source or sink for audio or video.
PurpleMediaElementInfopurple_media_manager_get_element_info (PurpleMediaManager *manager, const gchar *name)
gboolean purple_media_manager_register_element (PurpleMediaManager *manager, PurpleMediaElementInfo *info)
gboolean purple_media_manager_unregister_element (PurpleMediaManager *manager, const gchar *name)
gboolean purple_media_manager_set_active_element (PurpleMediaManager *manager, PurpleMediaElementInfo *info)
PurpleMediaElementInfopurple_media_manager_get_active_element (PurpleMediaManager *manager, PurpleMediaElementType type)
gchar * purple_media_element_info_get_id (PurpleMediaElementInfo *info)
gchar * purple_media_element_info_get_name (PurpleMediaElementInfo *info)
PurpleMediaElementType purple_media_element_info_get_element_type (PurpleMediaElementInfo *info)
GstElement * purple_media_element_info_call_create (PurpleMediaElementInfo *info, PurpleMedia *media, const gchar *session_id, const gchar *participant)


Detailed Description

Media API.

Definition in file media-gst.h.


Typedef Documentation

typedef struct _PurpleMediaElementInfo PurpleMediaElementInfo

An opaque structure representing an audio/video source/sink.

Definition at line 46 of file media-gst.h.


Enumeration Type Documentation

Enumerator:
PURPLE_MEDIA_ELEMENT_AUDIO  empty element
PURPLE_MEDIA_ELEMENT_VIDEO  supports audio
PURPLE_MEDIA_ELEMENT_AUDIO_VIDEO  supports video
PURPLE_MEDIA_ELEMENT_NO_SRCS  supports audio and video
PURPLE_MEDIA_ELEMENT_ONE_SRC  has no src pads
PURPLE_MEDIA_ELEMENT_MULTI_SRC  has one src pad
PURPLE_MEDIA_ELEMENT_REQUEST_SRC  has multiple src pads
PURPLE_MEDIA_ELEMENT_NO_SINKS  src pads must be requested
PURPLE_MEDIA_ELEMENT_ONE_SINK  has no sink pads
PURPLE_MEDIA_ELEMENT_MULTI_SINK  has one sink pad
PURPLE_MEDIA_ELEMENT_REQUEST_SINK  has multiple sink pads
PURPLE_MEDIA_ELEMENT_UNIQUE  sink pads must be requested
PURPLE_MEDIA_ELEMENT_SRC  This element is unique and only one instance of it should be created at a time.
PURPLE_MEDIA_ELEMENT_SINK  can be set as an active src

Definition at line 51 of file media-gst.h.


Function Documentation

GType purple_media_element_info_get_type ( void   ) 

Gets the element info's GType.

Returns:
The element info's GType.
Since:
2.6.0

GType purple_media_element_type_get_type ( void   ) 

Gets the element type's GType.

Returns:
The element type's GType.
Since:
2.6.0

GstElement* purple_media_get_src ( PurpleMedia media,
const gchar *  sess_id 
)

Gets the source from a session.

Parameters:
media The media object the session is in.
sess_id The session id of the session to get the source from.
Returns:
The source retrieved.
Since:
2.6.0

GstElement* purple_media_get_tee ( PurpleMedia media,
const gchar *  session_id,
const gchar *  participant 
)

Gets the tee from a given session/stream.

Parameters:
media The instance to get the tee from.
session_id The id of the session to get the tee from.
participant Optionally, the participant of the stream to get the tee from.
Returns:
The GstTee element from the chosen session/stream.
Since:
2.6.0

GstElement* purple_media_manager_get_element ( PurpleMediaManager manager,
PurpleMediaSessionType  type,
PurpleMedia media,
const gchar *  session_id,
const gchar *  participant 
)

Returns a GStreamer source or sink for audio or video.

Parameters:
manager The media manager to use to obtain the source/sink.
type The type of source/sink to get.
media The media call this element is requested for.
session_id The id of the session this element is requested for or NULL.
participant The remote user this element is requested for or NULL.
Since:
2.6.0

GstElement* purple_media_manager_get_pipeline ( PurpleMediaManager manager  ) 

Gets the pipeline from the media manager.

Parameters:
manager The media manager to get the pipeline from.
Returns:
The pipeline.
Since:
2.6.0