1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
|
From 7624830d2ec11d2f3645a27384ae9ced7ac7a258 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali.rohar@gmail.com>
Date: Sun, 15 Mar 2015 14:00:40 +0100
Subject: [PATCH] Fix libjingle compilation with mediastreamer >= 2.11
BUG: 345162
FIXED-IN: 15.04
---
cmake/modules/FindMediastreamer.cmake | 11 +++--
protocols/jabber/libjingle/CMakeLists.txt | 10 +++--
.../libjingle/patches/08_mediastreamer_2_11.patch | 47 ++++++++++++++++++++
.../talk/session/phone/linphonemediaengine.cc | 22 ++++-----
4 files changed, 74 insertions(+), 16 deletions(-)
create mode 100644 protocols/jabber/libjingle/patches/08_mediastreamer_2_11.patch
diff --git a/cmake/modules/FindMediastreamer.cmake b/cmake/modules/FindMediastreamer.cmake
index 929b1ee..47fe5c3 100644
--- a/cmake/modules/FindMediastreamer.cmake
+++ b/cmake/modules/FindMediastreamer.cmake
@@ -22,9 +22,14 @@ IF (MEDIASTREAMER_FOUND)
IF (NOT MEDIASTREAMER_FIND_QUIETLY)
MESSAGE(STATUS "Found Mediastreamer: ${MEDIASTREAMER_LIBRARIES} (version: ${MEDIASTREAMER_VERSION})")
IF (MEDIASTREAMER_VERSION VERSION_LESS 2.9)
- SET(MEDIASTREAMER_OLD TRUE)
+ SET(MEDIASTREAMER_LESS_2_9 TRUE)
+ SET(MEDIASTREAMER_LESS_2_11 TRUE)
+ ELSEIF (MEDIASTREAMER_VERSION VERSION_LESS 2.11)
+ SET(MEDIASTREAMER_LESS_2_9 FALSE)
+ SET(MEDIASTREAMER_LESS_2_11 TRUE)
ELSE (MEDIASTREAMER_VERSION VERSION_LESS 2.9)
- SET(MEDIASTREAMER_OLD FALSE)
+ SET(MEDIASTREAMER_LESS_2_9 FALSE)
+ SET(MEDIASTREAMER_LESS_2_11 FALSE)
ENDIF (MEDIASTREAMER_VERSION VERSION_LESS 2.9)
ENDIF (NOT MEDIASTREAMER_FIND_QUIETLY)
ELSE (MEDIASTREAMER_FOUND)
@@ -33,4 +38,4 @@ ELSE (MEDIASTREAMER_FOUND)
ENDIF (MEDIASTREAMER_FIND_REQUIRED)
ENDIF (MEDIASTREAMER_FOUND)
-MARK_AS_ADVANCED(MEDIASTREAMER_INCLUDE_DIR MEDIASTREAMER_LIBRARIES MEDIASTREAMER_OLD)
+MARK_AS_ADVANCED(MEDIASTREAMER_INCLUDE_DIR MEDIASTREAMER_LIBRARIES MEDIASTREAMER_LESS_2_9 MEDIASTREAMER_LESS_2_11)
diff --git a/protocols/jabber/libjingle/CMakeLists.txt b/protocols/jabber/libjingle/CMakeLists.txt
index 6db3da3..4b4b620 100644
--- a/protocols/jabber/libjingle/CMakeLists.txt
+++ b/protocols/jabber/libjingle/CMakeLists.txt
@@ -28,9 +28,13 @@ if ( NOT WIN32 )
endif ( NOT APPLE )
endif ( NOT WIN32 )
-if ( MEDIASTREAMER_OLD )
- add_definitions ( -DMEDIASTREAMER_OLD )
-endif ( MEDIASTREAMER_OLD )
+if ( MEDIASTREAMER_LESS_2_9 )
+ add_definitions ( -DMEDIASTREAMER_LESS_2_9 )
+endif ( MEDIASTREAMER_LESS_2_9 )
+
+if ( MEDIASTREAMER_LESS_2_11 )
+ add_definitions ( -DMEDIASTREAMER_LESS_2_11 )
+endif ( MEDIASTREAMER_LESS_2_11 )
if ( CMAKE_BUILD_TYPE STREQUAL "Debug" )
add_definitions ( -D_DEBUG )
diff --git a/protocols/jabber/libjingle/patches/08_mediastreamer_2_11.patch b/protocols/jabber/libjingle/patches/08_mediastreamer_2_11.patch
new file mode 100644
index 0000000..5eef985
--- /dev/null
+++ b/protocols/jabber/libjingle/patches/08_mediastreamer_2_11.patch
@@ -0,0 +1,47 @@
+diff --git a/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.cc b/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.cc
+index 6da35e0..e337dd4 100644
+--- a/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.cc
++++ b/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.cc
+@@ -171,6 +171,16 @@ bool LinphoneVoiceChannel::SetPlayout(bool playout) {
+ return true;
+ }
+
++#ifdef MEDIASTREAMER_LESS_2_11
++static inline RtpSession * audio_stream_get_rtp_session(const AudioStream *stream) {
++#ifdef MEDIASTREAMER_LESS_2_9
++ return stream->session;
++#else
++ return stream->ms.session;
++#endif
++}
++#endif
++
+ bool LinphoneVoiceChannel::SetSendCodecs(const std::vector<AudioCodec>& codecs) {
+
+ bool first = true;
+@@ -200,11 +210,7 @@ bool LinphoneVoiceChannel::SetSendCodecs(const std::vector<AudioCodec>& codecs)
+ LOG(LS_INFO) << "Using " << i->name << "/" << i->clockrate;
+ pt_ = i->id;
+ audio_stream_ = audio_stream_start(&av_profile, -1, "localhost", port1, i->id, 250, 0); /* -1 means that function will choose some free port */
+-#ifdef MEDIASTREAMER_OLD
+- port2 = rtp_session_get_local_port(audio_stream_->session);
+-#else
+- port2 = rtp_session_get_local_port(audio_stream_->ms.session);
+-#endif
++ port2 = rtp_session_get_local_port(audio_stream_get_rtp_session(audio_stream_));
+ first = false;
+ }
+ }
+@@ -215,11 +221,7 @@ bool LinphoneVoiceChannel::SetSendCodecs(const std::vector<AudioCodec>& codecs)
+ // working with a buggy client; let's try PCMU.
+ LOG(LS_WARNING) << "Received empty list of codces; using PCMU/8000";
+ audio_stream_ = audio_stream_start(&av_profile, -1, "localhost", port1, 0, 250, 0); /* -1 means that function will choose some free port */
+-#ifdef MEDIASTREAMER_OLD
+- port2 = rtp_session_get_local_port(audio_stream_->session);
+-#else
+- port2 = rtp_session_get_local_port(audio_stream_->ms.session);
+-#endif
++ port2 = rtp_session_get_local_port(audio_stream_get_rtp_session(audio_stream_));
+ }
+
+ return true;
diff --git a/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.cc b/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.cc
index 6da35e0..e337dd4 100644
--- a/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.cc
+++ b/protocols/jabber/libjingle/talk/session/phone/linphonemediaengine.cc
@@ -171,6 +171,16 @@ bool LinphoneVoiceChannel::SetPlayout(bool playout) {
return true;
}
+#ifdef MEDIASTREAMER_LESS_2_11
+static inline RtpSession * audio_stream_get_rtp_session(const AudioStream *stream) {
+#ifdef MEDIASTREAMER_LESS_2_9
+ return stream->session;
+#else
+ return stream->ms.session;
+#endif
+}
+#endif
+
bool LinphoneVoiceChannel::SetSendCodecs(const std::vector<AudioCodec>& codecs) {
bool first = true;
@@ -200,11 +210,7 @@ bool LinphoneVoiceChannel::SetSendCodecs(const std::vector<AudioCodec>& codecs)
LOG(LS_INFO) << "Using " << i->name << "/" << i->clockrate;
pt_ = i->id;
audio_stream_ = audio_stream_start(&av_profile, -1, "localhost", port1, i->id, 250, 0); /* -1 means that function will choose some free port */
-#ifdef MEDIASTREAMER_OLD
- port2 = rtp_session_get_local_port(audio_stream_->session);
-#else
- port2 = rtp_session_get_local_port(audio_stream_->ms.session);
-#endif
+ port2 = rtp_session_get_local_port(audio_stream_get_rtp_session(audio_stream_));
first = false;
}
}
@@ -215,11 +221,7 @@ bool LinphoneVoiceChannel::SetSendCodecs(const std::vector<AudioCodec>& codecs)
// working with a buggy client; let's try PCMU.
LOG(LS_WARNING) << "Received empty list of codces; using PCMU/8000";
audio_stream_ = audio_stream_start(&av_profile, -1, "localhost", port1, 0, 250, 0); /* -1 means that function will choose some free port */
-#ifdef MEDIASTREAMER_OLD
- port2 = rtp_session_get_local_port(audio_stream_->session);
-#else
- port2 = rtp_session_get_local_port(audio_stream_->ms.session);
-#endif
+ port2 = rtp_session_get_local_port(audio_stream_get_rtp_session(audio_stream_));
}
return true;
--
1.7.9.5
|