Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
BC
public
mediastreamer2
Commits
a954810f
Commit
a954810f
authored
Jul 23, 2012
by
Ghislain MARY
Browse files
API change to be able to specify local RTCP port for audio and video streams.
parent
82991edb
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
17 additions
and
16 deletions
+17
-16
include/mediastreamer2/mediastream.h
include/mediastreamer2/mediastream.h
+4
-3
include/mediastreamer2/msconference.h
include/mediastreamer2/msconference.h
+1
-1
src/audiostream.c
src/audiostream.c
+6
-6
src/videostream.c
src/videostream.c
+3
-3
tests/bench.c
tests/bench.c
+1
-1
tests/mediastream.c
tests/mediastream.c
+2
-2
No files found.
include/mediastreamer2/mediastream.h
View file @
a954810f
...
...
@@ -157,11 +157,12 @@ MS2_PUBLIC void audio_stream_play_received_dtmfs(AudioStream *st, bool_t yesno);
/**
* Creates an AudioStream object listening on a RTP port.
* @param locport the local UDP port to listen for RTP packets.
* @param loc_rtp_port the local UDP port to listen for RTP packets.
* @param loc_rtcp_port the local UDP port to listen for RTCP packets
* @param ipv6 TRUE if ipv6 must be used.
* @returns a new AudioStream.
**/
MS2_PUBLIC
AudioStream
*
audio_stream_new
(
int
locport
,
bool_t
ipv6
);
MS2_PUBLIC
AudioStream
*
audio_stream_new
(
int
loc
_rtp_port
,
int
loc_rtcp_
port
,
bool_t
ipv6
);
#define AUDIO_STREAM_FEATURE_PLC (1 << 0)
#define AUDIO_STREAM_FEATURE_EC (1 << 1)
...
...
@@ -329,7 +330,7 @@ typedef struct _VideoStream VideoStream;
MS2_PUBLIC
VideoStream
*
video_stream_new
(
int
locport
,
bool_t
use_ipv6
);
MS2_PUBLIC
VideoStream
*
video_stream_new
(
int
loc
_rtp_port
,
int
loc_rtcp_
port
,
bool_t
use_ipv6
);
MS2_PUBLIC
void
video_stream_set_direction
(
VideoStream
*
vs
,
VideoStreamDir
dir
);
MS2_PUBLIC
void
video_stream_enable_adaptive_bitrate_control
(
VideoStream
*
s
,
bool_t
yesno
);
MS2_PUBLIC
void
video_stream_set_render_callback
(
VideoStream
*
s
,
VideoStreamRenderCallback
cb
,
void
*
user_pointer
);
...
...
include/mediastreamer2/msconference.h
View file @
a954810f
...
...
@@ -147,7 +147,7 @@ MS2_PUBLIC void ms_audio_conference_destroy(MSAudioConference *obj);
* with the audiostream and is_remote=FALSE.<br>
* For example:<br>
* <PRE>
* AudioStream *st=audio_stream_new(65000,FALSE);
* AudioStream *st=audio_stream_new(65000,
65001,
FALSE);
* audio_stream_start_full(st, conf->local_dummy_profile,
* "127.0.0.1",
* 65000,
...
...
src/audiostream.c
View file @
a954810f
...
...
@@ -154,7 +154,7 @@ MSTickerPrio __ms_get_default_prio(bool_t is_video){
#endif
}
RtpSession
*
create_duplex_rtpsession
(
int
locport
,
bool_t
ipv6
){
RtpSession
*
create_duplex_rtpsession
(
int
loc
_rtp_port
,
int
loc_rtcp_
port
,
bool_t
ipv6
){
RtpSession
*
rtpr
;
rtpr
=
rtp_session_new
(
RTP_SESSION_SENDRECV
);
rtp_session_set_recv_buf_size
(
rtpr
,
MAX_RTP_SIZE
);
...
...
@@ -162,7 +162,7 @@ RtpSession * create_duplex_rtpsession( int locport, bool_t ipv6){
rtp_session_set_blocking_mode
(
rtpr
,
0
);
rtp_session_enable_adaptive_jitter_compensation
(
rtpr
,
TRUE
);
rtp_session_set_symmetric_rtp
(
rtpr
,
TRUE
);
rtp_session_set_local_addr
(
rtpr
,
ipv6
?
"::"
:
"0.0.0.0"
,
locport
);
rtp_session_set_local_addr
(
rtpr
,
ipv6
?
"::"
:
"0.0.0.0"
,
loc
_rtp_port
,
loc_rtcp_
port
);
rtp_session_signal_connect
(
rtpr
,
"timestamp_jump"
,(
RtpCallback
)
rtp_session_resync
,(
long
)
NULL
);
rtp_session_signal_connect
(
rtpr
,
"ssrc_changed"
,(
RtpCallback
)
rtp_session_resync
,(
long
)
NULL
);
rtp_session_set_ssrc_changed_threshold
(
rtpr
,
0
);
...
...
@@ -611,7 +611,7 @@ AudioStream * audio_stream_start(RtpProfile *prof,int locport,const char *remip,
sndcard_playback
=
ms_snd_card_manager_get_default_playback_card
(
ms_snd_card_manager_get
());
if
(
sndcard_capture
==
NULL
||
sndcard_playback
==
NULL
)
return
NULL
;
stream
=
audio_stream_new
(
locport
,
ms_is_ipv6
(
remip
));
stream
=
audio_stream_new
(
locport
,
locport
+
1
,
ms_is_ipv6
(
remip
));
if
(
audio_stream_start_full
(
stream
,
prof
,
remip
,
remport
,
remport
+
1
,
profile
,
jitt_comp
,
NULL
,
NULL
,
sndcard_playback
,
sndcard_capture
,
use_ec
)
==
0
)
return
stream
;
audio_stream_free
(
stream
);
return
NULL
;
...
...
@@ -628,7 +628,7 @@ AudioStream *audio_stream_start_with_sndcards(RtpProfile *prof,int locport,const
ms_error
(
"No capture card."
);
return
NULL
;
}
stream
=
audio_stream_new
(
locport
,
ms_is_ipv6
(
remip
));
stream
=
audio_stream_new
(
locport
,
locport
+
1
,
ms_is_ipv6
(
remip
));
if
(
audio_stream_start_full
(
stream
,
prof
,
remip
,
remport
,
remport
+
1
,
profile
,
jitt_comp
,
NULL
,
NULL
,
playcard
,
captcard
,
use_ec
)
==
0
)
return
stream
;
audio_stream_free
(
stream
);
return
NULL
;
...
...
@@ -680,14 +680,14 @@ void audio_stream_set_features(AudioStream *st, uint32_t features){
st
->
features
=
features
;
}
AudioStream
*
audio_stream_new
(
int
locport
,
bool_t
ipv6
){
AudioStream
*
audio_stream_new
(
int
loc
_rtp_port
,
int
loc_rtcp_
port
,
bool_t
ipv6
){
AudioStream
*
stream
=
(
AudioStream
*
)
ms_new0
(
AudioStream
,
1
);
MSFilterDesc
*
ec_desc
=
ms_filter_lookup_by_name
(
"MSOslec"
);
ms_filter_enable_statistics
(
TRUE
);
ms_filter_reset_statistics
();
stream
->
session
=
create_duplex_rtpsession
(
locport
,
ipv6
);
stream
->
session
=
create_duplex_rtpsession
(
loc
_rtp_port
,
loc_rtcp_
port
,
ipv6
);
/*some filters are created right now to allow configuration by the application before start() */
stream
->
rtpsend
=
ms_filter_new
(
MS_RTP_SEND_ID
);
stream
->
ice_check_list
=
NULL
;
...
...
src/videostream.c
View file @
a954810f
...
...
@@ -32,7 +32,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
extern
RtpSession
*
create_duplex_rtpsession
(
int
locport
,
bool_t
ipv6
);
extern
RtpSession
*
create_duplex_rtpsession
(
int
loc
_rtp_port
,
int
loc_rtcp_
port
,
bool_t
ipv6
);
#define MAX_RTP_SIZE UDP_MAX_SIZE
...
...
@@ -215,9 +215,9 @@ static void choose_display_name(VideoStream *stream){
#endif
}
VideoStream
*
video_stream_new
(
int
locport
,
bool_t
use_ipv6
){
VideoStream
*
video_stream_new
(
int
loc
_rtp_port
,
int
loc_rtcp_
port
,
bool_t
use_ipv6
){
VideoStream
*
stream
=
(
VideoStream
*
)
ms_new0
(
VideoStream
,
1
);
stream
->
session
=
create_duplex_rtpsession
(
locport
,
use_ipv6
);
stream
->
session
=
create_duplex_rtpsession
(
loc
_rtp_port
,
loc_rtcp_
port
,
use_ipv6
);
stream
->
evq
=
ortp_ev_queue_new
();
stream
->
rtpsend
=
ms_filter_new
(
MS_RTP_SEND_ID
);
stream
->
ice_check_list
=
NULL
;
...
...
tests/bench.c
View file @
a954810f
...
...
@@ -92,7 +92,7 @@ RtpSession *create_duplex_rtpsession(int locport){
rtp_session_set_blocking_mode
(
rtpr
,
0
);
rtp_session_enable_adaptive_jitter_compensation
(
rtpr
,
FALSE
);
rtp_session_set_symmetric_rtp
(
rtpr
,
TRUE
);
rtp_session_set_local_addr
(
rtpr
,
"0.0.0.0"
,
locport
);
rtp_session_set_local_addr
(
rtpr
,
"0.0.0.0"
,
locport
,
locport
+
1
);
rtp_session_signal_connect
(
rtpr
,
"timestamp_jump"
,(
RtpCallback
)
rtp_session_resync
,(
long
)
NULL
);
rtp_session_signal_connect
(
rtpr
,
"ssrc_changed"
,(
RtpCallback
)
rtp_session_resync
,(
long
)
NULL
);
return
rtpr
;
...
...
tests/mediastream.c
View file @
a954810f
...
...
@@ -593,7 +593,7 @@ void setup_media_streams(MediastreamDatas* args) {
ms_snd_card_manager_get_card
(
manager
,
args
->
capture_card
);
MSSndCard
*
play
=
args
->
playback_card
==
NULL
?
ms_snd_card_manager_get_default_playback_card
(
manager
)
:
ms_snd_card_manager_get_card
(
manager
,
args
->
playback_card
);
args
->
audio
=
audio_stream_new
(
args
->
localport
,
ms_is_ipv6
(
args
->
ip
));
args
->
audio
=
audio_stream_new
(
args
->
localport
,
args
->
localport
+
1
,
ms_is_ipv6
(
args
->
ip
));
audio_stream_enable_automatic_gain_control
(
args
->
audio
,
args
->
agc
);
audio_stream_enable_noise_gate
(
args
->
audio
,
args
->
use_ng
);
audio_stream_set_echo_canceller_params
(
args
->
audio
,
args
->
ec_len_ms
,
args
->
ec_delay_ms
,
args
->
ec_framesize
);
...
...
@@ -682,7 +682,7 @@ void setup_media_streams(MediastreamDatas* args) {
exit
(
-
1
);
}
ms_message
(
"Starting video stream.
\n
"
);
args
->
video
=
video_stream_new
(
args
->
localport
,
ms_is_ipv6
(
args
->
ip
));
args
->
video
=
video_stream_new
(
args
->
localport
,
args
->
localport
+
1
,
ms_is_ipv6
(
args
->
ip
));
#ifdef ANDROID
if
(
args
->
device_rotation
>=
0
)
video_stream_set_device_rotation
(
args
->
video
,
args
->
device_rotation
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment