Wed, 16 Dec 2015 00:35:23 -0800
Remove support for GStreamer 0.10
Gstremer 0.10 does not have official support anymore,
version 1.0 is distributed on most distributions now and
it does not worth to support the older deprecated version.
This is a step towards the simplification of the code.
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
1 | /* purple |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2 | * |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
3 | * Purple is the legal property of its developers, whose names are too numerous |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
4 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
5 | * source distribution. |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
6 | * |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
7 | * This program is free software; you can redistribute it and/or modify |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
8 | * it under the terms of the GNU General Public License as published by |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
9 | * the Free Software Foundation; either version 2 of the License, or |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
10 | * (at your option) any later version. |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
11 | * |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
12 | * This program is distributed in the hope that it will be useful, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
15 | * GNU General Public License for more details. |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
16 | * |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
17 | * You should have received a copy of the GNU General Public License |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
18 | * along with this program; if not, write to the Free Software |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
20 | */ |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
21 | |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
22 | #include "internal.h" |
|
34241
8b905ef8081d
Fix build with older glib versions
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
33948
diff
changeset
|
23 | #include "glibcompat.h" |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
24 | |
|
29661
ae75a0a4d399
Fix compile with --disable-gstreamer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
29657
diff
changeset
|
25 | #include "backend-fs2.h" |
|
ae75a0a4d399
Fix compile with --disable-gstreamer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
29657
diff
changeset
|
26 | |
|
29723
d20be93c4c8d
Compile with --disable-vv. Without this change I get this error:
Mark Doliner <markdoliner@pidgin.im>
parents:
29688
diff
changeset
|
27 | #ifdef USE_VV |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
28 | #include "backend-iface.h" |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
29 | #include "debug.h" |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
30 | #include "network.h" |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
31 | #include "media-gst.h" |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
32 | |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
33 | #include <farstream/fs-conference.h> |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
34 | #include <farstream/fs-element-added-notifier.h> |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
35 | #include <farstream/fs-utils.h> |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
36 | #include <gst/gststructure.h> |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
37 | |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
38 | /** @copydoc _PurpleMediaBackendFs2Class */ |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
39 | typedef struct _PurpleMediaBackendFs2Class PurpleMediaBackendFs2Class; |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
40 | /** @copydoc _PurpleMediaBackendFs2Private */ |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
41 | typedef struct _PurpleMediaBackendFs2Private PurpleMediaBackendFs2Private; |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
42 | /** @copydoc _PurpleMediaBackendFs2Session */ |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
43 | typedef struct _PurpleMediaBackendFs2Session PurpleMediaBackendFs2Session; |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
44 | /** @copydoc _PurpleMediaBackendFs2Stream */ |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
45 | typedef struct _PurpleMediaBackendFs2Stream PurpleMediaBackendFs2Stream; |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
46 | |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
47 | #define PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(obj) \ |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
48 | (G_TYPE_INSTANCE_GET_PRIVATE((obj), \ |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
49 | PURPLE_TYPE_MEDIA_BACKEND_FS2, PurpleMediaBackendFs2Private)) |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
50 | |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
51 | static void purple_media_backend_iface_init(PurpleMediaBackendIface *iface); |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
52 | |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
53 | static gboolean |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
54 | gst_bus_cb(GstBus *bus, GstMessage *msg, PurpleMediaBackendFs2 *self); |
|
29564
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
55 | static void |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
56 | state_changed_cb(PurpleMedia *media, PurpleMediaState state, |
|
29564
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
57 | gchar *sid, gchar *name, PurpleMediaBackendFs2 *self); |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
58 | static void |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
59 | stream_info_cb(PurpleMedia *media, PurpleMediaInfoType type, |
|
29564
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
60 | gchar *sid, gchar *name, gboolean local, |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
61 | PurpleMediaBackendFs2 *self); |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
62 | |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
63 | static gboolean purple_media_backend_fs2_add_stream(PurpleMediaBackend *self, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
64 | const gchar *sess_id, const gchar *who, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
65 | PurpleMediaSessionType type, gboolean initiator, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
66 | const gchar *transmitter, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
67 | guint num_params, GParameter *params); |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
68 | static void purple_media_backend_fs2_add_remote_candidates( |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
69 | PurpleMediaBackend *self, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
70 | const gchar *sess_id, const gchar *participant, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
71 | GList *remote_candidates); |
|
29597
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
72 | static gboolean purple_media_backend_fs2_codecs_ready(PurpleMediaBackend *self, |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
73 | const gchar *sess_id); |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
74 | static GList *purple_media_backend_fs2_get_codecs(PurpleMediaBackend *self, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
75 | const gchar *sess_id); |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
76 | static GList *purple_media_backend_fs2_get_local_candidates( |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
77 | PurpleMediaBackend *self, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
78 | const gchar *sess_id, const gchar *participant); |
|
36318
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
79 | static gboolean purple_media_backend_fs2_set_encryption_parameters ( |
| 36347 | 80 | PurpleMediaBackend *self, const gchar *sess_id, const gchar *cipher, |
| 81 | const gchar *auth, const gchar *key, gsize key_len); | |
|
36318
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
82 | static gboolean purple_media_backend_fs2_set_decryption_parameters( |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
83 | PurpleMediaBackend *self, const gchar *sess_id, |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
84 | const gchar *participant, const gchar *cipher, |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
85 | const gchar *auth, const gchar *key, gsize key_len); |
|
29588
a3fef46ce04a
Make the backend interface's set_remote_codecs function return gboolean.
Michael Ruprecht <maiku@pidgin.im>
parents:
29587
diff
changeset
|
86 | static gboolean purple_media_backend_fs2_set_remote_codecs( |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
87 | PurpleMediaBackend *self, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
88 | const gchar *sess_id, const gchar *participant, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
89 | GList *codecs); |
|
29590
bec92b90acc9
Change the media backend interface's set_send_codec to return gboolean to
Michael Ruprecht <maiku@pidgin.im>
parents:
29589
diff
changeset
|
90 | static gboolean purple_media_backend_fs2_set_send_codec( |
|
bec92b90acc9
Change the media backend interface's set_send_codec to return gboolean to
Michael Ruprecht <maiku@pidgin.im>
parents:
29589
diff
changeset
|
91 | PurpleMediaBackend *self, const gchar *sess_id, |
|
bec92b90acc9
Change the media backend interface's set_send_codec to return gboolean to
Michael Ruprecht <maiku@pidgin.im>
parents:
29589
diff
changeset
|
92 | PurpleMediaCodec *codec); |
|
31687
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
93 | static void purple_media_backend_fs2_set_params(PurpleMediaBackend *self, |
|
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
94 | guint num_params, GParameter *params); |
|
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
95 | static const gchar **purple_media_backend_fs2_get_available_params(void); |
|
36312
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
96 | static gboolean purple_media_backend_fs2_send_dtmf( |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
97 | PurpleMediaBackend *self, const gchar *sess_id, |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
98 | gchar dtmf, guint8 volume, guint16 duration); |
|
36321
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
99 | static gboolean purple_media_backend_fs2_set_send_rtcp_mux( |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
100 | PurpleMediaBackend *self, |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
101 | const gchar *sess_id, const gchar *participant, |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
102 | gboolean send_rtcp_mux); |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
103 | |
|
31618
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
104 | static void free_stream(PurpleMediaBackendFs2Stream *stream); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
105 | static void free_session(PurpleMediaBackendFs2Session *session); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
106 | |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
107 | struct _PurpleMediaBackendFs2Class |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
108 | { |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
109 | GObjectClass parent_class; |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
110 | }; |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
111 | |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
112 | struct _PurpleMediaBackendFs2 |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
113 | { |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
114 | GObject parent; |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
115 | }; |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
116 | |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
117 | G_DEFINE_TYPE_WITH_CODE(PurpleMediaBackendFs2, purple_media_backend_fs2, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
118 | G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE( |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
119 | PURPLE_TYPE_MEDIA_BACKEND, purple_media_backend_iface_init)); |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
120 | |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
121 | struct _PurpleMediaBackendFs2Stream |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
122 | { |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
123 | PurpleMediaBackendFs2Session *session; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
124 | gchar *participant; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
125 | FsStream *stream; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
126 | |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
127 | gboolean supports_add; |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
128 | |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
129 | GstElement *src; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
130 | GstElement *tee; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
131 | GstElement *volume; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
132 | GstElement *level; |
|
31618
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
133 | GstElement *fakesink; |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
134 | GstElement *queue; |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
135 | |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
136 | GList *local_candidates; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
137 | GList *remote_candidates; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
138 | |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
139 | guint connected_cb_id; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
140 | }; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
141 | |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
142 | struct _PurpleMediaBackendFs2Session |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
143 | { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
144 | PurpleMediaBackendFs2 *backend; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
145 | gchar *id; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
146 | FsSession *session; |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
147 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
148 | GstElement *src; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
149 | GstElement *tee; |
|
31557
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
150 | GstElement *srcvalve; |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
151 | |
|
31313
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
152 | GstPad *srcpad; |
|
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
153 | |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
154 | PurpleMediaSessionType type; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
155 | }; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
156 | |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
157 | struct _PurpleMediaBackendFs2Private |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
158 | { |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
159 | PurpleMedia *media; |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
160 | GstElement *confbin; |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
161 | FsConference *conference; |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
162 | gchar *conference_type; |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
163 | |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
164 | FsElementAddedNotifier *notifier; |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
165 | |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
166 | GHashTable *sessions; |
|
29579
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
167 | GHashTable *participants; |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
168 | |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
169 | GList *streams; |
|
31557
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
170 | |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
171 | gdouble silence_threshold; |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
172 | }; |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
173 | |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
174 | enum { |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
175 | PROP_0, |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
176 | PROP_CONFERENCE_TYPE, |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
177 | PROP_MEDIA, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
178 | }; |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
179 | |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
180 | static void |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
181 | purple_media_backend_fs2_init(PurpleMediaBackendFs2 *self) |
|
36288
146f70142fd7
Silence G_DEFINE_TYPE_WITH_CODE warnings about _get_instance_private routines
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36257
diff
changeset
|
182 | { |
|
36291
5ebc548740cc
Fix rest of _get_instance_private errors for glib < 2.37.3
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36288
diff
changeset
|
183 | #if GLIB_CHECK_VERSION(2, 37, 3) |
|
36288
146f70142fd7
Silence G_DEFINE_TYPE_WITH_CODE warnings about _get_instance_private routines
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36257
diff
changeset
|
184 | /* silence a warning */ |
|
146f70142fd7
Silence G_DEFINE_TYPE_WITH_CODE warnings about _get_instance_private routines
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36257
diff
changeset
|
185 | (void)purple_media_backend_fs2_get_instance_private; |
|
36291
5ebc548740cc
Fix rest of _get_instance_private errors for glib < 2.37.3
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36288
diff
changeset
|
186 | #endif |
|
36288
146f70142fd7
Silence G_DEFINE_TYPE_WITH_CODE warnings about _get_instance_private routines
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
36257
diff
changeset
|
187 | } |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
188 | |
|
35978
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
189 | static FsCandidateType |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
190 | purple_media_candidate_type_to_fs(PurpleMediaCandidateType type) |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
191 | { |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
192 | switch (type) { |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
193 | case PURPLE_MEDIA_CANDIDATE_TYPE_HOST: |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
194 | return FS_CANDIDATE_TYPE_HOST; |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
195 | case PURPLE_MEDIA_CANDIDATE_TYPE_SRFLX: |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
196 | return FS_CANDIDATE_TYPE_SRFLX; |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
197 | case PURPLE_MEDIA_CANDIDATE_TYPE_PRFLX: |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
198 | return FS_CANDIDATE_TYPE_PRFLX; |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
199 | case PURPLE_MEDIA_CANDIDATE_TYPE_RELAY: |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
200 | return FS_CANDIDATE_TYPE_RELAY; |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
201 | case PURPLE_MEDIA_CANDIDATE_TYPE_MULTICAST: |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
202 | return FS_CANDIDATE_TYPE_MULTICAST; |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
203 | } |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
204 | g_return_val_if_reached(FS_CANDIDATE_TYPE_HOST); |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
205 | } |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
206 | |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
207 | static PurpleMediaCandidateType |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
208 | purple_media_candidate_type_from_fs(FsCandidateType type) |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
209 | { |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
210 | switch (type) { |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
211 | case FS_CANDIDATE_TYPE_HOST: |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
212 | return PURPLE_MEDIA_CANDIDATE_TYPE_HOST; |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
213 | case FS_CANDIDATE_TYPE_SRFLX: |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
214 | return PURPLE_MEDIA_CANDIDATE_TYPE_SRFLX; |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
215 | case FS_CANDIDATE_TYPE_PRFLX: |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
216 | return PURPLE_MEDIA_CANDIDATE_TYPE_PRFLX; |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
217 | case FS_CANDIDATE_TYPE_RELAY: |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
218 | return PURPLE_MEDIA_CANDIDATE_TYPE_RELAY; |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
219 | case FS_CANDIDATE_TYPE_MULTICAST: |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
220 | return PURPLE_MEDIA_CANDIDATE_TYPE_MULTICAST; |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
221 | } |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
222 | g_return_val_if_reached(PURPLE_MEDIA_CANDIDATE_TYPE_HOST); |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
223 | } |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
224 | |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
225 | static FsNetworkProtocol |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
226 | purple_media_network_protocol_to_fs(PurpleMediaNetworkProtocol protocol) |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
227 | { |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
228 | switch (protocol) { |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
229 | case PURPLE_MEDIA_NETWORK_PROTOCOL_UDP: |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
230 | return FS_NETWORK_PROTOCOL_UDP; |
|
36317
fcecf7f838e2
Add MS-TURN TCP support
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36316
diff
changeset
|
231 | case PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_PASSIVE: |
|
fcecf7f838e2
Add MS-TURN TCP support
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36316
diff
changeset
|
232 | return FS_NETWORK_PROTOCOL_TCP_PASSIVE; |
|
fcecf7f838e2
Add MS-TURN TCP support
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36316
diff
changeset
|
233 | case PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_ACTIVE: |
|
fcecf7f838e2
Add MS-TURN TCP support
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36316
diff
changeset
|
234 | return FS_NETWORK_PROTOCOL_TCP_ACTIVE; |
|
fcecf7f838e2
Add MS-TURN TCP support
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36316
diff
changeset
|
235 | case PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_SO: |
|
fcecf7f838e2
Add MS-TURN TCP support
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36316
diff
changeset
|
236 | return FS_NETWORK_PROTOCOL_TCP_SO; |
|
fcecf7f838e2
Add MS-TURN TCP support
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36316
diff
changeset
|
237 | default: |
|
fcecf7f838e2
Add MS-TURN TCP support
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36316
diff
changeset
|
238 | g_return_val_if_reached(FS_NETWORK_PROTOCOL_TCP); |
|
35978
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
239 | } |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
240 | } |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
241 | |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
242 | static PurpleMediaNetworkProtocol |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
243 | purple_media_network_protocol_from_fs(FsNetworkProtocol protocol) |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
244 | { |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
245 | switch (protocol) { |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
246 | case FS_NETWORK_PROTOCOL_UDP: |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
247 | return PURPLE_MEDIA_NETWORK_PROTOCOL_UDP; |
|
36317
fcecf7f838e2
Add MS-TURN TCP support
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36316
diff
changeset
|
248 | case FS_NETWORK_PROTOCOL_TCP_PASSIVE: |
|
fcecf7f838e2
Add MS-TURN TCP support
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36316
diff
changeset
|
249 | return PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_PASSIVE; |
|
fcecf7f838e2
Add MS-TURN TCP support
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36316
diff
changeset
|
250 | case FS_NETWORK_PROTOCOL_TCP_ACTIVE: |
|
fcecf7f838e2
Add MS-TURN TCP support
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36316
diff
changeset
|
251 | return PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_ACTIVE; |
|
fcecf7f838e2
Add MS-TURN TCP support
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36316
diff
changeset
|
252 | case FS_NETWORK_PROTOCOL_TCP_SO: |
|
fcecf7f838e2
Add MS-TURN TCP support
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36316
diff
changeset
|
253 | return PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_SO; |
|
fcecf7f838e2
Add MS-TURN TCP support
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36316
diff
changeset
|
254 | default: |
|
fcecf7f838e2
Add MS-TURN TCP support
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36316
diff
changeset
|
255 | g_return_val_if_reached(PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_PASSIVE); |
|
35978
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
256 | } |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
257 | } |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
258 | |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
259 | static GstPadProbeReturn |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
260 | event_probe_cb(GstPad *srcpad, GstPadProbeInfo *info, gpointer unused) |
|
31368
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
261 | { |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
262 | GstEvent *event = GST_PAD_PROBE_INFO_EVENT(info); |
|
31368
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
263 | if (GST_EVENT_TYPE(event) == GST_EVENT_CUSTOM_DOWNSTREAM |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
264 | && gst_event_has_name(event, "purple-unlink-tee")) { |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
265 | |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
266 | const GstStructure *s = gst_event_get_structure(event); |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
267 | |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
268 | gst_pad_unlink(srcpad, gst_pad_get_peer(srcpad)); |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
269 | |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
270 | gst_pad_remove_probe(srcpad, |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
271 | g_value_get_ulong(gst_structure_get_value(s, "handler-id"))); |
|
31368
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
272 | |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
273 | if (g_value_get_boolean(gst_structure_get_value(s, "release-pad"))) |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
274 | gst_element_release_request_pad(GST_ELEMENT_PARENT(srcpad), srcpad); |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
275 | |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
276 | return GST_PAD_PROBE_DROP; |
|
31368
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
277 | } |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
278 | |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
279 | return GST_PAD_PROBE_OK; |
|
31368
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
280 | } |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
281 | |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
282 | static void |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
283 | unlink_teepad_dynamic(GstPad *srcpad, gboolean release_pad) |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
284 | { |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
285 | gulong id = gst_pad_add_probe(srcpad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM, |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
286 | event_probe_cb, NULL, NULL); |
|
31368
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
287 | |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
288 | if (GST_IS_GHOST_PAD(srcpad)) |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
289 | srcpad = gst_ghost_pad_get_target(GST_GHOST_PAD(srcpad)); |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
290 | |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
291 | gst_element_send_event(gst_pad_get_parent_element(srcpad), |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
292 | gst_event_new_custom(GST_EVENT_CUSTOM_DOWNSTREAM, |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
293 | gst_structure_new("purple-unlink-tee", |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
294 | "release-pad", G_TYPE_BOOLEAN, release_pad, |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
295 | "handler-id", G_TYPE_ULONG, id, |
|
31368
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
296 | NULL))); |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
297 | } |
|
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
298 | |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
299 | static void |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
300 | purple_media_backend_fs2_dispose(GObject *obj) |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
301 | { |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
302 | PurpleMediaBackendFs2Private *priv = |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
303 | PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(obj); |
|
29593
5274ab2ae88c
Properly free PurpleMediaBackendFs2Stream's.
Michael Ruprecht <maiku@pidgin.im>
parents:
29592
diff
changeset
|
304 | GList *iter = NULL; |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
305 | |
|
29564
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
306 | purple_debug_info("backend-fs2", "purple_media_backend_fs2_dispose\n"); |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
307 | |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
308 | if (priv->notifier) { |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
309 | g_object_unref(priv->notifier); |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
310 | priv->notifier = NULL; |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
311 | } |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
312 | |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
313 | if (priv->confbin) { |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
314 | GstElement *pipeline; |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
315 | |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
316 | pipeline = purple_media_manager_get_pipeline( |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
317 | purple_media_get_manager(priv->media)); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
318 | |
|
31313
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
319 | /* All connections to media sources should be blocked before confbin is |
|
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
320 | * removed, to prevent freezing of any other simultaneously running |
|
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
321 | * media calls. */ |
|
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
322 | if (priv->sessions) { |
|
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
323 | GList *sessions = g_hash_table_get_values(priv->sessions); |
|
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
324 | for (; sessions; sessions = |
|
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
325 | g_list_delete_link(sessions, sessions)) { |
|
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
326 | PurpleMediaBackendFs2Session *session = sessions->data; |
|
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
327 | if (session->srcpad) { |
|
31368
ea6ce68f2948
This is a better way to handle ending one call when multiple calls are in
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31313
diff
changeset
|
328 | unlink_teepad_dynamic(session->srcpad, FALSE); |
|
31313
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
329 | gst_object_unref(session->srcpad); |
|
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
330 | session->srcpad = NULL; |
|
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
331 | } |
|
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
332 | } |
|
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
333 | } |
|
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
334 | |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
335 | gst_element_set_locked_state(priv->confbin, TRUE); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
336 | gst_element_set_state(GST_ELEMENT(priv->confbin), |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
337 | GST_STATE_NULL); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
338 | |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
339 | if (pipeline) { |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
340 | GstBus *bus; |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
341 | gst_bin_remove(GST_BIN(pipeline), priv->confbin); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
342 | bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline)); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
343 | g_signal_handlers_disconnect_matched(G_OBJECT(bus), |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
344 | G_SIGNAL_MATCH_FUNC | |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
345 | G_SIGNAL_MATCH_DATA, |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
346 | 0, 0, 0, gst_bus_cb, obj); |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
347 | gst_object_unref(bus); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
348 | } else { |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
349 | purple_debug_warning("backend-fs2", "Unable to " |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
350 | "properly dispose the conference. " |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
351 | "Couldn't get the pipeline.\n"); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
352 | } |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
353 | |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
354 | priv->confbin = NULL; |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
355 | priv->conference = NULL; |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
356 | |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
357 | } |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
358 | |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
359 | if (priv->sessions) { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
360 | GList *sessions = g_hash_table_get_values(priv->sessions); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
361 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
362 | for (; sessions; sessions = |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
363 | g_list_delete_link(sessions, sessions)) { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
364 | PurpleMediaBackendFs2Session *session = |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
365 | sessions->data; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
366 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
367 | if (session->session) { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
368 | g_object_unref(session->session); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
369 | session->session = NULL; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
370 | } |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
371 | } |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
372 | } |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
373 | |
|
29579
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
374 | if (priv->participants) { |
|
30715
61a0bd743512
Fix some media code leaks.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
30706
diff
changeset
|
375 | g_hash_table_destroy(priv->participants); |
|
29579
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
376 | priv->participants = NULL; |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
377 | } |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
378 | |
|
29593
5274ab2ae88c
Properly free PurpleMediaBackendFs2Stream's.
Michael Ruprecht <maiku@pidgin.im>
parents:
29592
diff
changeset
|
379 | for (iter = priv->streams; iter; iter = g_list_next(iter)) { |
|
5274ab2ae88c
Properly free PurpleMediaBackendFs2Stream's.
Michael Ruprecht <maiku@pidgin.im>
parents:
29592
diff
changeset
|
380 | PurpleMediaBackendFs2Stream *stream = iter->data; |
|
5274ab2ae88c
Properly free PurpleMediaBackendFs2Stream's.
Michael Ruprecht <maiku@pidgin.im>
parents:
29592
diff
changeset
|
381 | if (stream->stream) { |
|
5274ab2ae88c
Properly free PurpleMediaBackendFs2Stream's.
Michael Ruprecht <maiku@pidgin.im>
parents:
29592
diff
changeset
|
382 | g_object_unref(stream->stream); |
|
5274ab2ae88c
Properly free PurpleMediaBackendFs2Stream's.
Michael Ruprecht <maiku@pidgin.im>
parents:
29592
diff
changeset
|
383 | stream->stream = NULL; |
|
5274ab2ae88c
Properly free PurpleMediaBackendFs2Stream's.
Michael Ruprecht <maiku@pidgin.im>
parents:
29592
diff
changeset
|
384 | } |
|
5274ab2ae88c
Properly free PurpleMediaBackendFs2Stream's.
Michael Ruprecht <maiku@pidgin.im>
parents:
29592
diff
changeset
|
385 | } |
|
5274ab2ae88c
Properly free PurpleMediaBackendFs2Stream's.
Michael Ruprecht <maiku@pidgin.im>
parents:
29592
diff
changeset
|
386 | |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
387 | if (priv->media) { |
|
29564
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
388 | g_object_remove_weak_pointer(G_OBJECT(priv->media), |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
389 | (gpointer*)&priv->media); |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
390 | priv->media = NULL; |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
391 | } |
|
29564
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
392 | |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
393 | G_OBJECT_CLASS(purple_media_backend_fs2_parent_class)->dispose(obj); |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
394 | } |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
395 | |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
396 | static void |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
397 | purple_media_backend_fs2_finalize(GObject *obj) |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
398 | { |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
399 | PurpleMediaBackendFs2Private *priv = |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
400 | PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(obj); |
|
29564
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
401 | |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
402 | purple_debug_info("backend-fs2", "purple_media_backend_fs2_finalize\n"); |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
403 | |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
404 | g_free(priv->conference_type); |
|
29564
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
405 | |
|
29593
5274ab2ae88c
Properly free PurpleMediaBackendFs2Stream's.
Michael Ruprecht <maiku@pidgin.im>
parents:
29592
diff
changeset
|
406 | for (; priv->streams; priv->streams = |
|
5274ab2ae88c
Properly free PurpleMediaBackendFs2Stream's.
Michael Ruprecht <maiku@pidgin.im>
parents:
29592
diff
changeset
|
407 | g_list_delete_link(priv->streams, priv->streams)) { |
|
5274ab2ae88c
Properly free PurpleMediaBackendFs2Stream's.
Michael Ruprecht <maiku@pidgin.im>
parents:
29592
diff
changeset
|
408 | PurpleMediaBackendFs2Stream *stream = priv->streams->data; |
|
31618
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
409 | free_stream(stream); |
|
29593
5274ab2ae88c
Properly free PurpleMediaBackendFs2Stream's.
Michael Ruprecht <maiku@pidgin.im>
parents:
29592
diff
changeset
|
410 | } |
|
5274ab2ae88c
Properly free PurpleMediaBackendFs2Stream's.
Michael Ruprecht <maiku@pidgin.im>
parents:
29592
diff
changeset
|
411 | |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
412 | if (priv->sessions) { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
413 | GList *sessions = g_hash_table_get_values(priv->sessions); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
414 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
415 | for (; sessions; sessions = |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
416 | g_list_delete_link(sessions, sessions)) { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
417 | PurpleMediaBackendFs2Session *session = |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
418 | sessions->data; |
|
31618
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
419 | free_session(session); |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
420 | } |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
421 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
422 | g_hash_table_destroy(priv->sessions); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
423 | } |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
424 | |
|
29564
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
425 | G_OBJECT_CLASS(purple_media_backend_fs2_parent_class)->finalize(obj); |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
426 | } |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
427 | |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
428 | static void |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
429 | purple_media_backend_fs2_set_property(GObject *object, guint prop_id, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
430 | const GValue *value, GParamSpec *pspec) |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
431 | { |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
432 | PurpleMediaBackendFs2Private *priv; |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
433 | g_return_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(object)); |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
434 | |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
435 | priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(object); |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
436 | |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
437 | switch (prop_id) { |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
438 | case PROP_CONFERENCE_TYPE: |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
439 | priv->conference_type = g_value_dup_string(value); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
440 | break; |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
441 | case PROP_MEDIA: |
|
29564
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
442 | priv->media = g_value_get_object(value); |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
443 | |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
444 | if (priv->media == NULL) |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
445 | break; |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
446 | |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
447 | g_object_add_weak_pointer(G_OBJECT(priv->media), |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
448 | (gpointer*)&priv->media); |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
449 | |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
450 | g_signal_connect(G_OBJECT(priv->media), |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
451 | "state-changed", |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
452 | G_CALLBACK(state_changed_cb), |
|
29564
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
453 | PURPLE_MEDIA_BACKEND_FS2(object)); |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
454 | g_signal_connect(G_OBJECT(priv->media), "stream-info", |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
455 | G_CALLBACK(stream_info_cb), |
|
29564
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
456 | PURPLE_MEDIA_BACKEND_FS2(object)); |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
457 | break; |
|
31294
73607ab89c6f
Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents:
31278
diff
changeset
|
458 | default: |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
459 | G_OBJECT_WARN_INVALID_PROPERTY_ID( |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
460 | object, prop_id, pspec); |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
461 | break; |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
462 | } |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
463 | } |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
464 | |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
465 | static void |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
466 | purple_media_backend_fs2_get_property(GObject *object, guint prop_id, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
467 | GValue *value, GParamSpec *pspec) |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
468 | { |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
469 | PurpleMediaBackendFs2Private *priv; |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
470 | g_return_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(object)); |
|
31294
73607ab89c6f
Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents:
31278
diff
changeset
|
471 | |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
472 | priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(object); |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
473 | |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
474 | switch (prop_id) { |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
475 | case PROP_CONFERENCE_TYPE: |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
476 | g_value_set_string(value, priv->conference_type); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
477 | break; |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
478 | case PROP_MEDIA: |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
479 | g_value_set_object(value, priv->media); |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
480 | break; |
|
31294
73607ab89c6f
Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents:
31278
diff
changeset
|
481 | default: |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
482 | G_OBJECT_WARN_INVALID_PROPERTY_ID( |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
483 | object, prop_id, pspec); |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
484 | break; |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
485 | } |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
486 | } |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
487 | |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
488 | static void |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
489 | purple_media_backend_fs2_class_init(PurpleMediaBackendFs2Class *klass) |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
490 | { |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
491 | GObjectClass *gobject_class = (GObjectClass*)klass; |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
492 | |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
493 | gobject_class->dispose = purple_media_backend_fs2_dispose; |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
494 | gobject_class->finalize = purple_media_backend_fs2_finalize; |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
495 | gobject_class->set_property = purple_media_backend_fs2_set_property; |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
496 | gobject_class->get_property = purple_media_backend_fs2_get_property; |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
497 | |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
498 | g_object_class_override_property(gobject_class, PROP_CONFERENCE_TYPE, |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
499 | "conference-type"); |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
500 | g_object_class_override_property(gobject_class, PROP_MEDIA, "media"); |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
501 | |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
502 | g_type_class_add_private(klass, sizeof(PurpleMediaBackendFs2Private)); |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
503 | } |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
504 | |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
505 | static void |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
506 | purple_media_backend_iface_init(PurpleMediaBackendIface *iface) |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
507 | { |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
508 | iface->add_stream = purple_media_backend_fs2_add_stream; |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
509 | iface->add_remote_candidates = |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
510 | purple_media_backend_fs2_add_remote_candidates; |
|
29597
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
511 | iface->codecs_ready = purple_media_backend_fs2_codecs_ready; |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
512 | iface->get_codecs = purple_media_backend_fs2_get_codecs; |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
513 | iface->get_local_candidates = |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
514 | purple_media_backend_fs2_get_local_candidates; |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
515 | iface->set_remote_codecs = purple_media_backend_fs2_set_remote_codecs; |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
516 | iface->set_send_codec = purple_media_backend_fs2_set_send_codec; |
|
36318
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
517 | iface->set_encryption_parameters = |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
518 | purple_media_backend_fs2_set_encryption_parameters; |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
519 | iface->set_decryption_parameters = |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
520 | purple_media_backend_fs2_set_decryption_parameters; |
|
31687
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
521 | iface->set_params = purple_media_backend_fs2_set_params; |
|
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
522 | iface->get_available_params = purple_media_backend_fs2_get_available_params; |
|
36312
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
523 | iface->send_dtmf = purple_media_backend_fs2_send_dtmf; |
|
36321
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
524 | iface->set_send_rtcp_mux = purple_media_backend_fs2_set_send_rtcp_mux; |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
525 | } |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
526 | |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
527 | static FsMediaType |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
528 | session_type_to_fs_media_type(PurpleMediaSessionType type) |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
529 | { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
530 | if (type & PURPLE_MEDIA_AUDIO) |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
531 | return FS_MEDIA_TYPE_AUDIO; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
532 | else if (type & PURPLE_MEDIA_VIDEO) |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
533 | return FS_MEDIA_TYPE_VIDEO; |
|
36333
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
534 | #ifdef HAVE_MEDIA_APPLICATION |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
535 | else if (type & PURPLE_MEDIA_APPLICATION) |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
536 | return FS_MEDIA_TYPE_APPLICATION; |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
537 | #endif |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
538 | else |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
539 | return 0; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
540 | } |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
541 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
542 | static FsStreamDirection |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
543 | session_type_to_fs_stream_direction(PurpleMediaSessionType type) |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
544 | { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
545 | if ((type & PURPLE_MEDIA_AUDIO) == PURPLE_MEDIA_AUDIO || |
|
36333
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
546 | (type & PURPLE_MEDIA_VIDEO) == PURPLE_MEDIA_VIDEO) |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
547 | return FS_DIRECTION_BOTH; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
548 | else if ((type & PURPLE_MEDIA_SEND_AUDIO) || |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
549 | (type & PURPLE_MEDIA_SEND_VIDEO)) |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
550 | return FS_DIRECTION_SEND; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
551 | else if ((type & PURPLE_MEDIA_RECV_AUDIO) || |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
552 | (type & PURPLE_MEDIA_RECV_VIDEO)) |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
553 | return FS_DIRECTION_RECV; |
|
36333
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
554 | #ifdef HAVE_MEDIA_APPLICATION |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
555 | else if ((type & PURPLE_MEDIA_APPLICATION) == PURPLE_MEDIA_APPLICATION) |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
556 | return FS_DIRECTION_BOTH; |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
557 | else if (type & PURPLE_MEDIA_SEND_APPLICATION) |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
558 | return FS_DIRECTION_SEND; |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
559 | else if (type & PURPLE_MEDIA_RECV_APPLICATION) |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
560 | return FS_DIRECTION_RECV; |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
561 | #endif |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
562 | else |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
563 | return FS_DIRECTION_NONE; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
564 | } |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
565 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
566 | static PurpleMediaSessionType |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
567 | session_type_from_fs(FsMediaType type, FsStreamDirection direction) |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
568 | { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
569 | PurpleMediaSessionType result = PURPLE_MEDIA_NONE; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
570 | if (type == FS_MEDIA_TYPE_AUDIO) { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
571 | if (direction & FS_DIRECTION_SEND) |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
572 | result |= PURPLE_MEDIA_SEND_AUDIO; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
573 | if (direction & FS_DIRECTION_RECV) |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
574 | result |= PURPLE_MEDIA_RECV_AUDIO; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
575 | } else if (type == FS_MEDIA_TYPE_VIDEO) { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
576 | if (direction & FS_DIRECTION_SEND) |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
577 | result |= PURPLE_MEDIA_SEND_VIDEO; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
578 | if (direction & FS_DIRECTION_RECV) |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
579 | result |= PURPLE_MEDIA_RECV_VIDEO; |
|
36333
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
580 | #ifdef HAVE_MEDIA_APPLICATION |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
581 | } else if (type == FS_MEDIA_TYPE_APPLICATION) { |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
582 | if (direction & FS_DIRECTION_SEND) |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
583 | result |= PURPLE_MEDIA_SEND_APPLICATION; |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
584 | if (direction & FS_DIRECTION_RECV) |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
585 | result |= PURPLE_MEDIA_RECV_APPLICATION; |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
586 | #endif |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
587 | } |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
588 | return result; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
589 | } |
|
29570
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
590 | |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
591 | static FsCandidate * |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
592 | candidate_to_fs(PurpleMediaCandidate *candidate) |
|
29570
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
593 | { |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
594 | FsCandidate *fscandidate; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
595 | gchar *foundation; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
596 | guint component_id; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
597 | gchar *ip; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
598 | guint port; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
599 | gchar *base_ip; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
600 | guint base_port; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
601 | PurpleMediaNetworkProtocol proto; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
602 | guint32 priority; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
603 | PurpleMediaCandidateType type; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
604 | gchar *username; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
605 | gchar *password; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
606 | guint ttl; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
607 | |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
608 | if (candidate == NULL) |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
609 | return NULL; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
610 | |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
611 | g_object_get(G_OBJECT(candidate), |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
612 | "foundation", &foundation, |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
613 | "component-id", &component_id, |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
614 | "ip", &ip, |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
615 | "port", &port, |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
616 | "base-ip", &base_ip, |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
617 | "base-port", &base_port, |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
618 | "protocol", &proto, |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
619 | "priority", &priority, |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
620 | "type", &type, |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
621 | "username", &username, |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
622 | "password", &password, |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
623 | "ttl", &ttl, |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
624 | NULL); |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
625 | |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
626 | fscandidate = fs_candidate_new(foundation, |
|
35978
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
627 | component_id, purple_media_candidate_type_to_fs(type), |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
628 | purple_media_network_protocol_to_fs(proto), ip, port); |
|
29570
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
629 | |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
630 | fscandidate->base_ip = base_ip; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
631 | fscandidate->base_port = base_port; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
632 | fscandidate->priority = priority; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
633 | fscandidate->username = username; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
634 | fscandidate->password = password; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
635 | fscandidate->ttl = ttl; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
636 | |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
637 | g_free(foundation); |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
638 | g_free(ip); |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
639 | return fscandidate; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
640 | } |
|
29583
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
641 | |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
642 | static GList * |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
643 | candidate_list_to_fs(GList *candidates) |
|
29583
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
644 | { |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
645 | GList *new_list = NULL; |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
646 | |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
647 | for (; candidates; candidates = g_list_next(candidates)) { |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
648 | new_list = g_list_prepend(new_list, |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
649 | candidate_to_fs(candidates->data)); |
|
29583
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
650 | } |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
651 | |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
652 | new_list = g_list_reverse(new_list); |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
653 | return new_list; |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
654 | } |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
655 | |
|
29570
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
656 | static PurpleMediaCandidate * |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
657 | candidate_from_fs(FsCandidate *fscandidate) |
|
29570
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
658 | { |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
659 | PurpleMediaCandidate *candidate; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
660 | |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
661 | if (fscandidate == NULL) |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
662 | return NULL; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
663 | |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
664 | candidate = purple_media_candidate_new(fscandidate->foundation, |
|
35978
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
665 | fscandidate->component_id, |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
666 | purple_media_candidate_type_from_fs(fscandidate->type), |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
667 | purple_media_network_protocol_from_fs(fscandidate->proto), |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
668 | fscandidate->ip, fscandidate->port); |
|
29570
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
669 | g_object_set(candidate, |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
670 | "base-ip", fscandidate->base_ip, |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
671 | "base-port", fscandidate->base_port, |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
672 | "priority", fscandidate->priority, |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
673 | "username", fscandidate->username, |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
674 | "password", fscandidate->password, |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
675 | "ttl", fscandidate->ttl, NULL); |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
676 | return candidate; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
677 | } |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
678 | |
|
29587
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
679 | static GList * |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
680 | candidate_list_from_fs(GList *candidates) |
|
29587
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
681 | { |
|
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
682 | GList *new_list = NULL; |
|
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
683 | |
|
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
684 | for (; candidates; candidates = g_list_next(candidates)) { |
|
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
685 | new_list = g_list_prepend(new_list, |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
686 | candidate_from_fs(candidates->data)); |
|
29587
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
687 | } |
|
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
688 | |
|
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
689 | new_list = g_list_reverse(new_list); |
|
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
690 | return new_list; |
|
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
691 | } |
|
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
692 | |
|
29585
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
693 | static FsCodec * |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
694 | codec_to_fs(const PurpleMediaCodec *codec) |
|
29585
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
695 | { |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
696 | FsCodec *new_codec; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
697 | gint id; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
698 | char *encoding_name; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
699 | PurpleMediaSessionType media_type; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
700 | guint clock_rate; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
701 | guint channels; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
702 | GList *iter; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
703 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
704 | if (codec == NULL) |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
705 | return NULL; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
706 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
707 | g_object_get(G_OBJECT(codec), |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
708 | "id", &id, |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
709 | "encoding-name", &encoding_name, |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
710 | "media-type", &media_type, |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
711 | "clock-rate", &clock_rate, |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
712 | "channels", &channels, |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
713 | "optional-params", &iter, |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
714 | NULL); |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
715 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
716 | new_codec = fs_codec_new(id, encoding_name, |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
717 | session_type_to_fs_media_type(media_type), |
|
29585
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
718 | clock_rate); |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
719 | new_codec->channels = channels; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
720 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
721 | for (; iter; iter = g_list_next(iter)) { |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
722 | PurpleKeyValuePair *param = (PurpleKeyValuePair*)iter->data; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
723 | fs_codec_add_optional_parameter(new_codec, |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
724 | param->key, param->value); |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
725 | } |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
726 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
727 | g_free(encoding_name); |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
728 | return new_codec; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
729 | } |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
730 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
731 | static PurpleMediaCodec * |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
732 | codec_from_fs(const FsCodec *codec) |
|
29585
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
733 | { |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
734 | PurpleMediaCodec *new_codec; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
735 | GList *iter; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
736 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
737 | if (codec == NULL) |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
738 | return NULL; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
739 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
740 | new_codec = purple_media_codec_new(codec->id, codec->encoding_name, |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
741 | session_type_from_fs(codec->media_type, |
|
29585
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
742 | FS_DIRECTION_BOTH), codec->clock_rate); |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
743 | g_object_set(new_codec, "channels", codec->channels, NULL); |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
744 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
745 | for (iter = codec->optional_params; iter; iter = g_list_next(iter)) { |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
746 | FsCodecParameter *param = (FsCodecParameter*)iter->data; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
747 | purple_media_codec_add_optional_parameter(new_codec, |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
748 | param->name, param->value); |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
749 | } |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
750 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
751 | return new_codec; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
752 | } |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
753 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
754 | static GList * |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
755 | codec_list_from_fs(GList *codecs) |
|
29585
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
756 | { |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
757 | GList *new_list = NULL; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
758 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
759 | for (; codecs; codecs = g_list_next(codecs)) { |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
760 | new_list = g_list_prepend(new_list, |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
761 | codec_from_fs(codecs->data)); |
|
29585
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
762 | } |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
763 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
764 | new_list = g_list_reverse(new_list); |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
765 | return new_list; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
766 | } |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
767 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
768 | static GList * |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
769 | codec_list_to_fs(GList *codecs) |
|
29585
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
770 | { |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
771 | GList *new_list = NULL; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
772 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
773 | for (; codecs; codecs = g_list_next(codecs)) { |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
774 | new_list = g_list_prepend(new_list, |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
775 | codec_to_fs(codecs->data)); |
|
29585
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
776 | } |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
777 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
778 | new_list = g_list_reverse(new_list); |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
779 | return new_list; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
780 | } |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
781 | |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
782 | static PurpleMediaBackendFs2Session * |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
783 | get_session(PurpleMediaBackendFs2 *self, const gchar *sess_id) |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
784 | { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
785 | PurpleMediaBackendFs2Private *priv; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
786 | PurpleMediaBackendFs2Session *session = NULL; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
787 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
788 | g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), NULL); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
789 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
790 | priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
791 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
792 | if (priv->sessions != NULL) |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
793 | session = g_hash_table_lookup(priv->sessions, sess_id); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
794 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
795 | return session; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
796 | } |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
797 | |
|
29579
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
798 | static FsParticipant * |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
799 | get_participant(PurpleMediaBackendFs2 *self, const gchar *name) |
|
29579
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
800 | { |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
801 | PurpleMediaBackendFs2Private *priv; |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
802 | FsParticipant *participant = NULL; |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
803 | |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
804 | g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), NULL); |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
805 | |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
806 | priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
807 | |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
808 | if (priv->participants != NULL) |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
809 | participant = g_hash_table_lookup(priv->participants, name); |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
810 | |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
811 | return participant; |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
812 | } |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
813 | |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
814 | static PurpleMediaBackendFs2Stream * |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
815 | get_stream(PurpleMediaBackendFs2 *self, |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
816 | const gchar *sess_id, const gchar *name) |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
817 | { |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
818 | PurpleMediaBackendFs2Private *priv; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
819 | GList *streams; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
820 | |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
821 | g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), NULL); |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
822 | |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
823 | priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
824 | streams = priv->streams; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
825 | |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
826 | for (; streams; streams = g_list_next(streams)) { |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
827 | PurpleMediaBackendFs2Stream *stream = streams->data; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
828 | if (!strcmp(stream->session->id, sess_id) && |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
829 | !strcmp(stream->participant, name)) |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
830 | return stream; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
831 | } |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
832 | |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
833 | return NULL; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
834 | } |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
835 | |
|
29592
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
836 | static GList * |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
837 | get_streams(PurpleMediaBackendFs2 *self, |
|
29592
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
838 | const gchar *sess_id, const gchar *name) |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
839 | { |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
840 | PurpleMediaBackendFs2Private *priv; |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
841 | GList *streams, *ret = NULL; |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
842 | |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
843 | g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), NULL); |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
844 | |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
845 | priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
846 | streams = priv->streams; |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
847 | |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
848 | for (; streams; streams = g_list_next(streams)) { |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
849 | PurpleMediaBackendFs2Stream *stream = streams->data; |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
850 | |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
851 | if (sess_id != NULL && strcmp(stream->session->id, sess_id)) |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
852 | continue; |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
853 | else if (name != NULL && strcmp(stream->participant, name)) |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
854 | continue; |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
855 | else |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
856 | ret = g_list_prepend(ret, stream); |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
857 | } |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
858 | |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
859 | ret = g_list_reverse(ret); |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
860 | return ret; |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
861 | } |
|
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
862 | |
|
29570
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
863 | static PurpleMediaBackendFs2Session * |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
864 | get_session_from_fs_stream(PurpleMediaBackendFs2 *self, FsStream *stream) |
|
29570
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
865 | { |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
866 | PurpleMediaBackendFs2Private *priv = |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
867 | PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
868 | FsSession *fssession; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
869 | GList *values; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
870 | |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
871 | g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), NULL); |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
872 | g_return_val_if_fail(FS_IS_STREAM(stream), NULL); |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
873 | |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
874 | g_object_get(stream, "session", &fssession, NULL); |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
875 | |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
876 | values = g_hash_table_get_values(priv->sessions); |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
877 | |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
878 | for (; values; values = g_list_delete_link(values, values)) { |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
879 | PurpleMediaBackendFs2Session *session = values->data; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
880 | |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
881 | if (session->session == fssession) { |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
882 | g_list_free(values); |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
883 | g_object_unref(fssession); |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
884 | return session; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
885 | } |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
886 | } |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
887 | |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
888 | g_object_unref(fssession); |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
889 | return NULL; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
890 | } |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
891 | |
|
31557
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
892 | static gdouble |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
893 | gst_msg_db_to_percent(GstMessage *msg, gchar *value_name) |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
894 | { |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
895 | const GValue *list; |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
896 | const GValue *value; |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
897 | gdouble value_db; |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
898 | gdouble percent; |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
899 | |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
900 | list = gst_structure_get_value(gst_message_get_structure(msg), value_name); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
901 | G_GNUC_BEGIN_IGNORE_DEPRECATIONS |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
902 | value = g_value_array_get_nth(g_value_get_boxed(list), 0); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
903 | G_GNUC_END_IGNORE_DEPRECATIONS |
|
31557
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
904 | value_db = g_value_get_double(value); |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
905 | percent = pow(10, value_db / 20); |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
906 | return (percent > 1.0) ? 1.0 : percent; |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
907 | } |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
908 | |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
909 | static void |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
910 | purple_media_error_fs(PurpleMedia *media, const gchar *error, |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
911 | const GstStructure *fs_error) |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
912 | { |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
913 | const gchar *error_msg = gst_structure_get_string(fs_error, "error-msg"); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
914 | |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
915 | purple_media_error(media, "%s%s%s", error, |
|
37217
6da7cadb323f
Remove Farsight support (ok'd by elb)
Michael McConville <mmcconville@mykolab.com>
parents:
37163
diff
changeset
|
916 | error_msg ? _("\n\nMessage from Farstream: ") : "", |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
917 | error_msg ? error_msg : ""); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
918 | } |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
919 | |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
920 | static void |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
921 | gst_handle_message_element(GstBus *bus, GstMessage *msg, |
|
29570
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
922 | PurpleMediaBackendFs2 *self) |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
923 | { |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
924 | PurpleMediaBackendFs2Private *priv = |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
925 | PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
926 | GstElement *src = GST_ELEMENT(GST_MESSAGE_SRC(msg)); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
927 | static guint level_id = 0; |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
928 | const GstStructure *structure = gst_message_get_structure(msg); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
929 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
930 | if (level_id == 0) |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
931 | level_id = g_signal_lookup("level", PURPLE_TYPE_MEDIA); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
932 | |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
933 | if (gst_structure_has_name(structure, "level")) { |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
934 | GstElement *src = GST_ELEMENT(GST_MESSAGE_SRC(msg)); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
935 | gchar *name; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
936 | gchar *participant = NULL; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
937 | PurpleMediaBackendFs2Session *session = NULL; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
938 | gdouble percent; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
939 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
940 | if (!PURPLE_IS_MEDIA(priv->media) || |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
941 | GST_ELEMENT_PARENT(src) != priv->confbin) |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
942 | return; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
943 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
944 | name = gst_element_get_name(src); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
945 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
946 | if (!strncmp(name, "sendlevel_", 10)) { |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
947 | session = get_session(self, name+10); |
|
31566
fa37798387fa
Make the simple silence suppression stuff optional per-account. Fixes #13180.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31557
diff
changeset
|
948 | if (priv->silence_threshold > 0) { |
|
fa37798387fa
Make the simple silence suppression stuff optional per-account. Fixes #13180.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31557
diff
changeset
|
949 | percent = gst_msg_db_to_percent(msg, "decay"); |
|
fa37798387fa
Make the simple silence suppression stuff optional per-account. Fixes #13180.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31557
diff
changeset
|
950 | g_object_set(session->srcvalve, |
|
fa37798387fa
Make the simple silence suppression stuff optional per-account. Fixes #13180.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31557
diff
changeset
|
951 | "drop", (percent < priv->silence_threshold), NULL); |
|
fa37798387fa
Make the simple silence suppression stuff optional per-account. Fixes #13180.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31557
diff
changeset
|
952 | } |
|
31557
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
953 | } |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
954 | |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
955 | g_free(name); |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
956 | |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
957 | if (!g_signal_has_handler_pending(priv->media, level_id, 0, FALSE)) |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
958 | return; |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
959 | |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
960 | if (!session) { |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
961 | GList *iter = priv->streams; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
962 | PurpleMediaBackendFs2Stream *stream; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
963 | for (; iter; iter = g_list_next(iter)) { |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
964 | stream = iter->data; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
965 | if (stream->level == src) { |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
966 | session = stream->session; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
967 | participant = stream->participant; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
968 | break; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
969 | } |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
970 | } |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
971 | } |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
972 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
973 | if (!session) |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
974 | return; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
975 | |
|
31557
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
976 | percent = gst_msg_db_to_percent(msg, "rms"); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
977 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
978 | g_signal_emit(priv->media, level_id, 0, |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
979 | session->id, participant, percent); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
980 | return; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
981 | } |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
982 | |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
983 | if (!FS_IS_CONFERENCE(src) || !PURPLE_IS_MEDIA_BACKEND(self) || |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
984 | priv->conference != FS_CONFERENCE(src)) |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
985 | return; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
986 | |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
987 | if (gst_structure_has_name(structure, "farstream-error")) { |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
988 | FsError error_no; |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
989 | gboolean error_emitted = FALSE; |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
990 | gst_structure_get_enum(structure, "error-no", |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
991 | FS_TYPE_ERROR, (gint*)&error_no); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
992 | switch (error_no) { |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
993 | case FS_ERROR_CONSTRUCTION: |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
994 | purple_media_error_fs(priv->media, |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
995 | _("Error initializing the call. " |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
996 | "This probably denotes problem in " |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
997 | "installation of GStreamer or Farstream."), |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
998 | structure); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
999 | error_emitted = TRUE; |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1000 | break; |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1001 | case FS_ERROR_NETWORK: |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1002 | purple_media_error_fs(priv->media, _("Network error."), |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1003 | structure); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1004 | error_emitted = TRUE; |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1005 | purple_media_end(priv->media, NULL, NULL); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1006 | break; |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1007 | case FS_ERROR_NEGOTIATION_FAILED: |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1008 | purple_media_error_fs(priv->media, |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1009 | _("Codec negotiation failed. " |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1010 | "This problem might be resolved by installing " |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1011 | "more GStreamer codecs."), |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1012 | structure); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1013 | error_emitted = TRUE; |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1014 | purple_media_end(priv->media, NULL, NULL); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1015 | break; |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1016 | case FS_ERROR_NO_CODECS: |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1017 | purple_media_error(priv->media, |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1018 | _("No codecs found. " |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1019 | "Install some GStreamer codecs found " |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1020 | "in GStreamer plugins packages.")); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1021 | error_emitted = TRUE; |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1022 | purple_media_end(priv->media, NULL, NULL); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1023 | break; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1024 | default: |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1025 | purple_debug_error("backend-fs2", |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1026 | "farstream-error: %i: %s\n", |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1027 | error_no, |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1028 | gst_structure_get_string(structure, "error-msg")); |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1029 | break; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1030 | } |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1031 | |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1032 | if (FS_ERROR_IS_FATAL(error_no)) { |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1033 | if (!error_emitted) |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1034 | purple_media_error(priv->media, |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1035 | _("A non-recoverable Farstream error has occurred.")); |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1036 | purple_media_end(priv->media, NULL, NULL); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1037 | } |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1038 | } else if (gst_structure_has_name(structure, |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1039 | "farstream-new-local-candidate")) { |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1040 | const GValue *value; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1041 | FsStream *stream; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1042 | FsCandidate *local_candidate; |
|
29570
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1043 | PurpleMediaCandidate *candidate; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1044 | FsParticipant *participant; |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1045 | PurpleMediaBackendFs2Session *session; |
|
29587
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
1046 | PurpleMediaBackendFs2Stream *media_stream; |
|
29570
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1047 | gchar *name; |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1048 | |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1049 | value = gst_structure_get_value(structure, "stream"); |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1050 | stream = g_value_get_object(value); |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1051 | value = gst_structure_get_value(structure, "candidate"); |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1052 | local_candidate = g_value_get_boxed(value); |
|
29570
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1053 | |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1054 | session = get_session_from_fs_stream(self, stream); |
|
29570
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1055 | |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1056 | purple_debug_info("backend-fs2", |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1057 | "got new local candidate: %s\n", |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1058 | local_candidate->foundation); |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1059 | |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1060 | g_object_get(stream, "participant", &participant, NULL); |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1061 | g_object_get(participant, "cname", &name, NULL); |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1062 | g_object_unref(participant); |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1063 | |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1064 | media_stream = get_stream(self, session->id, name); |
|
29587
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
1065 | media_stream->local_candidates = g_list_append( |
|
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
1066 | media_stream->local_candidates, |
|
29570
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1067 | fs_candidate_copy(local_candidate)); |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1068 | |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1069 | candidate = candidate_from_fs(local_candidate); |
|
29570
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1070 | g_signal_emit_by_name(self, "new-candidate", |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1071 | session->id, name, candidate); |
|
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1072 | g_object_unref(candidate); |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1073 | } else if (gst_structure_has_name(structure, |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1074 | "farstream-local-candidates-prepared")) { |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1075 | const GValue *value; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1076 | FsStream *stream; |
|
29573
2377156c8bed
Move Farsight 2's local-candidates-prepared signal to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29572
diff
changeset
|
1077 | FsParticipant *participant; |
|
2377156c8bed
Move Farsight 2's local-candidates-prepared signal to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29572
diff
changeset
|
1078 | PurpleMediaBackendFs2Session *session; |
|
2377156c8bed
Move Farsight 2's local-candidates-prepared signal to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29572
diff
changeset
|
1079 | gchar *name; |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1080 | |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1081 | value = gst_structure_get_value(structure, "stream"); |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1082 | stream = g_value_get_object(value); |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1083 | session = get_session_from_fs_stream(self, stream); |
|
29573
2377156c8bed
Move Farsight 2's local-candidates-prepared signal to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29572
diff
changeset
|
1084 | |
|
2377156c8bed
Move Farsight 2's local-candidates-prepared signal to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29572
diff
changeset
|
1085 | g_object_get(stream, "participant", &participant, NULL); |
|
2377156c8bed
Move Farsight 2's local-candidates-prepared signal to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29572
diff
changeset
|
1086 | g_object_get(participant, "cname", &name, NULL); |
|
2377156c8bed
Move Farsight 2's local-candidates-prepared signal to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29572
diff
changeset
|
1087 | g_object_unref(participant); |
|
2377156c8bed
Move Farsight 2's local-candidates-prepared signal to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29572
diff
changeset
|
1088 | |
|
2377156c8bed
Move Farsight 2's local-candidates-prepared signal to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29572
diff
changeset
|
1089 | g_signal_emit_by_name(self, "candidates-prepared", |
|
2377156c8bed
Move Farsight 2's local-candidates-prepared signal to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29572
diff
changeset
|
1090 | session->id, name); |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1091 | } else if (gst_structure_has_name(structure, |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1092 | "farstream-new-active-candidate-pair")) { |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1093 | const GValue *value; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1094 | FsStream *stream; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1095 | FsCandidate *local_candidate; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1096 | FsCandidate *remote_candidate; |
|
29572
4e4dbdcf5281
Move Farsight 2's new-active-candidate-pair into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29571
diff
changeset
|
1097 | FsParticipant *participant; |
|
4e4dbdcf5281
Move Farsight 2's new-active-candidate-pair into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29571
diff
changeset
|
1098 | PurpleMediaBackendFs2Session *session; |
|
4e4dbdcf5281
Move Farsight 2's new-active-candidate-pair into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29571
diff
changeset
|
1099 | PurpleMediaCandidate *lcandidate, *rcandidate; |
|
4e4dbdcf5281
Move Farsight 2's new-active-candidate-pair into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29571
diff
changeset
|
1100 | gchar *name; |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1101 | |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1102 | value = gst_structure_get_value(structure, "stream"); |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1103 | stream = g_value_get_object(value); |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1104 | value = gst_structure_get_value(structure, "local-candidate"); |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1105 | local_candidate = g_value_get_boxed(value); |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1106 | value = gst_structure_get_value(structure, "remote-candidate"); |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1107 | remote_candidate = g_value_get_boxed(value); |
|
29572
4e4dbdcf5281
Move Farsight 2's new-active-candidate-pair into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29571
diff
changeset
|
1108 | |
|
4e4dbdcf5281
Move Farsight 2's new-active-candidate-pair into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29571
diff
changeset
|
1109 | g_object_get(stream, "participant", &participant, NULL); |
|
4e4dbdcf5281
Move Farsight 2's new-active-candidate-pair into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29571
diff
changeset
|
1110 | g_object_get(participant, "cname", &name, NULL); |
|
4e4dbdcf5281
Move Farsight 2's new-active-candidate-pair into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29571
diff
changeset
|
1111 | g_object_unref(participant); |
|
4e4dbdcf5281
Move Farsight 2's new-active-candidate-pair into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29571
diff
changeset
|
1112 | |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1113 | session = get_session_from_fs_stream(self, stream); |
|
29572
4e4dbdcf5281
Move Farsight 2's new-active-candidate-pair into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29571
diff
changeset
|
1114 | |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1115 | lcandidate = candidate_from_fs(local_candidate); |
|
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1116 | rcandidate = candidate_from_fs(remote_candidate); |
|
29572
4e4dbdcf5281
Move Farsight 2's new-active-candidate-pair into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29571
diff
changeset
|
1117 | |
|
4e4dbdcf5281
Move Farsight 2's new-active-candidate-pair into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29571
diff
changeset
|
1118 | g_signal_emit_by_name(self, "active-candidate-pair", |
|
4e4dbdcf5281
Move Farsight 2's new-active-candidate-pair into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29571
diff
changeset
|
1119 | session->id, name, lcandidate, rcandidate); |
|
4e4dbdcf5281
Move Farsight 2's new-active-candidate-pair into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29571
diff
changeset
|
1120 | |
|
4e4dbdcf5281
Move Farsight 2's new-active-candidate-pair into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29571
diff
changeset
|
1121 | g_object_unref(lcandidate); |
|
4e4dbdcf5281
Move Farsight 2's new-active-candidate-pair into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29571
diff
changeset
|
1122 | g_object_unref(rcandidate); |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1123 | } else if (gst_structure_has_name(structure, |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1124 | "farstream-recv-codecs-changed")) { |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1125 | const GValue *value; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1126 | GList *codecs; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1127 | FsCodec *codec; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1128 | |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1129 | value = gst_structure_get_value(structure, "codecs"); |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1130 | codecs = g_value_get_boxed(value); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1131 | codec = codecs->data; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1132 | |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1133 | purple_debug_info("backend-fs2", |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1134 | "farstream-recv-codecs-changed: %s\n", |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1135 | codec->encoding_name); |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1136 | } else if (gst_structure_has_name(structure, |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1137 | "farstream-component-state-changed")) { |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1138 | const GValue *value; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1139 | FsStreamState fsstate; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1140 | guint component; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1141 | const gchar *state; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1142 | |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1143 | value = gst_structure_get_value(structure, "state"); |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1144 | fsstate = g_value_get_enum(value); |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1145 | value = gst_structure_get_value(structure, "component"); |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1146 | component = g_value_get_uint(value); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1147 | |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1148 | switch (fsstate) { |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1149 | case FS_STREAM_STATE_FAILED: |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1150 | state = "FAILED"; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1151 | break; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1152 | case FS_STREAM_STATE_DISCONNECTED: |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1153 | state = "DISCONNECTED"; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1154 | break; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1155 | case FS_STREAM_STATE_GATHERING: |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1156 | state = "GATHERING"; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1157 | break; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1158 | case FS_STREAM_STATE_CONNECTING: |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1159 | state = "CONNECTING"; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1160 | break; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1161 | case FS_STREAM_STATE_CONNECTED: |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1162 | state = "CONNECTED"; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1163 | break; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1164 | case FS_STREAM_STATE_READY: |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1165 | state = "READY"; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1166 | break; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1167 | default: |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1168 | state = "UNKNOWN"; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1169 | break; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1170 | } |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1171 | |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1172 | purple_debug_info("backend-fs2", |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1173 | "farstream-component-state-changed: " |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1174 | "component: %u state: %s\n", |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1175 | component, state); |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1176 | } else if (gst_structure_has_name(structure, |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1177 | "farstream-send-codec-changed")) { |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1178 | const GValue *value; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1179 | FsCodec *codec; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1180 | gchar *codec_str; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1181 | |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1182 | value = gst_structure_get_value(structure, "codec"); |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1183 | codec = g_value_get_boxed(value); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1184 | codec_str = fs_codec_to_string(codec); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1185 | |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1186 | purple_debug_info("backend-fs2", |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1187 | "farstream-send-codec-changed: codec: %s\n", |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1188 | codec_str); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1189 | |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1190 | g_free(codec_str); |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1191 | } else if (gst_structure_has_name(structure, |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1192 | "farstream-codecs-changed")) { |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1193 | const GValue *value; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1194 | FsSession *fssession; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1195 | GList *sessions; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1196 | |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1197 | value = gst_structure_get_value(structure, "session"); |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1198 | fssession = g_value_get_object(value); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1199 | sessions = g_hash_table_get_values(priv->sessions); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1200 | |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1201 | for (; sessions; sessions = |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1202 | g_list_delete_link(sessions, sessions)) { |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1203 | PurpleMediaBackendFs2Session *session = sessions->data; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1204 | gchar *session_id; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1205 | |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1206 | if (session->session != fssession) |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1207 | continue; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1208 | |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1209 | session_id = g_strdup(session->id); |
|
29571
f5b8fe67c87f
Move handling Farsight 2's codecs-changed signal into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29570
diff
changeset
|
1210 | g_signal_emit_by_name(self, "codecs-changed", |
|
f5b8fe67c87f
Move handling Farsight 2's codecs-changed signal into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29570
diff
changeset
|
1211 | session_id); |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1212 | g_free(session_id); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1213 | g_list_free(sessions); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1214 | break; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1215 | } |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1216 | } |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1217 | } |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1218 | |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1219 | static void |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1220 | gst_handle_message_error(GstBus *bus, GstMessage *msg, |
|
29570
3c71157baa81
Move handling Farsight 2's new-local-candidate signal in Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29569
diff
changeset
|
1221 | PurpleMediaBackendFs2 *self) |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1222 | { |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1223 | PurpleMediaBackendFs2Private *priv = |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1224 | PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1225 | GstElement *element = GST_ELEMENT(GST_MESSAGE_SRC(msg)); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1226 | GstElement *lastElement = NULL; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1227 | GList *sessions; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1228 | |
|
31807
ea1e6ba109cc
media: Fix a NULL pointer deref crash, and add diagnostic logging.
Paul Aurich <darkrain42@pidgin.im>
parents:
31687
diff
changeset
|
1229 | GError *error = NULL; |
|
ea1e6ba109cc
media: Fix a NULL pointer deref crash, and add diagnostic logging.
Paul Aurich <darkrain42@pidgin.im>
parents:
31687
diff
changeset
|
1230 | gchar *debug_msg = NULL; |
|
ea1e6ba109cc
media: Fix a NULL pointer deref crash, and add diagnostic logging.
Paul Aurich <darkrain42@pidgin.im>
parents:
31687
diff
changeset
|
1231 | |
|
ea1e6ba109cc
media: Fix a NULL pointer deref crash, and add diagnostic logging.
Paul Aurich <darkrain42@pidgin.im>
parents:
31687
diff
changeset
|
1232 | gst_message_parse_error(msg, &error, &debug_msg); |
|
ea1e6ba109cc
media: Fix a NULL pointer deref crash, and add diagnostic logging.
Paul Aurich <darkrain42@pidgin.im>
parents:
31687
diff
changeset
|
1233 | purple_debug_error("backend-fs2", "gst error %s\ndebugging: %s\n", |
|
ea1e6ba109cc
media: Fix a NULL pointer deref crash, and add diagnostic logging.
Paul Aurich <darkrain42@pidgin.im>
parents:
31687
diff
changeset
|
1234 | error->message, debug_msg); |
|
ea1e6ba109cc
media: Fix a NULL pointer deref crash, and add diagnostic logging.
Paul Aurich <darkrain42@pidgin.im>
parents:
31687
diff
changeset
|
1235 | |
|
ea1e6ba109cc
media: Fix a NULL pointer deref crash, and add diagnostic logging.
Paul Aurich <darkrain42@pidgin.im>
parents:
31687
diff
changeset
|
1236 | g_error_free(error); |
|
ea1e6ba109cc
media: Fix a NULL pointer deref crash, and add diagnostic logging.
Paul Aurich <darkrain42@pidgin.im>
parents:
31687
diff
changeset
|
1237 | g_free(debug_msg); |
|
ea1e6ba109cc
media: Fix a NULL pointer deref crash, and add diagnostic logging.
Paul Aurich <darkrain42@pidgin.im>
parents:
31687
diff
changeset
|
1238 | |
|
31824
6942cb72f357
media/backend-fs2: Better fix for the NULL deref crash here.
Paul Aurich <darkrain42@pidgin.im>
parents:
31807
diff
changeset
|
1239 | while (element && !GST_IS_PIPELINE(element)) { |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1240 | if (element == priv->confbin) |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1241 | break; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1242 | |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1243 | lastElement = element; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1244 | element = GST_ELEMENT_PARENT(element); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1245 | } |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1246 | |
|
31824
6942cb72f357
media/backend-fs2: Better fix for the NULL deref crash here.
Paul Aurich <darkrain42@pidgin.im>
parents:
31807
diff
changeset
|
1247 | if (!element || !GST_IS_PIPELINE(element)) |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1248 | return; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1249 | |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1250 | sessions = purple_media_get_session_ids(priv->media); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1251 | |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1252 | for (; sessions; sessions = g_list_delete_link(sessions, sessions)) { |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1253 | if (purple_media_get_src(priv->media, sessions->data) |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1254 | != lastElement) |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1255 | continue; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1256 | |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1257 | if (purple_media_get_session_type(priv->media, sessions->data) |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1258 | & PURPLE_MEDIA_AUDIO) |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1259 | purple_media_error(priv->media, |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1260 | _("Error with your microphone")); |
|
36333
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1261 | else if (purple_media_get_session_type(priv->media, |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1262 | sessions->data) & PURPLE_MEDIA_VIDEO) |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1263 | purple_media_error(priv->media, |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1264 | _("Error with your webcam")); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1265 | |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1266 | break; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1267 | } |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1268 | |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1269 | g_list_free(sessions); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1270 | |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1271 | purple_media_error(priv->media, _("Conference error")); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1272 | purple_media_end(priv->media, NULL, NULL); |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1273 | } |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1274 | |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
1275 | static gboolean |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1276 | gst_bus_cb(GstBus *bus, GstMessage *msg, PurpleMediaBackendFs2 *self) |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1277 | { |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1278 | switch(GST_MESSAGE_TYPE(msg)) { |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1279 | case GST_MESSAGE_ELEMENT: |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1280 | gst_handle_message_element(bus, msg, self); |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1281 | break; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1282 | case GST_MESSAGE_ERROR: |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1283 | gst_handle_message_error(bus, msg, self); |
|
29568
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1284 | break; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1285 | default: |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1286 | break; |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1287 | } |
|
e2fcbaf4409c
Transfer some GStreamer message handling to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29564
diff
changeset
|
1288 | |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1289 | return TRUE; |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1290 | } |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1291 | |
|
29564
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
1292 | static void |
|
31618
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1293 | remove_element(GstElement *element) |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1294 | { |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1295 | if (element) { |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1296 | gst_element_set_locked_state(element, TRUE); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1297 | gst_element_set_state(element, GST_STATE_NULL); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1298 | gst_bin_remove(GST_BIN(GST_ELEMENT_PARENT(element)), element); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1299 | } |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1300 | } |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1301 | |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1302 | static void |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1303 | state_changed_cb(PurpleMedia *media, PurpleMediaState state, |
|
29564
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
1304 | gchar *sid, gchar *name, PurpleMediaBackendFs2 *self) |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
1305 | { |
|
31618
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1306 | if (state == PURPLE_MEDIA_STATE_END) { |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1307 | PurpleMediaBackendFs2Private *priv = |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1308 | PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1309 | |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1310 | if (sid && name) { |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1311 | PurpleMediaBackendFs2Stream *stream = get_stream(self, sid, name); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1312 | gst_object_unref(stream->stream); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1313 | |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1314 | priv->streams = g_list_remove(priv->streams, stream); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1315 | |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1316 | remove_element(stream->src); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1317 | remove_element(stream->tee); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1318 | remove_element(stream->volume); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1319 | remove_element(stream->level); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1320 | remove_element(stream->fakesink); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1321 | remove_element(stream->queue); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1322 | |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1323 | free_stream(stream); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1324 | } else if (sid && !name) { |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1325 | PurpleMediaBackendFs2Session *session = get_session(self, sid); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1326 | GstPad *pad; |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1327 | |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1328 | g_object_get(session->session, "sink-pad", &pad, NULL); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1329 | gst_pad_unlink(GST_PAD_PEER(pad), pad); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1330 | gst_object_unref(pad); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1331 | |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1332 | gst_object_unref(session->session); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1333 | g_hash_table_remove(priv->sessions, session->id); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1334 | |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1335 | pad = gst_pad_get_peer(session->srcpad); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1336 | gst_element_remove_pad(GST_ELEMENT_PARENT(pad), pad); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1337 | gst_object_unref(pad); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1338 | gst_object_unref(session->srcpad); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1339 | |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1340 | remove_element(session->srcvalve); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1341 | remove_element(session->tee); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1342 | |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1343 | free_session(session); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1344 | } |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1345 | |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1346 | purple_media_manager_remove_output_windows( |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1347 | purple_media_get_manager(media), media, sid, name); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1348 | } |
|
29564
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
1349 | } |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
1350 | |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
1351 | static void |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1352 | stream_info_cb(PurpleMedia *media, PurpleMediaInfoType type, |
|
29564
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
1353 | gchar *sid, gchar *name, gboolean local, |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
1354 | PurpleMediaBackendFs2 *self) |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
1355 | { |
|
29619
5c64f74c2ebd
Handle individual streams in the Fs2 backend's stream-info callback for accept
Michael Ruprecht <maiku@pidgin.im>
parents:
29618
diff
changeset
|
1356 | if (type == PURPLE_MEDIA_INFO_ACCEPT && sid != NULL && name != NULL) { |
|
5c64f74c2ebd
Handle individual streams in the Fs2 backend's stream-info callback for accept
Michael Ruprecht <maiku@pidgin.im>
parents:
29618
diff
changeset
|
1357 | PurpleMediaBackendFs2Stream *stream = |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1358 | get_stream(self, sid, name); |
|
29619
5c64f74c2ebd
Handle individual streams in the Fs2 backend's stream-info callback for accept
Michael Ruprecht <maiku@pidgin.im>
parents:
29618
diff
changeset
|
1359 | GError *err = NULL; |
|
29592
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
1360 | |
|
29619
5c64f74c2ebd
Handle individual streams in the Fs2 backend's stream-info callback for accept
Michael Ruprecht <maiku@pidgin.im>
parents:
29618
diff
changeset
|
1361 | g_object_set(G_OBJECT(stream->stream), "direction", |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1362 | session_type_to_fs_stream_direction( |
|
29619
5c64f74c2ebd
Handle individual streams in the Fs2 backend's stream-info callback for accept
Michael Ruprecht <maiku@pidgin.im>
parents:
29618
diff
changeset
|
1363 | stream->session->type), NULL); |
|
29592
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
1364 | |
|
29648
be1362619ef2
Allow connection checks before acceptance. Fixes Empathy<->Pidgin.
Michael Ruprecht <maiku@pidgin.im>
parents:
29623
diff
changeset
|
1365 | if (stream->remote_candidates == NULL || |
|
be1362619ef2
Allow connection checks before acceptance. Fixes Empathy<->Pidgin.
Michael Ruprecht <maiku@pidgin.im>
parents:
29623
diff
changeset
|
1366 | purple_media_is_initiator(media, sid, name)) |
|
29619
5c64f74c2ebd
Handle individual streams in the Fs2 backend's stream-info callback for accept
Michael Ruprecht <maiku@pidgin.im>
parents:
29618
diff
changeset
|
1367 | return; |
|
29592
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
1368 | |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1369 | if (stream->supports_add) |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1370 | fs_stream_add_remote_candidates(stream->stream, |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1371 | stream->remote_candidates, &err); |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1372 | else |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1373 | fs_stream_force_remote_candidates(stream->stream, |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1374 | stream->remote_candidates, &err); |
|
29592
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
1375 | |
|
29619
5c64f74c2ebd
Handle individual streams in the Fs2 backend's stream-info callback for accept
Michael Ruprecht <maiku@pidgin.im>
parents:
29618
diff
changeset
|
1376 | if (err == NULL) |
|
5c64f74c2ebd
Handle individual streams in the Fs2 backend's stream-info callback for accept
Michael Ruprecht <maiku@pidgin.im>
parents:
29618
diff
changeset
|
1377 | return; |
|
29592
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
1378 | |
|
29619
5c64f74c2ebd
Handle individual streams in the Fs2 backend's stream-info callback for accept
Michael Ruprecht <maiku@pidgin.im>
parents:
29618
diff
changeset
|
1379 | purple_debug_error("backend-fs2", "Error adding " |
|
5c64f74c2ebd
Handle individual streams in the Fs2 backend's stream-info callback for accept
Michael Ruprecht <maiku@pidgin.im>
parents:
29618
diff
changeset
|
1380 | "remote candidates: %s\n", |
|
5c64f74c2ebd
Handle individual streams in the Fs2 backend's stream-info callback for accept
Michael Ruprecht <maiku@pidgin.im>
parents:
29618
diff
changeset
|
1381 | err->message); |
|
5c64f74c2ebd
Handle individual streams in the Fs2 backend's stream-info callback for accept
Michael Ruprecht <maiku@pidgin.im>
parents:
29618
diff
changeset
|
1382 | g_error_free(err); |
|
29603
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1383 | } else if (local == TRUE && (type == PURPLE_MEDIA_INFO_MUTE || |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1384 | type == PURPLE_MEDIA_INFO_UNMUTE)) { |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1385 | PurpleMediaBackendFs2Private *priv = |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1386 | PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1387 | gboolean active = (type == PURPLE_MEDIA_INFO_MUTE); |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1388 | GList *sessions; |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1389 | |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1390 | if (sid == NULL) |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1391 | sessions = g_hash_table_get_values(priv->sessions); |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1392 | else |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1393 | sessions = g_list_prepend(NULL, |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1394 | get_session(self, sid)); |
|
29603
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1395 | |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1396 | purple_debug_info("media", "Turning mute %s\n", |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1397 | active ? "on" : "off"); |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1398 | |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1399 | for (; sessions; sessions = g_list_delete_link( |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1400 | sessions, sessions)) { |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1401 | PurpleMediaBackendFs2Session *session = |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1402 | sessions->data; |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1403 | |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1404 | if (session->type & PURPLE_MEDIA_SEND_AUDIO) { |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1405 | gchar *name = g_strdup_printf("volume_%s", |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1406 | session->id); |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1407 | GstElement *volume = gst_bin_get_by_name( |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1408 | GST_BIN(priv->confbin), name); |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1409 | g_free(name); |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1410 | g_object_set(volume, "mute", active, NULL); |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1411 | } |
|
271b6eb28f54
Move mute functionality into the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29601
diff
changeset
|
1412 | } |
|
31278
3314c614763c
Stop sending audio when placing a call on hold. Fixes #13032.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
30769
diff
changeset
|
1413 | } else if (local == TRUE && (type == PURPLE_MEDIA_INFO_HOLD || |
|
3314c614763c
Stop sending audio when placing a call on hold. Fixes #13032.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
30769
diff
changeset
|
1414 | type == PURPLE_MEDIA_INFO_UNHOLD)) { |
|
3314c614763c
Stop sending audio when placing a call on hold. Fixes #13032.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
30769
diff
changeset
|
1415 | gboolean active = (type == PURPLE_MEDIA_INFO_HOLD); |
|
3314c614763c
Stop sending audio when placing a call on hold. Fixes #13032.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
30769
diff
changeset
|
1416 | GList *streams = get_streams(self, sid, name); |
|
3314c614763c
Stop sending audio when placing a call on hold. Fixes #13032.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
30769
diff
changeset
|
1417 | for (; streams; streams = |
|
3314c614763c
Stop sending audio when placing a call on hold. Fixes #13032.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
30769
diff
changeset
|
1418 | g_list_delete_link(streams, streams)) { |
|
3314c614763c
Stop sending audio when placing a call on hold. Fixes #13032.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
30769
diff
changeset
|
1419 | PurpleMediaBackendFs2Stream *stream = streams->data; |
|
3314c614763c
Stop sending audio when placing a call on hold. Fixes #13032.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
30769
diff
changeset
|
1420 | if (stream->session->type & PURPLE_MEDIA_SEND_AUDIO) { |
|
3314c614763c
Stop sending audio when placing a call on hold. Fixes #13032.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
30769
diff
changeset
|
1421 | g_object_set(stream->stream, "direction", |
|
3314c614763c
Stop sending audio when placing a call on hold. Fixes #13032.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
30769
diff
changeset
|
1422 | session_type_to_fs_stream_direction( |
|
3314c614763c
Stop sending audio when placing a call on hold. Fixes #13032.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
30769
diff
changeset
|
1423 | stream->session->type & ((active) ? |
|
3314c614763c
Stop sending audio when placing a call on hold. Fixes #13032.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
30769
diff
changeset
|
1424 | ~PURPLE_MEDIA_SEND_AUDIO : |
|
3314c614763c
Stop sending audio when placing a call on hold. Fixes #13032.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
30769
diff
changeset
|
1425 | PURPLE_MEDIA_AUDIO)), NULL); |
|
3314c614763c
Stop sending audio when placing a call on hold. Fixes #13032.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
30769
diff
changeset
|
1426 | } |
|
3314c614763c
Stop sending audio when placing a call on hold. Fixes #13032.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
30769
diff
changeset
|
1427 | } |
|
29594
1eefaad00189
Move pause functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29593
diff
changeset
|
1428 | } else if (local == TRUE && (type == PURPLE_MEDIA_INFO_PAUSE || |
|
1eefaad00189
Move pause functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29593
diff
changeset
|
1429 | type == PURPLE_MEDIA_INFO_UNPAUSE)) { |
|
1eefaad00189
Move pause functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29593
diff
changeset
|
1430 | gboolean active = (type == PURPLE_MEDIA_INFO_PAUSE); |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1431 | GList *streams = get_streams(self, sid, name); |
|
29594
1eefaad00189
Move pause functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29593
diff
changeset
|
1432 | for (; streams; streams = |
|
1eefaad00189
Move pause functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29593
diff
changeset
|
1433 | g_list_delete_link(streams, streams)) { |
|
1eefaad00189
Move pause functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29593
diff
changeset
|
1434 | PurpleMediaBackendFs2Stream *stream = streams->data; |
|
1eefaad00189
Move pause functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29593
diff
changeset
|
1435 | if (stream->session->type & PURPLE_MEDIA_SEND_VIDEO) { |
|
1eefaad00189
Move pause functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29593
diff
changeset
|
1436 | g_object_set(stream->stream, "direction", |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1437 | session_type_to_fs_stream_direction( |
|
29594
1eefaad00189
Move pause functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29593
diff
changeset
|
1438 | stream->session->type & ((active) ? |
|
1eefaad00189
Move pause functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29593
diff
changeset
|
1439 | ~PURPLE_MEDIA_SEND_VIDEO : |
|
1eefaad00189
Move pause functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29593
diff
changeset
|
1440 | PURPLE_MEDIA_VIDEO)), NULL); |
|
1eefaad00189
Move pause functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29593
diff
changeset
|
1441 | } |
|
1eefaad00189
Move pause functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29593
diff
changeset
|
1442 | } |
|
29592
eac0dd44f441
Handle part of accepting a stream in the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29591
diff
changeset
|
1443 | } |
|
29564
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
1444 | } |
|
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
1445 | |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1446 | static gboolean |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1447 | init_conference(PurpleMediaBackendFs2 *self) |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1448 | { |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1449 | PurpleMediaBackendFs2Private *priv = |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1450 | PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1451 | GstElement *pipeline; |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1452 | GstBus *bus; |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1453 | gchar *name; |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1454 | GKeyFile *default_props; |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1455 | |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1456 | priv->conference = FS_CONFERENCE( |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1457 | gst_element_factory_make(priv->conference_type, NULL)); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1458 | |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1459 | if (priv->conference == NULL) { |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1460 | purple_debug_error("backend-fs2", "Conference == NULL\n"); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1461 | return FALSE; |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1462 | } |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1463 | |
|
31566
fa37798387fa
Make the simple silence suppression stuff optional per-account. Fixes #13180.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31557
diff
changeset
|
1464 | if (purple_account_get_silence_suppression( |
|
fa37798387fa
Make the simple silence suppression stuff optional per-account. Fixes #13180.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31557
diff
changeset
|
1465 | purple_media_get_account(priv->media))) |
|
fa37798387fa
Make the simple silence suppression stuff optional per-account. Fixes #13180.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31557
diff
changeset
|
1466 | priv->silence_threshold = purple_prefs_get_int( |
|
fa37798387fa
Make the simple silence suppression stuff optional per-account. Fixes #13180.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31557
diff
changeset
|
1467 | "/purple/media/audio/silence_threshold") / 100.0; |
|
fa37798387fa
Make the simple silence suppression stuff optional per-account. Fixes #13180.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31557
diff
changeset
|
1468 | else |
|
fa37798387fa
Make the simple silence suppression stuff optional per-account. Fixes #13180.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31557
diff
changeset
|
1469 | priv->silence_threshold = 0; |
|
fa37798387fa
Make the simple silence suppression stuff optional per-account. Fixes #13180.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31557
diff
changeset
|
1470 | |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1471 | pipeline = purple_media_manager_get_pipeline( |
|
29564
fa76e21160fd
Various tweaks, fixes, and added debug output. Attached some media signals,
Michael Ruprecht <maiku@pidgin.im>
parents:
29559
diff
changeset
|
1472 | purple_media_get_manager(priv->media)); |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1473 | |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1474 | if (pipeline == NULL) { |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1475 | purple_debug_error("backend-fs2", |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1476 | "Couldn't retrieve pipeline.\n"); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1477 | return FALSE; |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1478 | } |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1479 | |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1480 | name = g_strdup_printf("conf_%p", priv->conference); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1481 | priv->confbin = gst_bin_new(name); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1482 | if (priv->confbin == NULL) { |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1483 | purple_debug_error("backend-fs2", |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1484 | "Couldn't create confbin.\n"); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1485 | return FALSE; |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1486 | } |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1487 | |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1488 | g_free(name); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1489 | |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1490 | bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline)); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1491 | if (bus == NULL) { |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1492 | purple_debug_error("backend-fs2", |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1493 | "Couldn't get the pipeline's bus.\n"); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1494 | return FALSE; |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1495 | } |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1496 | |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1497 | default_props = fs_utils_get_default_element_properties(GST_ELEMENT(priv->conference)); |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1498 | if (default_props != NULL) { |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1499 | priv->notifier = fs_element_added_notifier_new(); |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1500 | fs_element_added_notifier_add(priv->notifier, |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1501 | GST_BIN(priv->confbin)); |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1502 | fs_element_added_notifier_set_properties_from_keyfile(priv->notifier, default_props); |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1503 | } |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1504 | |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1505 | g_signal_connect(G_OBJECT(bus), "message", |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1506 | G_CALLBACK(gst_bus_cb), self); |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1507 | gst_object_unref(bus); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1508 | |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1509 | if (!gst_bin_add(GST_BIN(pipeline), |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1510 | GST_ELEMENT(priv->confbin))) { |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1511 | purple_debug_error("backend-fs2", "Couldn't add confbin " |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1512 | "element to the pipeline\n"); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1513 | return FALSE; |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1514 | } |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1515 | |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1516 | if (!gst_bin_add(GST_BIN(priv->confbin), |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1517 | GST_ELEMENT(priv->conference))) { |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1518 | purple_debug_error("backend-fs2", "Couldn't add conference " |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1519 | "element to the confbin\n"); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1520 | return FALSE; |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1521 | } |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1522 | |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1523 | if (gst_element_set_state(GST_ELEMENT(priv->confbin), |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1524 | GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE) { |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1525 | purple_debug_error("backend-fs2", |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1526 | "Failed to start conference.\n"); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1527 | return FALSE; |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1528 | } |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1529 | |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1530 | return TRUE; |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1531 | } |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1532 | |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1533 | static void |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1534 | gst_element_added_cb(FsElementAddedNotifier *self, |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1535 | GstBin *bin, GstElement *element, gpointer user_data) |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1536 | { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1537 | /* |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1538 | * Hack to make H264 work with Gmail video. |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1539 | */ |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1540 | if (!strncmp(GST_ELEMENT_NAME(element), "x264", 4)) { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1541 | g_object_set(GST_OBJECT(element), "cabac", FALSE, NULL); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1542 | } |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1543 | } |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1544 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1545 | static gboolean |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1546 | create_src(PurpleMediaBackendFs2 *self, const gchar *sess_id, |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1547 | PurpleMediaSessionType type) |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1548 | { |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1549 | PurpleMediaBackendFs2Private *priv = |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1550 | PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1551 | PurpleMediaBackendFs2Session *session; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1552 | PurpleMediaSessionType session_type; |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1553 | FsMediaType media_type = session_type_to_fs_media_type(type); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1554 | FsStreamDirection type_direction = |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1555 | session_type_to_fs_stream_direction(type); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1556 | GstElement *src; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1557 | GstPad *sinkpad, *srcpad; |
|
31313
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
1558 | GstPad *ghost = NULL; |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1559 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1560 | if ((type_direction & FS_DIRECTION_SEND) == 0) |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1561 | return TRUE; |
|
31294
73607ab89c6f
Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents:
31278
diff
changeset
|
1562 | |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1563 | session_type = session_type_from_fs( |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1564 | media_type, FS_DIRECTION_SEND); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1565 | src = purple_media_manager_get_element( |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1566 | purple_media_get_manager(priv->media), |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1567 | session_type, priv->media, sess_id, NULL); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1568 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1569 | if (!GST_IS_ELEMENT(src)) { |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1570 | purple_debug_error("backend-fs2", |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1571 | "Error creating src for session %s\n", |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1572 | sess_id); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1573 | return FALSE; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1574 | } |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1575 | |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1576 | session = get_session(self, sess_id); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1577 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1578 | if (session == NULL) { |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1579 | purple_debug_warning("backend-fs2", |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1580 | "purple_media_set_src: trying to set" |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1581 | " src on non-existent session\n"); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1582 | return FALSE; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1583 | } |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1584 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1585 | if (session->src) |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1586 | gst_object_unref(session->src); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1587 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1588 | session->src = src; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1589 | gst_element_set_locked_state(session->src, TRUE); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1590 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1591 | session->tee = gst_element_factory_make("tee", NULL); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1592 | gst_bin_add(GST_BIN(priv->confbin), session->tee); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1593 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1594 | /* This supposedly isn't necessary, but it silences some warnings */ |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1595 | if (GST_ELEMENT_PARENT(priv->confbin) |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1596 | == GST_ELEMENT_PARENT(session->src)) { |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1597 | GstPad *pad = gst_element_get_static_pad(session->tee, "sink"); |
|
31313
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
1598 | ghost = gst_ghost_pad_new(NULL, pad); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1599 | gst_object_unref(pad); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1600 | gst_pad_set_active(ghost, TRUE); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1601 | gst_element_add_pad(priv->confbin, ghost); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1602 | } |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1603 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1604 | gst_element_set_state(session->tee, GST_STATE_PLAYING); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1605 | gst_element_link(session->src, priv->confbin); |
|
31313
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
1606 | if (ghost) |
|
eca4138f416c
This patch fixes #12758.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31294
diff
changeset
|
1607 | session->srcpad = gst_pad_get_peer(ghost); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1608 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1609 | g_object_get(session->session, "sink-pad", &sinkpad, NULL); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1610 | if (session->type & PURPLE_MEDIA_SEND_AUDIO) { |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1611 | gchar *name = g_strdup_printf("volume_%s", session->id); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1612 | GstElement *level; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1613 | GstElement *volume = gst_element_factory_make("volume", name); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1614 | double input_volume = purple_prefs_get_int( |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1615 | "/purple/media/audio/volume/input")/10.0; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1616 | g_free(name); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1617 | name = g_strdup_printf("sendlevel_%s", session->id); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1618 | level = gst_element_factory_make("level", name); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1619 | g_free(name); |
|
31557
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
1620 | session->srcvalve = gst_element_factory_make("valve", NULL); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1621 | gst_bin_add(GST_BIN(priv->confbin), volume); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1622 | gst_bin_add(GST_BIN(priv->confbin), level); |
|
31557
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
1623 | gst_bin_add(GST_BIN(priv->confbin), session->srcvalve); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1624 | gst_element_set_state(level, GST_STATE_PLAYING); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1625 | gst_element_set_state(volume, GST_STATE_PLAYING); |
|
31557
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
1626 | gst_element_set_state(session->srcvalve, GST_STATE_PLAYING); |
|
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
1627 | gst_element_link(level, session->srcvalve); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1628 | gst_element_link(volume, level); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1629 | gst_element_link(session->tee, volume); |
|
31557
02082aa1ba41
During a voice call, Pidgin now sends constant audio traffic, even when there
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31368
diff
changeset
|
1630 | srcpad = gst_element_get_static_pad(session->srcvalve, "src"); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1631 | g_object_set(volume, "volume", input_volume, NULL); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1632 | } else { |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1633 | srcpad = gst_element_get_request_pad(session->tee, "src_%u"); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1634 | } |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1635 | |
|
31294
73607ab89c6f
Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents:
31278
diff
changeset
|
1636 | purple_debug_info("backend-fs2", "connecting pad: %s\n", |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1637 | gst_pad_link(srcpad, sinkpad) == GST_PAD_LINK_OK |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1638 | ? "success" : "failure"); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1639 | gst_element_set_locked_state(session->src, FALSE); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1640 | gst_object_unref(session->src); |
|
31618
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1641 | gst_object_unref(sinkpad); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1642 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1643 | purple_media_manager_create_output_window(purple_media_get_manager( |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1644 | priv->media), priv->media, sess_id, NULL); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1645 | |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1646 | purple_debug_info("backend-fs2", "create_src: setting source " |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1647 | "state to GST_STATE_PLAYING - it may hang here on win32\n"); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1648 | gst_element_set_state(session->src, GST_STATE_PLAYING); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1649 | purple_debug_info("backend-fs2", "create_src: state set\n"); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1650 | |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1651 | return TRUE; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1652 | } |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1653 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1654 | static gboolean |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1655 | create_session(PurpleMediaBackendFs2 *self, const gchar *sess_id, |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1656 | PurpleMediaSessionType type, gboolean initiator, |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1657 | const gchar *transmitter) |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1658 | { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1659 | PurpleMediaBackendFs2Private *priv = |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1660 | PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1661 | PurpleMediaBackendFs2Session *session; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1662 | GError *err = NULL; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1663 | GList *codec_conf = NULL, *iter = NULL; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1664 | gchar *filename = NULL; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1665 | gboolean is_nice = !strcmp(transmitter, "nice"); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1666 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1667 | session = g_new0(PurpleMediaBackendFs2Session, 1); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1668 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1669 | session->session = fs_conference_new_session(priv->conference, |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1670 | session_type_to_fs_media_type(type), &err); |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1671 | |
|
36333
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1672 | #ifdef HAVE_MEDIA_APPLICATION |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1673 | if (type == PURPLE_MEDIA_APPLICATION) { |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1674 | GstCaps *caps; |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1675 | GObject *rtpsession = NULL; |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1676 | |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1677 | caps = gst_caps_new_empty_simple ("application/octet-stream"); |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1678 | fs_session_set_allowed_caps (session->session, caps, caps, NULL); |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1679 | gst_caps_unref (caps); |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1680 | g_object_get (session->session, "internal-session", &rtpsession, NULL); |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1681 | if (rtpsession) { |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1682 | g_object_set (rtpsession, "probation", 0, NULL); |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1683 | g_object_unref (rtpsession); |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1684 | } |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1685 | } |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1686 | #endif |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1687 | if (err != NULL) { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1688 | purple_media_error(priv->media, |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1689 | _("Error creating session: %s"), |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1690 | err->message); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1691 | g_error_free(err); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1692 | g_free(session); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1693 | return FALSE; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1694 | } |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1695 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1696 | filename = g_build_filename(purple_user_dir(), "fs-codec.conf", NULL); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1697 | codec_conf = fs_codec_list_from_keyfile(filename, &err); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1698 | g_free(filename); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1699 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1700 | if (err != NULL) { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1701 | if (err->code == 4) |
|
29580
ee364f895072
Correct some debug categories.
Michael Ruprecht <maiku@pidgin.im>
parents:
29579
diff
changeset
|
1702 | purple_debug_info("backend-fs2", "Couldn't read " |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1703 | "fs-codec.conf: %s\n", |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1704 | err->message); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1705 | else |
|
29580
ee364f895072
Correct some debug categories.
Michael Ruprecht <maiku@pidgin.im>
parents:
29579
diff
changeset
|
1706 | purple_debug_error("backend-fs2", "Error reading " |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1707 | "fs-codec.conf: %s\n", |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1708 | err->message); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1709 | g_error_free(err); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1710 | } |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1711 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1712 | /* |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1713 | * Add SPEEX if the configuration file doesn't exist or |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1714 | * there isn't a speex entry. |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1715 | */ |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1716 | for (iter = codec_conf; iter; iter = g_list_next(iter)) { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1717 | FsCodec *codec = iter->data; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1718 | if (!g_ascii_strcasecmp(codec->encoding_name, "speex")) |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1719 | break; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1720 | } |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1721 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1722 | if (iter == NULL) { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1723 | codec_conf = g_list_prepend(codec_conf, |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1724 | fs_codec_new(FS_CODEC_ID_ANY, |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1725 | "SPEEX", FS_MEDIA_TYPE_AUDIO, 8000)); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1726 | codec_conf = g_list_prepend(codec_conf, |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1727 | fs_codec_new(FS_CODEC_ID_ANY, |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1728 | "SPEEX", FS_MEDIA_TYPE_AUDIO, 16000)); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1729 | } |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1730 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1731 | fs_session_set_codec_preferences(session->session, codec_conf, NULL); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1732 | fs_codec_list_destroy(codec_conf); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1733 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1734 | /* |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1735 | * Removes a 5-7 second delay before |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1736 | * receiving the src-pad-added signal. |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1737 | * Only works for non-multicast FsRtpSessions. |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1738 | */ |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1739 | if (!!strcmp(transmitter, "multicast")) |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1740 | g_object_set(G_OBJECT(session->session), |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1741 | "no-rtcp-timeout", 0, NULL); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1742 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1743 | /* |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1744 | * Hack to make x264 work with Gmail video. |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1745 | */ |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1746 | if (is_nice && !strcmp(sess_id, "google-video")) { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1747 | FsElementAddedNotifier *notifier = |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1748 | fs_element_added_notifier_new(); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1749 | g_signal_connect(G_OBJECT(notifier), "element-added", |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1750 | G_CALLBACK(gst_element_added_cb), NULL); |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1751 | fs_element_added_notifier_add(notifier, |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1752 | GST_BIN(priv->conference)); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1753 | } |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1754 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1755 | session->id = g_strdup(sess_id); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1756 | session->backend = self; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1757 | session->type = type; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1758 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1759 | if (!priv->sessions) { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1760 | purple_debug_info("backend-fs2", |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1761 | "Creating hash table for sessions\n"); |
|
30715
61a0bd743512
Fix some media code leaks.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
30706
diff
changeset
|
1762 | priv->sessions = g_hash_table_new_full(g_str_hash, g_str_equal, |
|
61a0bd743512
Fix some media code leaks.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
30706
diff
changeset
|
1763 | g_free, NULL); |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1764 | } |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1765 | |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1766 | g_hash_table_insert(priv->sessions, g_strdup(session->id), session); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1767 | |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1768 | if (!create_src(self, sess_id, type)) { |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1769 | purple_debug_info("backend-fs2", "Error creating the src\n"); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1770 | return FALSE; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1771 | } |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1772 | |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1773 | return TRUE; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1774 | } |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
1775 | |
|
31618
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1776 | static void |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1777 | free_session(PurpleMediaBackendFs2Session *session) |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1778 | { |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1779 | g_free(session->id); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1780 | g_free(session); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1781 | } |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1782 | |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
1783 | static gboolean |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1784 | create_participant(PurpleMediaBackendFs2 *self, const gchar *name) |
|
29579
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1785 | { |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1786 | PurpleMediaBackendFs2Private *priv = |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1787 | PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1788 | FsParticipant *participant; |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1789 | GError *err = NULL; |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1790 | |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1791 | participant = fs_conference_new_participant( |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1792 | priv->conference, &err); |
|
29579
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1793 | |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1794 | if (err) { |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1795 | purple_debug_error("backend-fs2", |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1796 | "Error creating participant: %s\n", |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1797 | err->message); |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1798 | g_error_free(err); |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1799 | return FALSE; |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1800 | } |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1801 | |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1802 | if (g_object_class_find_property(G_OBJECT_GET_CLASS(participant), |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1803 | "cname")) { |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1804 | g_object_set(participant, "cname", name, NULL); |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1805 | } |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1806 | |
|
29579
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1807 | if (!priv->participants) { |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1808 | purple_debug_info("backend-fs2", |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1809 | "Creating hash table for participants\n"); |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1810 | priv->participants = g_hash_table_new_full(g_str_hash, |
|
30715
61a0bd743512
Fix some media code leaks.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
30706
diff
changeset
|
1811 | g_str_equal, g_free, g_object_unref); |
|
29579
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1812 | } |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1813 | |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1814 | g_hash_table_insert(priv->participants, g_strdup(name), participant); |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1815 | |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1816 | return TRUE; |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1817 | } |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1818 | |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
1819 | static gboolean |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1820 | src_pad_added_cb_cb(PurpleMediaBackendFs2Stream *stream) |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1821 | { |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1822 | PurpleMediaBackendFs2Private *priv; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1823 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1824 | g_return_val_if_fail(stream != NULL, FALSE); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1825 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1826 | priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(stream->session->backend); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1827 | stream->connected_cb_id = 0; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1828 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1829 | purple_media_manager_create_output_window( |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1830 | purple_media_get_manager(priv->media), priv->media, |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1831 | stream->session->id, stream->participant); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1832 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1833 | g_signal_emit_by_name(priv->media, "state-changed", |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1834 | PURPLE_MEDIA_STATE_CONNECTED, |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1835 | stream->session->id, stream->participant); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1836 | return FALSE; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1837 | } |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1838 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1839 | static void |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1840 | src_pad_added_cb(FsStream *fsstream, GstPad *srcpad, |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1841 | FsCodec *codec, PurpleMediaBackendFs2Stream *stream) |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1842 | { |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1843 | PurpleMediaBackendFs2Private *priv; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1844 | GstPad *sinkpad; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1845 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1846 | g_return_if_fail(FS_IS_STREAM(fsstream)); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1847 | g_return_if_fail(stream != NULL); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1848 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1849 | priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(stream->session->backend); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1850 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1851 | if (stream->src == NULL) { |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1852 | GstElement *sink = NULL; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1853 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1854 | if (codec->media_type == FS_MEDIA_TYPE_AUDIO) { |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1855 | double output_volume = purple_prefs_get_int( |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1856 | "/purple/media/audio/volume/output")/10.0; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1857 | /* |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1858 | * Should this instead be: |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1859 | * audioconvert ! audioresample ! liveadder ! |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1860 | * audioresample ! audioconvert ! realsink |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1861 | */ |
|
31618
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1862 | stream->queue = gst_element_factory_make("queue", NULL); |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1863 | stream->volume = gst_element_factory_make("volume", NULL); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1864 | g_object_set(stream->volume, "volume", output_volume, NULL); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1865 | stream->level = gst_element_factory_make("level", NULL); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1866 | stream->src = gst_element_factory_make("liveadder", NULL); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1867 | sink = purple_media_manager_get_element( |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1868 | purple_media_get_manager(priv->media), |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1869 | PURPLE_MEDIA_RECV_AUDIO, priv->media, |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1870 | stream->session->id, |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1871 | stream->participant); |
|
31618
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1872 | gst_bin_add(GST_BIN(priv->confbin), stream->queue); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1873 | gst_bin_add(GST_BIN(priv->confbin), stream->volume); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1874 | gst_bin_add(GST_BIN(priv->confbin), stream->level); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1875 | gst_bin_add(GST_BIN(priv->confbin), sink); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1876 | gst_element_set_state(sink, GST_STATE_PLAYING); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1877 | gst_element_set_state(stream->level, GST_STATE_PLAYING); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1878 | gst_element_set_state(stream->volume, GST_STATE_PLAYING); |
|
31618
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1879 | gst_element_set_state(stream->queue, GST_STATE_PLAYING); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1880 | gst_element_link(stream->level, sink); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1881 | gst_element_link(stream->volume, stream->level); |
|
31618
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1882 | gst_element_link(stream->queue, stream->volume); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1883 | sink = stream->queue; |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1884 | } else if (codec->media_type == FS_MEDIA_TYPE_VIDEO) { |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1885 | stream->src = gst_element_factory_make("funnel", NULL); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1886 | sink = gst_element_factory_make("fakesink", NULL); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1887 | g_object_set(G_OBJECT(sink), "async", FALSE, NULL); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1888 | gst_bin_add(GST_BIN(priv->confbin), sink); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1889 | gst_element_set_state(sink, GST_STATE_PLAYING); |
|
31618
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
1890 | stream->fakesink = sink; |
|
36333
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1891 | #ifdef HAVE_MEDIA_APPLICATION |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1892 | } else if (codec->media_type == FS_MEDIA_TYPE_APPLICATION) { |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1893 | stream->src = gst_element_factory_make("funnel", NULL); |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1894 | sink = purple_media_manager_get_element( |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1895 | purple_media_get_manager(priv->media), |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1896 | PURPLE_MEDIA_RECV_APPLICATION, priv->media, |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1897 | stream->session->id, |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1898 | stream->participant); |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1899 | gst_bin_add(GST_BIN(priv->confbin), sink); |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1900 | gst_element_set_state(sink, GST_STATE_PLAYING); |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
1901 | #endif |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1902 | } |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1903 | stream->tee = gst_element_factory_make("tee", NULL); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1904 | gst_bin_add_many(GST_BIN(priv->confbin), |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1905 | stream->src, stream->tee, NULL); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1906 | gst_element_set_state(stream->tee, GST_STATE_PLAYING); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1907 | gst_element_set_state(stream->src, GST_STATE_PLAYING); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1908 | gst_element_link_many(stream->src, stream->tee, sink, NULL); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1909 | } |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1910 | |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
1911 | sinkpad = gst_element_get_request_pad(stream->src, "sink_%u"); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1912 | gst_pad_link(srcpad, sinkpad); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1913 | gst_object_unref(sinkpad); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1914 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1915 | stream->connected_cb_id = purple_timeout_add(0, |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1916 | (GSourceFunc)src_pad_added_cb_cb, stream); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1917 | } |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1918 | |
|
30622
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1919 | static GValueArray * |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1920 | append_relay_info(GValueArray *relay_info, const gchar *ip, gint port, |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1921 | const gchar *username, const gchar *password, const gchar *type) |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1922 | { |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1923 | GValue value; |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1924 | GstStructure *turn_setup = gst_structure_new("relay-info", |
|
31294
73607ab89c6f
Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents:
31278
diff
changeset
|
1925 | "ip", G_TYPE_STRING, ip, |
|
30622
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1926 | "port", G_TYPE_UINT, port, |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1927 | "username", G_TYPE_STRING, username, |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1928 | "password", G_TYPE_STRING, password, |
|
32110
cf3fc2a5c274
Whitespace normalization
Richard Laager <rlaager@pidgin.im>
parents:
31860
diff
changeset
|
1929 | "relay-type", G_TYPE_STRING, type, |
|
30622
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1930 | NULL); |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1931 | |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1932 | if (turn_setup) { |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1933 | memset(&value, 0, sizeof(GValue)); |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1934 | g_value_init(&value, GST_TYPE_STRUCTURE); |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1935 | gst_value_set_structure(&value, turn_setup); |
|
35978
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
1936 | G_GNUC_BEGIN_IGNORE_DEPRECATIONS |
|
30622
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1937 | relay_info = g_value_array_append(relay_info, &value); |
|
35978
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
1938 | G_GNUC_END_IGNORE_DEPRECATIONS |
|
30622
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1939 | gst_structure_free(turn_setup); |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1940 | } |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1941 | |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1942 | return relay_info; |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
1943 | } |
|
31294
73607ab89c6f
Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents:
31278
diff
changeset
|
1944 | |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
1945 | static gboolean |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1946 | create_stream(PurpleMediaBackendFs2 *self, |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
1947 | const gchar *sess_id, const gchar *who, |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
1948 | PurpleMediaSessionType type, gboolean initiator, |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
1949 | const gchar *transmitter, |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
1950 | guint num_params, GParameter *params) |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
1951 | { |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
1952 | PurpleMediaBackendFs2Private *priv = |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
1953 | PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
1954 | GError *err = NULL; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
1955 | FsStream *fsstream = NULL; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
1956 | const gchar *stun_ip = purple_network_get_stun_ip(); |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
1957 | const gchar *turn_ip = purple_network_get_turn_ip(); |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
1958 | guint _num_params = num_params; |
|
32111
1a0b313cc0b7
Reorder create_stream()
Richard Laager <rlaager@pidgin.im>
parents:
32110
diff
changeset
|
1959 | GParameter *_params; |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
1960 | FsStreamDirection type_direction = |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
1961 | session_type_to_fs_stream_direction(type); |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
1962 | PurpleMediaBackendFs2Session *session; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
1963 | PurpleMediaBackendFs2Stream *stream; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
1964 | FsParticipant *participant; |
|
36637
9b0109ae118d
Renamed some prpl stuff to protocol stuff.
Ankit Vani <a@nevitus.org>
parents:
36574
diff
changeset
|
1965 | /* check if the protocol has already specified a relay-info |
|
30766
602dc4de31cf
Make the check for PRPL-supplied TURN parameters in the new place
Marcus Lundblad <malu@pidgin.im>
parents:
29723
diff
changeset
|
1966 | we need to do this to allow them to override when using non-standard |
|
602dc4de31cf
Make the check for PRPL-supplied TURN parameters in the new place
Marcus Lundblad <malu@pidgin.im>
parents:
29723
diff
changeset
|
1967 | TURN modes, like Google f.ex. */ |
|
36545
23b59a16c808
Replaced some _prpl_ stuff with _protocol_
Ankit Vani <a@nevitus.org>
parents:
34241
diff
changeset
|
1968 | gboolean got_turn_from_protocol = FALSE; |
|
36256
a437550a9308
Remove -Wno-sign-compare and backport fixes from default.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
35978
diff
changeset
|
1969 | guint i; |
|
30766
602dc4de31cf
Make the check for PRPL-supplied TURN parameters in the new place
Marcus Lundblad <malu@pidgin.im>
parents:
29723
diff
changeset
|
1970 | |
|
32111
1a0b313cc0b7
Reorder create_stream()
Richard Laager <rlaager@pidgin.im>
parents:
32110
diff
changeset
|
1971 | session = get_session(self, sess_id); |
|
1a0b313cc0b7
Reorder create_stream()
Richard Laager <rlaager@pidgin.im>
parents:
32110
diff
changeset
|
1972 | |
|
1a0b313cc0b7
Reorder create_stream()
Richard Laager <rlaager@pidgin.im>
parents:
32110
diff
changeset
|
1973 | if (session == NULL) { |
|
1a0b313cc0b7
Reorder create_stream()
Richard Laager <rlaager@pidgin.im>
parents:
32110
diff
changeset
|
1974 | purple_debug_error("backend-fs2", |
|
1a0b313cc0b7
Reorder create_stream()
Richard Laager <rlaager@pidgin.im>
parents:
32110
diff
changeset
|
1975 | "Couldn't find session to create stream.\n"); |
|
1a0b313cc0b7
Reorder create_stream()
Richard Laager <rlaager@pidgin.im>
parents:
32110
diff
changeset
|
1976 | return FALSE; |
|
1a0b313cc0b7
Reorder create_stream()
Richard Laager <rlaager@pidgin.im>
parents:
32110
diff
changeset
|
1977 | } |
|
1a0b313cc0b7
Reorder create_stream()
Richard Laager <rlaager@pidgin.im>
parents:
32110
diff
changeset
|
1978 | |
|
1a0b313cc0b7
Reorder create_stream()
Richard Laager <rlaager@pidgin.im>
parents:
32110
diff
changeset
|
1979 | participant = get_participant(self, who); |
|
1a0b313cc0b7
Reorder create_stream()
Richard Laager <rlaager@pidgin.im>
parents:
32110
diff
changeset
|
1980 | |
|
1a0b313cc0b7
Reorder create_stream()
Richard Laager <rlaager@pidgin.im>
parents:
32110
diff
changeset
|
1981 | if (participant == NULL) { |
|
1a0b313cc0b7
Reorder create_stream()
Richard Laager <rlaager@pidgin.im>
parents:
32110
diff
changeset
|
1982 | purple_debug_error("backend-fs2", "Couldn't find " |
|
1a0b313cc0b7
Reorder create_stream()
Richard Laager <rlaager@pidgin.im>
parents:
32110
diff
changeset
|
1983 | "participant to create stream.\n"); |
|
1a0b313cc0b7
Reorder create_stream()
Richard Laager <rlaager@pidgin.im>
parents:
32110
diff
changeset
|
1984 | return FALSE; |
|
1a0b313cc0b7
Reorder create_stream()
Richard Laager <rlaager@pidgin.im>
parents:
32110
diff
changeset
|
1985 | } |
|
1a0b313cc0b7
Reorder create_stream()
Richard Laager <rlaager@pidgin.im>
parents:
32110
diff
changeset
|
1986 | |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1987 | fsstream = fs_session_new_stream(session->session, participant, |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1988 | initiator == TRUE ? type_direction : |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1989 | (type_direction & FS_DIRECTION_RECV), &err); |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1990 | |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1991 | if (fsstream == NULL) { |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1992 | if (err) { |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1993 | purple_debug_error("backend-fs2", |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1994 | "Error creating stream: %s\n", |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1995 | err && err->message ? |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1996 | err->message : "NULL"); |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1997 | g_error_free(err); |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1998 | } else |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
1999 | purple_debug_error("backend-fs2", |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2000 | "Error creating stream\n"); |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2001 | return FALSE; |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2002 | } |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2003 | |
|
30766
602dc4de31cf
Make the check for PRPL-supplied TURN parameters in the new place
Marcus Lundblad <malu@pidgin.im>
parents:
29723
diff
changeset
|
2004 | for (i = 0 ; i < num_params ; i++) { |
|
602dc4de31cf
Make the check for PRPL-supplied TURN parameters in the new place
Marcus Lundblad <malu@pidgin.im>
parents:
29723
diff
changeset
|
2005 | if (purple_strequal(params[i].name, "relay-info")) { |
|
36545
23b59a16c808
Replaced some _prpl_ stuff with _protocol_
Ankit Vani <a@nevitus.org>
parents:
34241
diff
changeset
|
2006 | got_turn_from_protocol = TRUE; |
|
30766
602dc4de31cf
Make the check for PRPL-supplied TURN parameters in the new place
Marcus Lundblad <malu@pidgin.im>
parents:
29723
diff
changeset
|
2007 | break; |
|
602dc4de31cf
Make the check for PRPL-supplied TURN parameters in the new place
Marcus Lundblad <malu@pidgin.im>
parents:
29723
diff
changeset
|
2008 | } |
|
602dc4de31cf
Make the check for PRPL-supplied TURN parameters in the new place
Marcus Lundblad <malu@pidgin.im>
parents:
29723
diff
changeset
|
2009 | } |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2010 | |
|
32111
1a0b313cc0b7
Reorder create_stream()
Richard Laager <rlaager@pidgin.im>
parents:
32110
diff
changeset
|
2011 | _params = g_new0(GParameter, num_params + 3); |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2012 | memcpy(_params, params, sizeof(GParameter) * num_params); |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2013 | |
|
29688
d5409dbda6e7
media: "Backport" the ICE controlling-mode fix in the new media subdirectory
Marcus Lundblad <malu@pidgin.im>
parents:
29661
diff
changeset
|
2014 | /* set the controlling mode parameter */ |
|
d5409dbda6e7
media: "Backport" the ICE controlling-mode fix in the new media subdirectory
Marcus Lundblad <malu@pidgin.im>
parents:
29661
diff
changeset
|
2015 | _params[_num_params].name = "controlling-mode"; |
|
d5409dbda6e7
media: "Backport" the ICE controlling-mode fix in the new media subdirectory
Marcus Lundblad <malu@pidgin.im>
parents:
29661
diff
changeset
|
2016 | g_value_init(&_params[_num_params].value, G_TYPE_BOOLEAN); |
|
d5409dbda6e7
media: "Backport" the ICE controlling-mode fix in the new media subdirectory
Marcus Lundblad <malu@pidgin.im>
parents:
29661
diff
changeset
|
2017 | g_value_set_boolean(&_params[_num_params].value, initiator); |
|
d5409dbda6e7
media: "Backport" the ICE controlling-mode fix in the new media subdirectory
Marcus Lundblad <malu@pidgin.im>
parents:
29661
diff
changeset
|
2018 | ++_num_params; |
|
d5409dbda6e7
media: "Backport" the ICE controlling-mode fix in the new media subdirectory
Marcus Lundblad <malu@pidgin.im>
parents:
29661
diff
changeset
|
2019 | |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2020 | if (stun_ip) { |
|
31294
73607ab89c6f
Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents:
31278
diff
changeset
|
2021 | purple_debug_info("backend-fs2", |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2022 | "Setting stun-ip on new stream: %s\n", stun_ip); |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2023 | |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2024 | _params[_num_params].name = "stun-ip"; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2025 | g_value_init(&_params[_num_params].value, G_TYPE_STRING); |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2026 | g_value_set_string(&_params[_num_params].value, stun_ip); |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2027 | ++_num_params; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2028 | } |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2029 | |
|
36545
23b59a16c808
Replaced some _prpl_ stuff with _protocol_
Ankit Vani <a@nevitus.org>
parents:
34241
diff
changeset
|
2030 | if (turn_ip && !strcmp("nice", transmitter) && !got_turn_from_protocol) { |
|
35978
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
2031 | G_GNUC_BEGIN_IGNORE_DEPRECATIONS |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2032 | GValueArray *relay_info = g_value_array_new(0); |
|
35978
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
2033 | G_GNUC_END_IGNORE_DEPRECATIONS |
|
30622
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
2034 | gint port; |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2035 | const gchar *username = purple_prefs_get_string( |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2036 | "/purple/network/turn_username"); |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2037 | const gchar *password = purple_prefs_get_string( |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2038 | "/purple/network/turn_password"); |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2039 | |
|
30622
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
2040 | /* UDP */ |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
2041 | port = purple_prefs_get_int("/purple/network/turn_port"); |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
2042 | if (port > 0) { |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
2043 | relay_info = append_relay_info(relay_info, turn_ip, port, username, |
|
aa5a1b0e69bd
Added ability to relay over TCP and TLS for TURN for media.
Marcus Lundblad <malu@pidgin.im>
parents:
30424
diff
changeset
|
2044 | password, "udp"); |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2045 | } |
|
31831
c3778a69ecee
Add support for using TCP relaying with TURN
Marcus Lundblad <malu@pidgin.im>
parents:
31824
diff
changeset
|
2046 | |
|
c3778a69ecee
Add support for using TCP relaying with TURN
Marcus Lundblad <malu@pidgin.im>
parents:
31824
diff
changeset
|
2047 | /* TCP */ |
|
c3778a69ecee
Add support for using TCP relaying with TURN
Marcus Lundblad <malu@pidgin.im>
parents:
31824
diff
changeset
|
2048 | port = purple_prefs_get_int("/purple/network/turn_port_tcp"); |
|
c3778a69ecee
Add support for using TCP relaying with TURN
Marcus Lundblad <malu@pidgin.im>
parents:
31824
diff
changeset
|
2049 | if (port > 0) { |
|
c3778a69ecee
Add support for using TCP relaying with TURN
Marcus Lundblad <malu@pidgin.im>
parents:
31824
diff
changeset
|
2050 | relay_info = append_relay_info(relay_info, turn_ip, port, username, |
|
31860
0f36ebd8631b
Actually set the relay info for TCP
Marcus Lundblad <malu@pidgin.im>
parents:
31831
diff
changeset
|
2051 | password, "tcp"); |
|
31831
c3778a69ecee
Add support for using TCP relaying with TURN
Marcus Lundblad <malu@pidgin.im>
parents:
31824
diff
changeset
|
2052 | } |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2053 | |
|
31831
c3778a69ecee
Add support for using TCP relaying with TURN
Marcus Lundblad <malu@pidgin.im>
parents:
31824
diff
changeset
|
2054 | /* TURN over SSL is only supported by libnice for Google's "psuedo" SSL mode |
|
c3778a69ecee
Add support for using TCP relaying with TURN
Marcus Lundblad <malu@pidgin.im>
parents:
31824
diff
changeset
|
2055 | at this time */ |
|
31294
73607ab89c6f
Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents:
31278
diff
changeset
|
2056 | |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2057 | purple_debug_info("backend-fs2", |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2058 | "Setting relay-info on new stream\n"); |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2059 | _params[_num_params].name = "relay-info"; |
|
35978
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
2060 | G_GNUC_BEGIN_IGNORE_DEPRECATIONS |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
2061 | g_value_init(&_params[_num_params].value, G_TYPE_VALUE_ARRAY); |
|
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
2062 | g_value_set_boxed(&_params[_num_params].value, relay_info); |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2063 | g_value_array_free(relay_info); |
|
35978
c0b60f37a7db
Backport warning fixes for libpurple from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32115
diff
changeset
|
2064 | G_GNUC_END_IGNORE_DEPRECATIONS |
|
30424
24a75f52a4bd
media: Fix the TURN server setting to actually work again (it was apparently
Marcus Lundblad <malu@pidgin.im>
parents:
29723
diff
changeset
|
2065 | _num_params++; |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2066 | } |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2067 | |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2068 | if (!fs_stream_set_transmitter(fsstream, transmitter, |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2069 | _params, _num_params, &err)) { |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2070 | purple_debug_error("backend-fs2", |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2071 | "Could not set transmitter %s: %s.\n", |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2072 | transmitter, err ? err->message : NULL); |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2073 | g_clear_error(&err); |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2074 | g_free(_params); |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2075 | return FALSE; |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2076 | } |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2077 | g_free(_params); |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2078 | |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2079 | stream = g_new0(PurpleMediaBackendFs2Stream, 1); |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2080 | stream->participant = g_strdup(who); |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2081 | stream->session = session; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2082 | stream->stream = fsstream; |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2083 | stream->supports_add = !strcmp(transmitter, "nice"); |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2084 | |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2085 | priv->streams = g_list_append(priv->streams, stream); |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2086 | |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2087 | g_signal_connect(G_OBJECT(fsstream), "src-pad-added", |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2088 | G_CALLBACK(src_pad_added_cb), stream); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2089 | |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2090 | return TRUE; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2091 | } |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2092 | |
|
31618
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
2093 | static void |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
2094 | free_stream(PurpleMediaBackendFs2Stream *stream) |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
2095 | { |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
2096 | /* Remove the connected_cb timeout */ |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
2097 | if (stream->connected_cb_id != 0) |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
2098 | purple_timeout_remove(stream->connected_cb_id); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
2099 | |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
2100 | g_free(stream->participant); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
2101 | |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
2102 | if (stream->local_candidates) |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
2103 | fs_candidate_list_destroy(stream->local_candidates); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
2104 | |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
2105 | if (stream->remote_candidates) |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
2106 | fs_candidate_list_destroy(stream->remote_candidates); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
2107 | |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
2108 | g_free(stream); |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
2109 | } |
|
5a2acc3fb58c
Allow adding or removing media sessions (voice or video) on-the-fly. This
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31566
diff
changeset
|
2110 | |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2111 | static gboolean |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2112 | purple_media_backend_fs2_add_stream(PurpleMediaBackend *self, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2113 | const gchar *sess_id, const gchar *who, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2114 | PurpleMediaSessionType type, gboolean initiator, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2115 | const gchar *transmitter, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2116 | guint num_params, GParameter *params) |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2117 | { |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
2118 | PurpleMediaBackendFs2 *backend = PURPLE_MEDIA_BACKEND_FS2(self); |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
2119 | PurpleMediaBackendFs2Private *priv = |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
2120 | PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(backend); |
|
29595
f7e57d58c8be
Move odd direction changing functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29594
diff
changeset
|
2121 | PurpleMediaBackendFs2Stream *stream; |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
2122 | |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2123 | if (priv->conference == NULL && !init_conference(backend)) { |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
2124 | purple_debug_error("backend-fs2", |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
2125 | "Error initializing the conference.\n"); |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
2126 | return FALSE; |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
2127 | } |
|
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
2128 | |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2129 | if (get_session(backend, sess_id) == NULL && |
|
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2130 | !create_session(backend, sess_id, type, |
|
29569
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
2131 | initiator, transmitter)) { |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
2132 | purple_debug_error("backend-fs2", |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
2133 | "Error creating the session.\n"); |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
2134 | return FALSE; |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
2135 | } |
|
03db05b81c5c
Begin transferring FsSession over to the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29568
diff
changeset
|
2136 | |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2137 | if (get_participant(backend, who) == NULL && |
|
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2138 | !create_participant(backend, who)) { |
|
29579
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
2139 | purple_debug_error("backend-fs2", |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
2140 | "Error creating the participant.\n"); |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
2141 | return FALSE; |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
2142 | } |
|
bbe57f516ffd
Add participant creation and destruction to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29573
diff
changeset
|
2143 | |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2144 | stream = get_stream(backend, sess_id, who); |
|
29595
f7e57d58c8be
Move odd direction changing functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29594
diff
changeset
|
2145 | |
|
f7e57d58c8be
Move odd direction changing functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29594
diff
changeset
|
2146 | if (stream != NULL) { |
|
f7e57d58c8be
Move odd direction changing functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29594
diff
changeset
|
2147 | FsStreamDirection type_direction = |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2148 | session_type_to_fs_stream_direction(type); |
|
29595
f7e57d58c8be
Move odd direction changing functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29594
diff
changeset
|
2149 | |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2150 | if (session_type_to_fs_stream_direction( |
|
29595
f7e57d58c8be
Move odd direction changing functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29594
diff
changeset
|
2151 | stream->session->type) != type_direction) { |
|
f7e57d58c8be
Move odd direction changing functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29594
diff
changeset
|
2152 | /* change direction */ |
|
f7e57d58c8be
Move odd direction changing functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29594
diff
changeset
|
2153 | g_object_set(stream->stream, "direction", |
|
f7e57d58c8be
Move odd direction changing functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29594
diff
changeset
|
2154 | type_direction, NULL); |
|
f7e57d58c8be
Move odd direction changing functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29594
diff
changeset
|
2155 | } |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2156 | } else if (!create_stream(backend, sess_id, who, type, |
|
29582
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2157 | initiator, transmitter, num_params, params)) { |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2158 | purple_debug_error("backend-fs2", |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2159 | "Error creating the stream.\n"); |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2160 | return FALSE; |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2161 | } |
|
c4ef3aed1366
Transfer creating Farsight 2 streams to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29580
diff
changeset
|
2162 | |
|
29559
fc9fa90d7c4a
Create and dispose the conference in the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29556
diff
changeset
|
2163 | return TRUE; |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2164 | } |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2165 | |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2166 | static void |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2167 | purple_media_backend_fs2_add_remote_candidates(PurpleMediaBackend *self, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2168 | const gchar *sess_id, const gchar *participant, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2169 | GList *remote_candidates) |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2170 | { |
|
29583
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2171 | PurpleMediaBackendFs2Private *priv; |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2172 | PurpleMediaBackendFs2Stream *stream; |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2173 | GError *err = NULL; |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2174 | |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2175 | g_return_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self)); |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2176 | |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2177 | priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2178 | stream = get_stream(PURPLE_MEDIA_BACKEND_FS2(self), |
|
29583
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2179 | sess_id, participant); |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2180 | |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2181 | if (stream == NULL) { |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2182 | purple_debug_error("backend-fs2", |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2183 | "purple_media_add_remote_candidates: " |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2184 | "couldn't find stream %s %s.\n", |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2185 | sess_id ? sess_id : "(null)", |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2186 | participant ? participant : "(null)"); |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2187 | return; |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2188 | } |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2189 | |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2190 | stream->remote_candidates = g_list_concat(stream->remote_candidates, |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2191 | candidate_list_to_fs(remote_candidates)); |
|
29583
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2192 | |
|
29648
be1362619ef2
Allow connection checks before acceptance. Fixes Empathy<->Pidgin.
Michael Ruprecht <maiku@pidgin.im>
parents:
29623
diff
changeset
|
2193 | if (purple_media_is_initiator(priv->media, sess_id, participant) || |
|
be1362619ef2
Allow connection checks before acceptance. Fixes Empathy<->Pidgin.
Michael Ruprecht <maiku@pidgin.im>
parents:
29623
diff
changeset
|
2194 | purple_media_accepted( |
|
be1362619ef2
Allow connection checks before acceptance. Fixes Empathy<->Pidgin.
Michael Ruprecht <maiku@pidgin.im>
parents:
29623
diff
changeset
|
2195 | priv->media, sess_id, participant)) { |
|
37217
6da7cadb323f
Remove Farsight support (ok'd by elb)
Michael McConville <mmcconville@mykolab.com>
parents:
37163
diff
changeset
|
2196 | |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2197 | if (stream->supports_add) |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2198 | fs_stream_add_remote_candidates(stream->stream, |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2199 | stream->remote_candidates, &err); |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2200 | else |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2201 | fs_stream_force_remote_candidates(stream->stream, |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2202 | stream->remote_candidates, &err); |
|
29583
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2203 | |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2204 | if (err) { |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2205 | purple_debug_error("backend-fs2", "Error adding remote" |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2206 | " candidates: %s\n", err->message); |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2207 | g_error_free(err); |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2208 | } |
|
706454e8df2b
Transfer setting Farsight 2's remote candidates to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29582
diff
changeset
|
2209 | } |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2210 | } |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2211 | |
|
29597
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2212 | static gboolean |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2213 | purple_media_backend_fs2_codecs_ready(PurpleMediaBackend *self, |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2214 | const gchar *sess_id) |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2215 | { |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2216 | PurpleMediaBackendFs2Private *priv; |
|
30627
5aba54c21ca3
Fix a possible Garbage return value.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
30424
diff
changeset
|
2217 | gboolean ret = FALSE; |
|
29597
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2218 | |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2219 | g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), FALSE); |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2220 | |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2221 | priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2222 | |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2223 | if (sess_id != NULL) { |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2224 | PurpleMediaBackendFs2Session *session = get_session( |
|
29597
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2225 | PURPLE_MEDIA_BACKEND_FS2(self), sess_id); |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2226 | |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2227 | if (session == NULL) |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2228 | return FALSE; |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2229 | |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2230 | if (session->type & (PURPLE_MEDIA_SEND_AUDIO | |
|
36333
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
2231 | #ifdef HAVE_MEDIA_APPLICATION |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
2232 | PURPLE_MEDIA_SEND_APPLICATION | |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
2233 | #endif |
|
32112
721223fa619b
Minor refactoring of purple_media_backend_fs2_codecs_ready()
Richard Laager <rlaager@pidgin.im>
parents:
32111
diff
changeset
|
2234 | PURPLE_MEDIA_SEND_VIDEO)) { |
|
37217
6da7cadb323f
Remove Farsight support (ok'd by elb)
Michael McConville <mmcconville@mykolab.com>
parents:
37163
diff
changeset
|
2235 | |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2236 | GList *codecs = NULL; |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2237 | |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2238 | g_object_get(session->session, |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2239 | "codecs", &codecs, NULL); |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2240 | if (codecs) { |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2241 | fs_codec_list_destroy (codecs); |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2242 | ret = TRUE; |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2243 | } |
|
32112
721223fa619b
Minor refactoring of purple_media_backend_fs2_codecs_ready()
Richard Laager <rlaager@pidgin.im>
parents:
32111
diff
changeset
|
2244 | } else |
|
29597
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2245 | ret = TRUE; |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2246 | } else { |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2247 | GList *values = g_hash_table_get_values(priv->sessions); |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2248 | |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2249 | for (; values; values = g_list_delete_link(values, values)) { |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2250 | PurpleMediaBackendFs2Session *session = values->data; |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2251 | |
|
29597
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2252 | if (session->type & (PURPLE_MEDIA_SEND_AUDIO | |
|
36333
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
2253 | #ifdef HAVE_MEDIA_APPLICATION |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
2254 | PURPLE_MEDIA_SEND_APPLICATION | |
|
4fe1034f3dce
Add application media type and APIs
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36321
diff
changeset
|
2255 | #endif |
|
32112
721223fa619b
Minor refactoring of purple_media_backend_fs2_codecs_ready()
Richard Laager <rlaager@pidgin.im>
parents:
32111
diff
changeset
|
2256 | PURPLE_MEDIA_SEND_VIDEO)) { |
|
37217
6da7cadb323f
Remove Farsight support (ok'd by elb)
Michael McConville <mmcconville@mykolab.com>
parents:
37163
diff
changeset
|
2257 | |
|
32113
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2258 | GList *codecs = NULL; |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2259 | |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2260 | g_object_get(session->session, |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2261 | "codecs", &codecs, NULL); |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2262 | if (codecs) { |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2263 | fs_codec_list_destroy (codecs); |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2264 | ret = TRUE; |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2265 | } else { |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2266 | ret = FALSE; |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2267 | break; |
|
2a75cce047d5
Port to Farstream
Olivier Crête <olivier.crete@collabora.com>
parents:
32112
diff
changeset
|
2268 | } |
|
32112
721223fa619b
Minor refactoring of purple_media_backend_fs2_codecs_ready()
Richard Laager <rlaager@pidgin.im>
parents:
32111
diff
changeset
|
2269 | } else |
|
29597
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2270 | ret = TRUE; |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2271 | } |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2272 | |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2273 | if (values != NULL) |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2274 | g_list_free(values); |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2275 | } |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2276 | |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2277 | return ret; |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2278 | } |
|
22843326ee22
Add codecs_ready to the media backend interface.
Michael Ruprecht <maiku@pidgin.im>
parents:
29595
diff
changeset
|
2279 | |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2280 | static GList * |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2281 | purple_media_backend_fs2_get_codecs(PurpleMediaBackend *self, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2282 | const gchar *sess_id) |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2283 | { |
|
29585
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
2284 | PurpleMediaBackendFs2Session *session; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
2285 | GList *fscodecs; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
2286 | GList *codecs; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
2287 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
2288 | g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), NULL); |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
2289 | |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2290 | session = get_session(PURPLE_MEDIA_BACKEND_FS2(self), sess_id); |
|
29585
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
2291 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
2292 | if (session == NULL) |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
2293 | return NULL; |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
2294 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
2295 | g_object_get(G_OBJECT(session->session), |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
2296 | "codecs", &fscodecs, NULL); |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2297 | codecs = codec_list_from_fs(fscodecs); |
|
29585
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
2298 | fs_codec_list_destroy(fscodecs); |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
2299 | |
|
37a79cc62b55
Transfer get_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29583
diff
changeset
|
2300 | return codecs; |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2301 | } |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2302 | |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2303 | static GList * |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2304 | purple_media_backend_fs2_get_local_candidates(PurpleMediaBackend *self, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2305 | const gchar *sess_id, const gchar *participant) |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2306 | { |
|
29587
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
2307 | PurpleMediaBackendFs2Stream *stream; |
|
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
2308 | GList *candidates = NULL; |
|
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
2309 | |
|
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
2310 | g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), NULL); |
|
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
2311 | |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2312 | stream = get_stream(PURPLE_MEDIA_BACKEND_FS2(self), |
|
29587
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
2313 | sess_id, participant); |
|
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
2314 | |
|
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
2315 | if (stream != NULL) |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2316 | candidates = candidate_list_from_fs( |
|
29587
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
2317 | stream->local_candidates); |
|
9bf09e3031b0
Move get_local_candidates functionality over to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29586
diff
changeset
|
2318 | return candidates; |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2319 | } |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2320 | |
|
29588
a3fef46ce04a
Make the backend interface's set_remote_codecs function return gboolean.
Michael Ruprecht <maiku@pidgin.im>
parents:
29587
diff
changeset
|
2321 | static gboolean |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2322 | purple_media_backend_fs2_set_remote_codecs(PurpleMediaBackend *self, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2323 | const gchar *sess_id, const gchar *participant, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2324 | GList *codecs) |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2325 | { |
|
29589
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2326 | PurpleMediaBackendFs2Stream *stream; |
|
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2327 | GList *fscodecs; |
|
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2328 | GError *err = NULL; |
|
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2329 | |
|
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2330 | g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), FALSE); |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2331 | stream = get_stream(PURPLE_MEDIA_BACKEND_FS2(self), |
|
29589
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2332 | sess_id, participant); |
|
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2333 | |
|
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2334 | if (stream == NULL) |
|
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2335 | return FALSE; |
|
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2336 | |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2337 | fscodecs = codec_list_to_fs(codecs); |
|
29589
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2338 | fs_stream_set_remote_codecs(stream->stream, fscodecs, &err); |
|
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2339 | fs_codec_list_destroy(fscodecs); |
|
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2340 | |
|
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2341 | if (err) { |
|
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2342 | purple_debug_error("backend-fs2", |
|
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2343 | "Error setting remote codecs: %s\n", |
|
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2344 | err->message); |
|
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2345 | g_error_free(err); |
|
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2346 | return FALSE; |
|
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2347 | } |
|
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2348 | |
|
3ff2d4b37b1f
Move set_remote_codecs functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29588
diff
changeset
|
2349 | return TRUE; |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2350 | } |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2351 | |
|
36318
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2352 | static GstStructure * |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2353 | create_fs2_srtp_structure(const gchar *cipher, const gchar *auth, |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2354 | const gchar *key, gsize key_len) |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2355 | { |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2356 | GstStructure *result; |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2357 | GstBuffer *buffer; |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2358 | GstMapInfo info; |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2359 | |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2360 | buffer = gst_buffer_new_allocate(NULL, key_len, NULL); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2361 | gst_buffer_map(buffer, &info, GST_MAP_WRITE); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2362 | memcpy(info.data, key, key_len); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2363 | gst_buffer_unmap(buffer, &info); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2364 | |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2365 | result = gst_structure_new("FarstreamSRTP", |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2366 | "cipher", G_TYPE_STRING, cipher, |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2367 | "auth", G_TYPE_STRING, auth, |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2368 | "key", GST_TYPE_BUFFER, buffer, |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2369 | NULL); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2370 | gst_buffer_unref(buffer); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2371 | |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2372 | return result; |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2373 | } |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2374 | |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2375 | static gboolean |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2376 | purple_media_backend_fs2_set_encryption_parameters (PurpleMediaBackend *self, |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2377 | const gchar *sess_id, const gchar *cipher, const gchar *auth, |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2378 | const gchar *key, gsize key_len) |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2379 | { |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2380 | PurpleMediaBackendFs2Session *session; |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2381 | GstStructure *srtp; |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2382 | GError *err = NULL; |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2383 | gboolean result; |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2384 | |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2385 | g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), FALSE); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2386 | |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2387 | session = get_session(PURPLE_MEDIA_BACKEND_FS2(self), sess_id); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2388 | if (!session) |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2389 | return FALSE; |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2390 | |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2391 | srtp = create_fs2_srtp_structure(cipher, auth, key, key_len); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2392 | if (!srtp) |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2393 | return FALSE; |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2394 | |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2395 | result = fs_session_set_encryption_parameters(session->session, srtp, |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2396 | &err); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2397 | if (!result) { |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2398 | purple_debug_error("backend-fs2", |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2399 | "Error setting encryption parameters: %s\n", err->message); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2400 | g_error_free(err); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2401 | } |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2402 | |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2403 | gst_structure_free(srtp); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2404 | return result; |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2405 | } |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2406 | |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2407 | static gboolean |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2408 | purple_media_backend_fs2_set_decryption_parameters (PurpleMediaBackend *self, |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2409 | const gchar *sess_id, const gchar *participant, |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2410 | const gchar *cipher, const gchar *auth, |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2411 | const gchar *key, gsize key_len) |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2412 | { |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2413 | PurpleMediaBackendFs2Stream *stream; |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2414 | GstStructure *srtp; |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2415 | GError *err = NULL; |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2416 | gboolean result; |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2417 | |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2418 | g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), FALSE); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2419 | |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2420 | stream = get_stream(PURPLE_MEDIA_BACKEND_FS2(self), sess_id, |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2421 | participant); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2422 | if (!stream) |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2423 | return FALSE; |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2424 | |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2425 | srtp = create_fs2_srtp_structure(cipher, auth, key, key_len); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2426 | if (!srtp) |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2427 | return FALSE; |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2428 | |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2429 | result = fs_stream_set_decryption_parameters(stream->stream, srtp, |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2430 | &err); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2431 | if (!result) { |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2432 | purple_debug_error("backend-fs2", |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2433 | "Error setting decryption parameters: %s\n", err->message); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2434 | g_error_free(err); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2435 | } |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2436 | |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2437 | gst_structure_free(srtp); |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2438 | return result; |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2439 | } |
|
a0906e7a6bae
Implement media encryption
Jakub Adam <jakub.adam@ktknet.cz>
parents:
36317
diff
changeset
|
2440 | |
|
29590
bec92b90acc9
Change the media backend interface's set_send_codec to return gboolean to
Michael Ruprecht <maiku@pidgin.im>
parents:
29589
diff
changeset
|
2441 | static gboolean |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2442 | purple_media_backend_fs2_set_send_codec(PurpleMediaBackend *self, |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2443 | const gchar *sess_id, PurpleMediaCodec *codec) |
|
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2444 | { |
|
29591
fe94e4516832
Move set_remote_codec functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29590
diff
changeset
|
2445 | PurpleMediaBackendFs2Session *session; |
|
fe94e4516832
Move set_remote_codec functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29590
diff
changeset
|
2446 | FsCodec *fscodec; |
|
fe94e4516832
Move set_remote_codec functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29590
diff
changeset
|
2447 | GError *err = NULL; |
|
fe94e4516832
Move set_remote_codec functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29590
diff
changeset
|
2448 | |
|
fe94e4516832
Move set_remote_codec functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29590
diff
changeset
|
2449 | g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), FALSE); |
|
fe94e4516832
Move set_remote_codec functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29590
diff
changeset
|
2450 | |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2451 | session = get_session(PURPLE_MEDIA_BACKEND_FS2(self), sess_id); |
|
29591
fe94e4516832
Move set_remote_codec functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29590
diff
changeset
|
2452 | |
|
fe94e4516832
Move set_remote_codec functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29590
diff
changeset
|
2453 | if (session == NULL) |
|
fe94e4516832
Move set_remote_codec functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29590
diff
changeset
|
2454 | return FALSE; |
|
fe94e4516832
Move set_remote_codec functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29590
diff
changeset
|
2455 | |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2456 | fscodec = codec_to_fs(codec); |
|
29591
fe94e4516832
Move set_remote_codec functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29590
diff
changeset
|
2457 | fs_session_set_send_codec(session->session, fscodec, &err); |
|
fe94e4516832
Move set_remote_codec functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29590
diff
changeset
|
2458 | fs_codec_destroy(fscodec); |
|
fe94e4516832
Move set_remote_codec functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29590
diff
changeset
|
2459 | |
|
fe94e4516832
Move set_remote_codec functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29590
diff
changeset
|
2460 | if (err) { |
|
fe94e4516832
Move set_remote_codec functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29590
diff
changeset
|
2461 | purple_debug_error("media", "Error setting send codec\n"); |
|
fe94e4516832
Move set_remote_codec functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29590
diff
changeset
|
2462 | g_error_free(err); |
|
fe94e4516832
Move set_remote_codec functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29590
diff
changeset
|
2463 | return FALSE; |
|
fe94e4516832
Move set_remote_codec functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29590
diff
changeset
|
2464 | } |
|
fe94e4516832
Move set_remote_codec functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29590
diff
changeset
|
2465 | |
|
29590
bec92b90acc9
Change the media backend interface's set_send_codec to return gboolean to
Michael Ruprecht <maiku@pidgin.im>
parents:
29589
diff
changeset
|
2466 | return TRUE; |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2467 | } |
|
31687
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2468 | |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2469 | static const gchar ** |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2470 | purple_media_backend_fs2_get_available_params(void) |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2471 | { |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2472 | static const gchar *supported_params[] = { |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2473 | "sdes-cname", "sdes-email", "sdes-location", "sdes-name", "sdes-note", |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2474 | "sdes-phone", "sdes-tool", NULL |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2475 | }; |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2476 | |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2477 | return supported_params; |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2478 | } |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2479 | |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2480 | static const gchar* |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2481 | param_to_sdes_type(const gchar *param) |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2482 | { |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2483 | const gchar **supported = purple_media_backend_fs2_get_available_params(); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2484 | static const gchar *sdes_types[] = { |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2485 | "cname", "email", "location", "name", "note", "phone", "tool", NULL |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2486 | }; |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2487 | guint i; |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2488 | |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2489 | for (i = 0; supported[i] != NULL; ++i) { |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2490 | if (!strcmp(param, supported[i])) { |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2491 | return sdes_types[i]; |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2492 | } |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2493 | } |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2494 | |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2495 | return NULL; |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2496 | } |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2497 | |
|
31687
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2498 | static void |
|
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2499 | purple_media_backend_fs2_set_params(PurpleMediaBackend *self, |
|
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2500 | guint num_params, GParameter *params) |
|
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2501 | { |
|
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2502 | PurpleMediaBackendFs2Private *priv; |
|
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2503 | guint i; |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2504 | GstStructure *sdes; |
|
31687
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2505 | |
|
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2506 | g_return_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self)); |
|
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2507 | |
|
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2508 | priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); |
|
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2509 | |
|
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2510 | if (priv->conference == NULL && |
|
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2511 | !init_conference(PURPLE_MEDIA_BACKEND_FS2(self))) { |
|
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2512 | purple_debug_error("backend-fs2", |
|
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2513 | "Error initializing the conference.\n"); |
|
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2514 | return; |
|
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2515 | } |
|
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2516 | |
|
36316
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2517 | g_object_get(G_OBJECT(priv->conference), "sdes", &sdes, NULL); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2518 | |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2519 | for (i = 0; i != num_params; ++i) { |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2520 | const gchar *sdes_type = param_to_sdes_type(params[i].name); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2521 | if (!sdes_type) |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2522 | continue; |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2523 | |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2524 | gst_structure_set(sdes, sdes_type, |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2525 | G_TYPE_STRING, g_value_get_string(¶ms[i].value), |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2526 | NULL); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2527 | } |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2528 | |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2529 | g_object_set(G_OBJECT(priv->conference), "sdes", sdes, NULL); |
|
2415067473ba
Support GStreamer 1.x and resync with trunk
David Woodhouse <David.Woodhouse@intel.com>
parents:
36312
diff
changeset
|
2530 | gst_structure_free(sdes); |
|
31687
4877d06f3234
media: Allow setting SDES properties of RTP conferences. Fixes #12981.
Jakub Adam <jakub.adam@ktknet.cz>
parents:
31618
diff
changeset
|
2531 | } |
|
36312
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2532 | static gboolean |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2533 | send_dtmf_callback(gpointer userdata) |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2534 | { |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2535 | FsSession *session = userdata; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2536 | |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2537 | fs_session_stop_telephony_event(session); |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2538 | |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2539 | return FALSE; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2540 | } |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2541 | static gboolean |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2542 | purple_media_backend_fs2_send_dtmf(PurpleMediaBackend *self, |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2543 | const gchar *sess_id, gchar dtmf, guint8 volume, |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2544 | guint16 duration) |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2545 | { |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2546 | PurpleMediaBackendFs2Session *session; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2547 | FsDTMFEvent event; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2548 | |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2549 | g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), FALSE); |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2550 | |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2551 | session = get_session(PURPLE_MEDIA_BACKEND_FS2(self), sess_id); |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2552 | if (session == NULL) |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2553 | return FALSE; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2554 | |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2555 | /* Convert DTMF char into FsDTMFEvent enum */ |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2556 | switch(dtmf) { |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2557 | case '0': event = FS_DTMF_EVENT_0; break; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2558 | case '1': event = FS_DTMF_EVENT_1; break; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2559 | case '2': event = FS_DTMF_EVENT_2; break; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2560 | case '3': event = FS_DTMF_EVENT_3; break; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2561 | case '4': event = FS_DTMF_EVENT_4; break; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2562 | case '5': event = FS_DTMF_EVENT_5; break; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2563 | case '6': event = FS_DTMF_EVENT_6; break; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2564 | case '7': event = FS_DTMF_EVENT_7; break; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2565 | case '8': event = FS_DTMF_EVENT_8; break; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2566 | case '9': event = FS_DTMF_EVENT_9; break; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2567 | case '*': event = FS_DTMF_EVENT_STAR; break; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2568 | case '#': event = FS_DTMF_EVENT_POUND; break; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2569 | case 'A': event = FS_DTMF_EVENT_A; break; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2570 | case 'B': event = FS_DTMF_EVENT_B; break; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2571 | case 'C': event = FS_DTMF_EVENT_C; break; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2572 | case 'D': event = FS_DTMF_EVENT_D; break; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2573 | default: |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2574 | return FALSE; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2575 | } |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2576 | |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2577 | if (!fs_session_start_telephony_event(session->session, |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2578 | event, volume)) { |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2579 | return FALSE; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2580 | } |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2581 | |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2582 | if (duration <= 50) { |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2583 | fs_session_stop_telephony_event(session->session); |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2584 | } else { |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2585 | purple_timeout_add(duration, send_dtmf_callback, |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2586 | session->session); |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2587 | } |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2588 | |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2589 | return TRUE; |
|
6b4576edf2a6
Add out-of-band DTMF support and dialpad to use it
David Woodhouse <David.Woodhouse@intel.com>
parents:
36256
diff
changeset
|
2590 | } |
|
29657
d7e6c5fcabcc
Wraps backend-fs2.c in #ifdefs for when VV or GSTREAMER is disabled.
Michael Ruprecht <maiku@pidgin.im>
parents:
29648
diff
changeset
|
2591 | #else |
|
d7e6c5fcabcc
Wraps backend-fs2.c in #ifdefs for when VV or GSTREAMER is disabled.
Michael Ruprecht <maiku@pidgin.im>
parents:
29648
diff
changeset
|
2592 | GType |
|
d7e6c5fcabcc
Wraps backend-fs2.c in #ifdefs for when VV or GSTREAMER is disabled.
Michael Ruprecht <maiku@pidgin.im>
parents:
29648
diff
changeset
|
2593 | purple_media_backend_fs2_get_type(void) |
|
d7e6c5fcabcc
Wraps backend-fs2.c in #ifdefs for when VV or GSTREAMER is disabled.
Michael Ruprecht <maiku@pidgin.im>
parents:
29648
diff
changeset
|
2594 | { |
|
d7e6c5fcabcc
Wraps backend-fs2.c in #ifdefs for when VV or GSTREAMER is disabled.
Michael Ruprecht <maiku@pidgin.im>
parents:
29648
diff
changeset
|
2595 | return G_TYPE_NONE; |
|
d7e6c5fcabcc
Wraps backend-fs2.c in #ifdefs for when VV or GSTREAMER is disabled.
Michael Ruprecht <maiku@pidgin.im>
parents:
29648
diff
changeset
|
2596 | } |
|
d7e6c5fcabcc
Wraps backend-fs2.c in #ifdefs for when VV or GSTREAMER is disabled.
Michael Ruprecht <maiku@pidgin.im>
parents:
29648
diff
changeset
|
2597 | #endif /* USE_VV */ |
|
29556
ebf1af169279
Skeleton of the Farsight 2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
diff
changeset
|
2598 | |
|
29657
d7e6c5fcabcc
Wraps backend-fs2.c in #ifdefs for when VV or GSTREAMER is disabled.
Michael Ruprecht <maiku@pidgin.im>
parents:
29648
diff
changeset
|
2599 | #ifdef USE_GSTREAMER |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2600 | GstElement * |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2601 | purple_media_backend_fs2_get_src(PurpleMediaBackendFs2 *self, |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2602 | const gchar *sess_id) |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2603 | { |
|
29657
d7e6c5fcabcc
Wraps backend-fs2.c in #ifdefs for when VV or GSTREAMER is disabled.
Michael Ruprecht <maiku@pidgin.im>
parents:
29648
diff
changeset
|
2604 | #ifdef USE_VV |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2605 | PurpleMediaBackendFs2Session *session = get_session(self, sess_id); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2606 | return session != NULL ? session->src : NULL; |
|
29657
d7e6c5fcabcc
Wraps backend-fs2.c in #ifdefs for when VV or GSTREAMER is disabled.
Michael Ruprecht <maiku@pidgin.im>
parents:
29648
diff
changeset
|
2607 | #else |
|
d7e6c5fcabcc
Wraps backend-fs2.c in #ifdefs for when VV or GSTREAMER is disabled.
Michael Ruprecht <maiku@pidgin.im>
parents:
29648
diff
changeset
|
2608 | return NULL; |
|
d7e6c5fcabcc
Wraps backend-fs2.c in #ifdefs for when VV or GSTREAMER is disabled.
Michael Ruprecht <maiku@pidgin.im>
parents:
29648
diff
changeset
|
2609 | #endif |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2610 | } |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2611 | |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2612 | GstElement * |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2613 | purple_media_backend_fs2_get_tee(PurpleMediaBackendFs2 *self, |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2614 | const gchar *sess_id, const gchar *who) |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2615 | { |
|
29657
d7e6c5fcabcc
Wraps backend-fs2.c in #ifdefs for when VV or GSTREAMER is disabled.
Michael Ruprecht <maiku@pidgin.im>
parents:
29648
diff
changeset
|
2616 | #ifdef USE_VV |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2617 | if (sess_id != NULL && who == NULL) { |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2618 | PurpleMediaBackendFs2Session *session = |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2619 | get_session(self, sess_id); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2620 | return (session != NULL) ? session->tee : NULL; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2621 | } else if (sess_id != NULL && who != NULL) { |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2622 | PurpleMediaBackendFs2Stream *stream = |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2623 | get_stream(self, sess_id, who); |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2624 | return (stream != NULL) ? stream->tee : NULL; |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2625 | } |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2626 | |
|
29657
d7e6c5fcabcc
Wraps backend-fs2.c in #ifdefs for when VV or GSTREAMER is disabled.
Michael Ruprecht <maiku@pidgin.im>
parents:
29648
diff
changeset
|
2627 | #endif /* USE_VV */ |
|
29599
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2628 | g_return_val_if_reached(NULL); |
|
24e1d49a6fce
Move all src and sink creation in PurpleMedia to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29598
diff
changeset
|
2629 | } |
|
29601
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2630 | |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2631 | void |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2632 | purple_media_backend_fs2_set_input_volume(PurpleMediaBackendFs2 *self, |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2633 | const gchar *sess_id, double level) |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2634 | { |
|
29657
d7e6c5fcabcc
Wraps backend-fs2.c in #ifdefs for when VV or GSTREAMER is disabled.
Michael Ruprecht <maiku@pidgin.im>
parents:
29648
diff
changeset
|
2635 | #ifdef USE_VV |
|
29601
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2636 | PurpleMediaBackendFs2Private *priv; |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2637 | GList *sessions; |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2638 | |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2639 | g_return_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self)); |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2640 | |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2641 | priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2642 | |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2643 | purple_prefs_set_int("/purple/media/audio/volume/input", level); |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2644 | |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2645 | if (sess_id == NULL) |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2646 | sessions = g_hash_table_get_values(priv->sessions); |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2647 | else |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2648 | sessions = g_list_append(NULL, get_session(self, sess_id)); |
|
29601
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2649 | |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2650 | for (; sessions; sessions = g_list_delete_link(sessions, sessions)) { |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2651 | PurpleMediaBackendFs2Session *session = sessions->data; |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2652 | |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2653 | if (session->type & PURPLE_MEDIA_SEND_AUDIO) { |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2654 | gchar *name = g_strdup_printf("volume_%s", |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2655 | session->id); |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2656 | GstElement *volume = gst_bin_get_by_name( |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2657 | GST_BIN(priv->confbin), name); |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2658 | g_free(name); |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2659 | g_object_set(volume, "volume", level/10.0, NULL); |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2660 | } |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2661 | } |
|
29657
d7e6c5fcabcc
Wraps backend-fs2.c in #ifdefs for when VV or GSTREAMER is disabled.
Michael Ruprecht <maiku@pidgin.im>
parents:
29648
diff
changeset
|
2662 | #endif /* USE_VV */ |
|
29601
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2663 | } |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2664 | |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2665 | void |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2666 | purple_media_backend_fs2_set_output_volume(PurpleMediaBackendFs2 *self, |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2667 | const gchar *sess_id, const gchar *who, double level) |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2668 | { |
|
29657
d7e6c5fcabcc
Wraps backend-fs2.c in #ifdefs for when VV or GSTREAMER is disabled.
Michael Ruprecht <maiku@pidgin.im>
parents:
29648
diff
changeset
|
2669 | #ifdef USE_VV |
|
29601
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2670 | GList *streams; |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2671 | |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2672 | g_return_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self)); |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2673 | |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2674 | purple_prefs_set_int("/purple/media/audio/volume/output", level); |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2675 | |
|
29623
664df0ecb40f
Remove the underscore from functions as the underscore is reserved for compilers
Michael Ruprecht <maiku@pidgin.im>
parents:
29619
diff
changeset
|
2676 | streams = get_streams(self, sess_id, who); |
|
29601
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2677 | |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2678 | for (; streams; streams = g_list_delete_link(streams, streams)) { |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2679 | PurpleMediaBackendFs2Stream *stream = streams->data; |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2680 | |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2681 | if (stream->session->type & PURPLE_MEDIA_RECV_AUDIO |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2682 | && GST_IS_ELEMENT(stream->volume)) { |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2683 | g_object_set(stream->volume, "volume", |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2684 | level/10.0, NULL); |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2685 | } |
|
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2686 | } |
|
29657
d7e6c5fcabcc
Wraps backend-fs2.c in #ifdefs for when VV or GSTREAMER is disabled.
Michael Ruprecht <maiku@pidgin.im>
parents:
29648
diff
changeset
|
2687 | #endif /* USE_VV */ |
|
29601
fb1168d4ee6b
Move volume setting functionality to the Fs2 media backend.
Michael Ruprecht <maiku@pidgin.im>
parents:
29600
diff
changeset
|
2688 | } |
|
29661
ae75a0a4d399
Fix compile with --disable-gstreamer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
29657
diff
changeset
|
2689 | #endif /* USE_GSTREAMER */ |
|
36321
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2690 | |
|
36343
4e2ee271e0e1
Fix compilation error when USE_VV is not defined.
Andrew Victor <andrew.victor@mxit.com>
parents:
36333
diff
changeset
|
2691 | #ifdef USE_VV |
|
36321
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2692 | static gboolean |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2693 | purple_media_backend_fs2_set_send_rtcp_mux(PurpleMediaBackend *self, |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2694 | const gchar *sess_id, const gchar *participant, |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2695 | gboolean send_rtcp_mux) |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2696 | { |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2697 | PurpleMediaBackendFs2Stream *stream; |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2698 | |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2699 | g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), FALSE); |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2700 | stream = get_stream(PURPLE_MEDIA_BACKEND_FS2(self), |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2701 | sess_id, participant); |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2702 | |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2703 | if (stream != NULL && |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2704 | g_object_class_find_property (G_OBJECT_GET_CLASS (stream->stream), |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2705 | "send-rtcp-mux") != NULL) { |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2706 | g_object_set (stream->stream, "send-rtcp-mux", send_rtcp_mux, NULL); |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2707 | return TRUE; |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2708 | } |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2709 | |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2710 | return FALSE; |
|
5f5abd63c305
media: Add a send-rtcp-mux API to allow muxing of RTP and RTCP
Youness Alaoui <kakaroto@kakaroto.homelinux.net>
parents:
36318
diff
changeset
|
2711 | } |
|
36343
4e2ee271e0e1
Fix compilation error when USE_VV is not defined.
Andrew Victor <andrew.victor@mxit.com>
parents:
36333
diff
changeset
|
2712 | #endif /* USE_VV */ |