libpurple/media-gst.h

Wed, 13 May 2009 20:29:03 +0000

author
Marcus Lundblad <malu@pidgin.im>
date
Wed, 13 May 2009 20:29:03 +0000
changeset 27110
05ca719b901b
parent 26649
1a6c4fd19355
child 28321
c8d617c408ab
permissions
-rw-r--r--

Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.

26479
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
1 /**
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
2 * @file media-gst.h Media API
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
3 * @ingroup core
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
4 */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
5
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
6 /* purple
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
7 *
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
8 * Purple is the legal property of its developers, whose names are too numerous
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
9 * to list here. Please refer to the COPYRIGHT file distributed with this
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
10 * source distribution.
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
11 *
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
12 * This program is free software; you can redistribute it and/or modify
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
13 * it under the terms of the GNU General Public License as published by
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
14 * the Free Software Foundation; either version 2 of the License, or
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
15 * (at your option) any later version.
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
16 *
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
17 * This program is distributed in the hope that it will be useful,
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
20 * GNU General Public License for more details.
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
21 *
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
22 * You should have received a copy of the GNU General Public License
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
23 * along with this program; if not, write to the Free Software
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
24 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
25 */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
26
26649
1a6c4fd19355 Add PURPLE to the media header sentinels and reorder includes to fix building gf2
Paul Aurich <darkrain42@pidgin.im>
parents: 26648
diff changeset
27 #ifndef _PURPLE_MEDIA_GST_H_
1a6c4fd19355 Add PURPLE to the media header sentinels and reorder includes to fix building gf2
Paul Aurich <darkrain42@pidgin.im>
parents: 26648
diff changeset
28 #define _PURPLE_MEDIA_GST_H_
26479
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
29
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
30 #include "media.h"
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
31 #include "mediamanager.h"
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
32
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
33 #include <gst/gst.h>
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
34
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
35 G_BEGIN_DECLS
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
36
26616
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
37 #define PURPLE_TYPE_MEDIA_ELEMENT_TYPE (purple_media_element_type_get_type())
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
38 #define PURPLE_TYPE_MEDIA_ELEMENT_INFO (purple_media_element_info_get_type())
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
39 #define PURPLE_MEDIA_ELEMENT_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_MEDIA_ELEMENT_INFO, PurpleMediaElementInfo))
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
40 #define PURPLE_MEDIA_ELEMENT_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_MEDIA_ELEMENT_INFO, PurpleMediaElementInfo))
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
41 #define PURPLE_IS_MEDIA_ELEMENT_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_MEDIA_ELEMENT_INFO))
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
42 #define PURPLE_IS_MEDIA_ELEMENT_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_MEDIA_ELEMENT_INFO))
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
43 #define PURPLE_MEDIA_ELEMENT_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_MEDIA_ELEMENT_INFO, PurpleMediaElementInfo))
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
44
26479
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
45 /** @copydoc _PurpleMediaElementInfo */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
46 typedef struct _PurpleMediaElementInfo PurpleMediaElementInfo;
26616
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
47 typedef struct _PurpleMediaElementInfoClass PurpleMediaElementInfoClass;
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
48 typedef GstElement *(*PurpleMediaElementCreateCallback)(PurpleMedia *media,
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
49 const gchar *session_id, const gchar *participant);
26479
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
50
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
51 typedef enum {
26616
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
52 PURPLE_MEDIA_ELEMENT_NONE = 0, /** empty element */
26479
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
53 PURPLE_MEDIA_ELEMENT_AUDIO = 1, /** supports audio */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
54 PURPLE_MEDIA_ELEMENT_VIDEO = 1 << 1, /** supports video */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
55 PURPLE_MEDIA_ELEMENT_AUDIO_VIDEO = PURPLE_MEDIA_ELEMENT_AUDIO
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
56 | PURPLE_MEDIA_ELEMENT_VIDEO, /** supports audio and video */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
57
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
58 PURPLE_MEDIA_ELEMENT_NO_SRCS = 0, /** has no src pads */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
59 PURPLE_MEDIA_ELEMENT_ONE_SRC = 1 << 2, /** has one src pad */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
60 PURPLE_MEDIA_ELEMENT_MULTI_SRC = 1 << 3, /** has multiple src pads */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
61 PURPLE_MEDIA_ELEMENT_REQUEST_SRC = 1 << 4, /** src pads must be requested */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
62
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
63 PURPLE_MEDIA_ELEMENT_NO_SINKS = 0, /** has no sink pads */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
64 PURPLE_MEDIA_ELEMENT_ONE_SINK = 1 << 5, /** has one sink pad */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
65 PURPLE_MEDIA_ELEMENT_MULTI_SINK = 1 << 6, /** has multiple sink pads */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
66 PURPLE_MEDIA_ELEMENT_REQUEST_SINK = 1 << 7, /** sink pads must be requested */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
67
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
68 PURPLE_MEDIA_ELEMENT_UNIQUE = 1 << 8, /** This element is unique and
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
69 only one instance of it should
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
70 be created at a time */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
71
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
72 PURPLE_MEDIA_ELEMENT_SRC = 1 << 9, /** can be set as an active src */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
73 PURPLE_MEDIA_ELEMENT_SINK = 1 << 10, /** can be set as an active sink */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
74 } PurpleMediaElementType;
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
75
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
76 #ifdef __cplusplus
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
77 extern "C" {
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
78 #endif
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
79
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
80 /**
26616
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
81 * Gets the element type's GType.
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
82 *
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
83 * @return The element type's GType.
26648
1a733d58d74a Even more @since tags, because Maiku's watching...
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26616
diff changeset
84 *
1a733d58d74a Even more @since tags, because Maiku's watching...
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26616
diff changeset
85 * @since 2.6.0
26616
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
86 */
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
87 GType purple_media_element_type_get_type(void);
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
88
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
89 /**
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
90 * Gets the element info's GType.
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
91 *
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
92 * @return The element info's GType.
26648
1a733d58d74a Even more @since tags, because Maiku's watching...
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26616
diff changeset
93 *
1a733d58d74a Even more @since tags, because Maiku's watching...
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26616
diff changeset
94 * @since 2.6.0
26616
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
95 */
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
96 GType purple_media_element_info_get_type(void);
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
97
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
98 /**
26479
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
99 * Gets the source from a session
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
100 *
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
101 * @param media The media object the session is in.
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
102 * @param sess_id The session id of the session to get the source from.
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
103 *
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
104 * @return The source retrieved.
26648
1a733d58d74a Even more @since tags, because Maiku's watching...
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26616
diff changeset
105 *
1a733d58d74a Even more @since tags, because Maiku's watching...
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26616
diff changeset
106 * @since 2.6.0
26479
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
107 */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
108 GstElement *purple_media_get_src(PurpleMedia *media, const gchar *sess_id);
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
109
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
110 /**
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
111 * Gets the tee from a given session/stream.
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
112 *
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
113 * @param media The instance to get the tee from.
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
114 * @param session_id The id of the session to get the tee from.
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
115 * @param participant Optionally, the participant of the stream to get the tee from.
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
116 *
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
117 * @return The GstTee element from the chosen session/stream.
26648
1a733d58d74a Even more @since tags, because Maiku's watching...
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26616
diff changeset
118 *
1a733d58d74a Even more @since tags, because Maiku's watching...
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26616
diff changeset
119 * @since 2.6.0
26479
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
120 */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
121 GstElement *purple_media_get_tee(PurpleMedia *media,
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
122 const gchar *session_id, const gchar *participant);
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
123
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
124
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
125 /**
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
126 * Gets the pipeline from the media manager.
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
127 *
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
128 * @param manager The media manager to get the pipeline from.
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
129 *
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
130 * @return The pipeline.
26648
1a733d58d74a Even more @since tags, because Maiku's watching...
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26616
diff changeset
131 *
1a733d58d74a Even more @since tags, because Maiku's watching...
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26616
diff changeset
132 * @since 2.6.0
26479
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
133 */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
134 GstElement *purple_media_manager_get_pipeline(PurpleMediaManager *manager);
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
135
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
136 /**
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
137 * Returns a GStreamer source or sink for audio or video.
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
138 *
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
139 * @param manager The media manager to use to obtain the source/sink.
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
140 * @param type The type of source/sink to get.
26648
1a733d58d74a Even more @since tags, because Maiku's watching...
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26616
diff changeset
141 *
1a733d58d74a Even more @since tags, because Maiku's watching...
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26616
diff changeset
142 * @since 2.6.0
26479
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
143 */
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
144 GstElement *purple_media_manager_get_element(PurpleMediaManager *manager,
26522
44401eba59a5 Give more information to element creation functions.
Michael Ruprecht <maiku@pidgin.im>
parents: 26480
diff changeset
145 PurpleMediaSessionType type, PurpleMedia *media,
44401eba59a5 Give more information to element creation functions.
Michael Ruprecht <maiku@pidgin.im>
parents: 26480
diff changeset
146 const gchar *session_id, const gchar *participant);
26479
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
147
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
148 PurpleMediaElementInfo *purple_media_manager_get_element_info(
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
149 PurpleMediaManager *manager, const gchar *name);
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
150 gboolean purple_media_manager_register_element(PurpleMediaManager *manager,
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
151 PurpleMediaElementInfo *info);
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
152 gboolean purple_media_manager_unregister_element(PurpleMediaManager *manager,
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
153 const gchar *name);
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
154 gboolean purple_media_manager_set_active_element(PurpleMediaManager *manager,
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
155 PurpleMediaElementInfo *info);
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
156 PurpleMediaElementInfo *purple_media_manager_get_active_element(
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
157 PurpleMediaManager *manager, PurpleMediaElementType type);
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
158
26616
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
159 gchar *purple_media_element_info_get_id(PurpleMediaElementInfo *info);
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
160 gchar *purple_media_element_info_get_name(PurpleMediaElementInfo *info);
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
161 PurpleMediaElementType purple_media_element_info_get_element_type(
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
162 PurpleMediaElementInfo *info);
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
163 GstElement *purple_media_element_info_call_create(
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
164 PurpleMediaElementInfo *info, PurpleMedia *media,
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
165 const gchar *session_id, const gchar *participant);
4f58db29d346 Hide and gobjectify PurpleMediaElementInfo.
Michael Ruprecht <maiku@pidgin.im>
parents: 26523
diff changeset
166
26479
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
167 #ifdef __cplusplus
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
168 }
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
169 #endif
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
170
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
171 G_END_DECLS
47511dae9f81 Move GStreamer related media functions into its own header.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff changeset
172
26649
1a6c4fd19355 Add PURPLE to the media header sentinels and reorder includes to fix building gf2
Paul Aurich <darkrain42@pidgin.im>
parents: 26648
diff changeset
173 #endif /* _PURPLE_MEDIA_GST_H_ */

mercurial