Fix issue 77
This commit is contained in:
parent
fb7efc2e43
commit
5bef56ad5e
|
@ -260,4 +260,8 @@ bool MediaSessionMgr::defaultsSetScreenSize(int32_t sx, int32_t sy){
|
|||
|
||||
bool MediaSessionMgr::defaultsSetAudioGain(int32_t producer_gain, int32_t consumer_gain){
|
||||
return tmedia_defaults_set_audio_gain(producer_gain, consumer_gain) == 0;
|
||||
}
|
||||
|
||||
bool MediaSessionMgr::defaultsSetRtpPortRange(uint16_t range_start, uint16_t range_stop){
|
||||
return tmedia_defaults_set_rtp_port_range(range_start, range_stop) == 0;
|
||||
}
|
|
@ -79,6 +79,7 @@ public:
|
|||
static bool defaultsGet100relEnabled();
|
||||
static bool defaultsSetScreenSize(int32_t sx, int32_t sy);
|
||||
static bool defaultsSetAudioGain(int32_t producer_gain, int32_t consumer_gain);
|
||||
static bool defaultsSetRtpPortRange(uint16_t range_start, uint16_t range_stop);
|
||||
|
||||
|
||||
private:
|
||||
|
|
|
@ -186,6 +186,11 @@ public class MediaSessionMgr : IDisposable {
|
|||
return ret;
|
||||
}
|
||||
|
||||
public static bool defaultsSetRtpPortRange(ushort range_start, ushort range_stop) {
|
||||
bool ret = tinyWRAPPINVOKE.MediaSessionMgr_defaultsSetRtpPortRange(range_start, range_stop);
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -344,6 +344,9 @@ class tinyWRAPPINVOKE {
|
|||
[DllImport("tinyWRAP", EntryPoint="CSharp_MediaSessionMgr_defaultsSetAudioGain")]
|
||||
public static extern bool MediaSessionMgr_defaultsSetAudioGain(int jarg1, int jarg2);
|
||||
|
||||
[DllImport("tinyWRAP", EntryPoint="CSharp_MediaSessionMgr_defaultsSetRtpPortRange")]
|
||||
public static extern bool MediaSessionMgr_defaultsSetRtpPortRange(ushort jarg1, ushort jarg2);
|
||||
|
||||
[DllImport("tinyWRAP", EntryPoint="CSharp_delete_MediaContent")]
|
||||
public static extern void delete_MediaContent(HandleRef jarg1);
|
||||
|
||||
|
|
|
@ -1774,6 +1774,20 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_MediaSessionMgr_defaultsSetAudioGain(
|
|||
}
|
||||
|
||||
|
||||
SWIGEXPORT unsigned int SWIGSTDCALL CSharp_MediaSessionMgr_defaultsSetRtpPortRange(unsigned short jarg1, unsigned short jarg2) {
|
||||
unsigned int jresult ;
|
||||
uint16_t arg1 ;
|
||||
uint16_t arg2 ;
|
||||
bool result;
|
||||
|
||||
arg1 = (uint16_t)jarg1;
|
||||
arg2 = (uint16_t)jarg2;
|
||||
result = (bool)MediaSessionMgr::defaultsSetRtpPortRange(arg1,arg2);
|
||||
jresult = result;
|
||||
return jresult;
|
||||
}
|
||||
|
||||
|
||||
SWIGEXPORT void SWIGSTDCALL CSharp_delete_MediaContent(void * jarg1) {
|
||||
MediaContent *arg1 = (MediaContent *) 0 ;
|
||||
|
||||
|
|
|
@ -151,4 +151,8 @@ public class MediaSessionMgr {
|
|||
return tinyWRAPJNI.MediaSessionMgr_defaultsSetAudioGain(producer_gain, consumer_gain);
|
||||
}
|
||||
|
||||
public static boolean defaultsSetRtpPortRange(int range_start, int range_stop) {
|
||||
return tinyWRAPJNI.MediaSessionMgr_defaultsSetRtpPortRange(range_start, range_stop);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -151,4 +151,8 @@ public class MediaSessionMgr {
|
|||
return tinyWRAPJNI.MediaSessionMgr_defaultsSetAudioGain(producer_gain, consumer_gain);
|
||||
}
|
||||
|
||||
public static boolean defaultsSetRtpPortRange(int range_start, int range_stop) {
|
||||
return tinyWRAPJNI.MediaSessionMgr_defaultsSetRtpPortRange(range_start, range_stop);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -63,6 +63,7 @@ class tinyWRAPJNI {
|
|||
public final static native boolean MediaSessionMgr_defaultsGet100relEnabled();
|
||||
public final static native boolean MediaSessionMgr_defaultsSetScreenSize(int jarg1, int jarg2);
|
||||
public final static native boolean MediaSessionMgr_defaultsSetAudioGain(int jarg1, int jarg2);
|
||||
public final static native boolean MediaSessionMgr_defaultsSetRtpPortRange(int jarg1, int jarg2);
|
||||
public final static native void delete_MediaContent(long jarg1);
|
||||
public final static native String MediaContent_getType(long jarg1, MediaContent jarg1_);
|
||||
public final static native long MediaContent_getDataLength(long jarg1, MediaContent jarg1_);
|
||||
|
|
|
@ -2725,6 +2725,22 @@ SWIGEXPORT jboolean JNICALL Java_org_doubango_tinyWRAP_tinyWRAPJNI_MediaSessionM
|
|||
}
|
||||
|
||||
|
||||
SWIGEXPORT jboolean JNICALL Java_org_doubango_tinyWRAP_tinyWRAPJNI_MediaSessionMgr_1defaultsSetRtpPortRange(JNIEnv *jenv, jclass jcls, jint jarg1, jint jarg2) {
|
||||
jboolean jresult = 0 ;
|
||||
uint16_t arg1 ;
|
||||
uint16_t arg2 ;
|
||||
bool result;
|
||||
|
||||
(void)jenv;
|
||||
(void)jcls;
|
||||
arg1 = (uint16_t)jarg1;
|
||||
arg2 = (uint16_t)jarg2;
|
||||
result = (bool)MediaSessionMgr::defaultsSetRtpPortRange(arg1,arg2);
|
||||
jresult = (jboolean)result;
|
||||
return jresult;
|
||||
}
|
||||
|
||||
|
||||
SWIGEXPORT void JNICALL Java_org_doubango_tinyWRAP_tinyWRAPJNI_delete_1MediaContent(JNIEnv *jenv, jclass jcls, jlong jarg1) {
|
||||
MediaContent *arg1 = (MediaContent *) 0 ;
|
||||
|
||||
|
|
|
@ -63,6 +63,7 @@ class tinyWRAPJNI {
|
|||
public final static native boolean MediaSessionMgr_defaultsGet100relEnabled();
|
||||
public final static native boolean MediaSessionMgr_defaultsSetScreenSize(int jarg1, int jarg2);
|
||||
public final static native boolean MediaSessionMgr_defaultsSetAudioGain(int jarg1, int jarg2);
|
||||
public final static native boolean MediaSessionMgr_defaultsSetRtpPortRange(int jarg1, int jarg2);
|
||||
public final static native void delete_MediaContent(long jarg1);
|
||||
public final static native String MediaContent_getType(long jarg1, MediaContent jarg1_);
|
||||
public final static native long MediaContent_getDataLength(long jarg1, MediaContent jarg1_);
|
||||
|
|
|
@ -2725,6 +2725,22 @@ SWIGEXPORT jboolean JNICALL Java_org_doubango_tinyWRAP_tinyWRAPJNI_MediaSessionM
|
|||
}
|
||||
|
||||
|
||||
SWIGEXPORT jboolean JNICALL Java_org_doubango_tinyWRAP_tinyWRAPJNI_MediaSessionMgr_1defaultsSetRtpPortRange(JNIEnv *jenv, jclass jcls, jint jarg1, jint jarg2) {
|
||||
jboolean jresult = 0 ;
|
||||
uint16_t arg1 ;
|
||||
uint16_t arg2 ;
|
||||
bool result;
|
||||
|
||||
(void)jenv;
|
||||
(void)jcls;
|
||||
arg1 = (uint16_t)jarg1;
|
||||
arg2 = (uint16_t)jarg2;
|
||||
result = (bool)MediaSessionMgr::defaultsSetRtpPortRange(arg1,arg2);
|
||||
jresult = (jboolean)result;
|
||||
return jresult;
|
||||
}
|
||||
|
||||
|
||||
SWIGEXPORT void JNICALL Java_org_doubango_tinyWRAP_tinyWRAPJNI_delete_1MediaContent(JNIEnv *jenv, jclass jcls, jlong jarg1) {
|
||||
MediaContent *arg1 = (MediaContent *) 0 ;
|
||||
|
||||
|
|
|
@ -220,6 +220,7 @@ sub DESTROY {
|
|||
*defaultsGet100relEnabled = *tinyWRAPc::MediaSessionMgr_defaultsGet100relEnabled;
|
||||
*defaultsSetScreenSize = *tinyWRAPc::MediaSessionMgr_defaultsSetScreenSize;
|
||||
*defaultsSetAudioGain = *tinyWRAPc::MediaSessionMgr_defaultsSetAudioGain;
|
||||
*defaultsSetRtpPortRange = *tinyWRAPc::MediaSessionMgr_defaultsSetRtpPortRange;
|
||||
sub DISOWN {
|
||||
my $self = shift;
|
||||
my $ptr = tied(%$self);
|
||||
|
|
|
@ -2082,6 +2082,22 @@ SWIG_From_float SWIG_PERL_DECL_ARGS_1(float value)
|
|||
}
|
||||
|
||||
|
||||
SWIGINTERN int
|
||||
SWIG_AsVal_unsigned_SS_short SWIG_PERL_DECL_ARGS_2(SV * obj, unsigned short *val)
|
||||
{
|
||||
unsigned long v;
|
||||
int res = SWIG_AsVal_unsigned_SS_long SWIG_PERL_CALL_ARGS_2(obj, &v);
|
||||
if (SWIG_IsOK(res)) {
|
||||
if ((v > USHRT_MAX)) {
|
||||
return SWIG_OverflowError;
|
||||
} else {
|
||||
if (val) *val = static_cast< unsigned short >(v);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
SWIGINTERNINLINE SV *
|
||||
SWIG_FromCharPtrAndSize(const char* carray, size_t size)
|
||||
{
|
||||
|
@ -2205,22 +2221,6 @@ SWIG_AsVal_unsigned_SS_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, unsigned long
|
|||
}
|
||||
|
||||
|
||||
SWIGINTERN int
|
||||
SWIG_AsVal_unsigned_SS_short SWIG_PERL_DECL_ARGS_2(SV * obj, unsigned short *val)
|
||||
{
|
||||
unsigned long v;
|
||||
int res = SWIG_AsVal_unsigned_SS_long SWIG_PERL_CALL_ARGS_2(obj, &v);
|
||||
if (SWIG_IsOK(res)) {
|
||||
if ((v > USHRT_MAX)) {
|
||||
return SWIG_OverflowError;
|
||||
} else {
|
||||
if (val) *val = static_cast< unsigned short >(v);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
#include "Xcap.h"
|
||||
|
||||
|
||||
|
@ -3919,6 +3919,44 @@ XS(_wrap_MediaSessionMgr_defaultsSetAudioGain) {
|
|||
}
|
||||
|
||||
|
||||
XS(_wrap_MediaSessionMgr_defaultsSetRtpPortRange) {
|
||||
{
|
||||
uint16_t arg1 ;
|
||||
uint16_t arg2 ;
|
||||
unsigned short val1 ;
|
||||
int ecode1 = 0 ;
|
||||
unsigned short val2 ;
|
||||
int ecode2 = 0 ;
|
||||
int argvi = 0;
|
||||
bool result;
|
||||
dXSARGS;
|
||||
|
||||
if ((items < 2) || (items > 2)) {
|
||||
SWIG_croak("Usage: MediaSessionMgr_defaultsSetRtpPortRange(range_start,range_stop);");
|
||||
}
|
||||
ecode1 = SWIG_AsVal_unsigned_SS_short SWIG_PERL_CALL_ARGS_2(ST(0), &val1);
|
||||
if (!SWIG_IsOK(ecode1)) {
|
||||
SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "MediaSessionMgr_defaultsSetRtpPortRange" "', argument " "1"" of type '" "uint16_t""'");
|
||||
}
|
||||
arg1 = static_cast< uint16_t >(val1);
|
||||
ecode2 = SWIG_AsVal_unsigned_SS_short SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
|
||||
if (!SWIG_IsOK(ecode2)) {
|
||||
SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "MediaSessionMgr_defaultsSetRtpPortRange" "', argument " "2"" of type '" "uint16_t""'");
|
||||
}
|
||||
arg2 = static_cast< uint16_t >(val2);
|
||||
result = (bool)MediaSessionMgr::defaultsSetRtpPortRange(arg1,arg2);
|
||||
ST(argvi) = SWIG_From_bool SWIG_PERL_CALL_ARGS_1(static_cast< bool >(result)); argvi++ ;
|
||||
|
||||
|
||||
XSRETURN(argvi);
|
||||
fail:
|
||||
|
||||
|
||||
SWIG_croak_null();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
XS(_wrap_delete_MediaContent) {
|
||||
{
|
||||
MediaContent *arg1 = (MediaContent *) 0 ;
|
||||
|
@ -21577,6 +21615,7 @@ static swig_command_info swig_commands[] = {
|
|||
{"tinyWRAPc::MediaSessionMgr_defaultsGet100relEnabled", _wrap_MediaSessionMgr_defaultsGet100relEnabled},
|
||||
{"tinyWRAPc::MediaSessionMgr_defaultsSetScreenSize", _wrap_MediaSessionMgr_defaultsSetScreenSize},
|
||||
{"tinyWRAPc::MediaSessionMgr_defaultsSetAudioGain", _wrap_MediaSessionMgr_defaultsSetAudioGain},
|
||||
{"tinyWRAPc::MediaSessionMgr_defaultsSetRtpPortRange", _wrap_MediaSessionMgr_defaultsSetRtpPortRange},
|
||||
{"tinyWRAPc::delete_MediaContent", _wrap_delete_MediaContent},
|
||||
{"tinyWRAPc::MediaContent_getType", _wrap_MediaContent_getType},
|
||||
{"tinyWRAPc::MediaContent_getDataLength", _wrap_MediaContent_getDataLength},
|
||||
|
|
|
@ -196,6 +196,8 @@ class MediaSessionMgr(_object):
|
|||
if _newclass:defaultsSetScreenSize = staticmethod(_tinyWRAP.MediaSessionMgr_defaultsSetScreenSize)
|
||||
__swig_getmethods__["defaultsSetAudioGain"] = lambda x: _tinyWRAP.MediaSessionMgr_defaultsSetAudioGain
|
||||
if _newclass:defaultsSetAudioGain = staticmethod(_tinyWRAP.MediaSessionMgr_defaultsSetAudioGain)
|
||||
__swig_getmethods__["defaultsSetRtpPortRange"] = lambda x: _tinyWRAP.MediaSessionMgr_defaultsSetRtpPortRange
|
||||
if _newclass:defaultsSetRtpPortRange = staticmethod(_tinyWRAP.MediaSessionMgr_defaultsSetRtpPortRange)
|
||||
MediaSessionMgr_swigregister = _tinyWRAP.MediaSessionMgr_swigregister
|
||||
MediaSessionMgr_swigregister(MediaSessionMgr)
|
||||
|
||||
|
@ -283,6 +285,10 @@ def MediaSessionMgr_defaultsSetAudioGain(*args):
|
|||
return _tinyWRAP.MediaSessionMgr_defaultsSetAudioGain(*args)
|
||||
MediaSessionMgr_defaultsSetAudioGain = _tinyWRAP.MediaSessionMgr_defaultsSetAudioGain
|
||||
|
||||
def MediaSessionMgr_defaultsSetRtpPortRange(*args):
|
||||
return _tinyWRAP.MediaSessionMgr_defaultsSetRtpPortRange(*args)
|
||||
MediaSessionMgr_defaultsSetRtpPortRange = _tinyWRAP.MediaSessionMgr_defaultsSetRtpPortRange
|
||||
|
||||
class MediaContent(_object):
|
||||
__swig_setmethods__ = {}
|
||||
__setattr__ = lambda self, name, value: _swig_setattr(self, MediaContent, name, value)
|
||||
|
|
|
@ -3774,6 +3774,22 @@ SWIG_From_float (float value)
|
|||
}
|
||||
|
||||
|
||||
SWIGINTERN int
|
||||
SWIG_AsVal_unsigned_SS_short (PyObject * obj, unsigned short *val)
|
||||
{
|
||||
unsigned long v;
|
||||
int res = SWIG_AsVal_unsigned_SS_long (obj, &v);
|
||||
if (SWIG_IsOK(res)) {
|
||||
if ((v > USHRT_MAX)) {
|
||||
return SWIG_OverflowError;
|
||||
} else {
|
||||
if (val) *val = static_cast< unsigned short >(v);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
SWIGINTERNINLINE PyObject *
|
||||
SWIG_From_unsigned_SS_short (unsigned short value)
|
||||
{
|
||||
|
@ -3867,22 +3883,6 @@ SWIG_AsVal_unsigned_SS_long_SS_long (PyObject *obj, unsigned long long *val)
|
|||
}
|
||||
|
||||
|
||||
SWIGINTERN int
|
||||
SWIG_AsVal_unsigned_SS_short (PyObject * obj, unsigned short *val)
|
||||
{
|
||||
unsigned long v;
|
||||
int res = SWIG_AsVal_unsigned_SS_long (obj, &v);
|
||||
if (SWIG_IsOK(res)) {
|
||||
if ((v > USHRT_MAX)) {
|
||||
return SWIG_OverflowError;
|
||||
} else {
|
||||
if (val) *val = static_cast< unsigned short >(v);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
#include "Xcap.h"
|
||||
|
||||
|
||||
|
@ -6519,6 +6519,37 @@ fail:
|
|||
}
|
||||
|
||||
|
||||
SWIGINTERN PyObject *_wrap_MediaSessionMgr_defaultsSetRtpPortRange(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
|
||||
PyObject *resultobj = 0;
|
||||
uint16_t arg1 ;
|
||||
uint16_t arg2 ;
|
||||
unsigned short val1 ;
|
||||
int ecode1 = 0 ;
|
||||
unsigned short val2 ;
|
||||
int ecode2 = 0 ;
|
||||
PyObject * obj0 = 0 ;
|
||||
PyObject * obj1 = 0 ;
|
||||
bool result;
|
||||
|
||||
if (!PyArg_ParseTuple(args,(char *)"OO:MediaSessionMgr_defaultsSetRtpPortRange",&obj0,&obj1)) SWIG_fail;
|
||||
ecode1 = SWIG_AsVal_unsigned_SS_short(obj0, &val1);
|
||||
if (!SWIG_IsOK(ecode1)) {
|
||||
SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "MediaSessionMgr_defaultsSetRtpPortRange" "', argument " "1"" of type '" "uint16_t""'");
|
||||
}
|
||||
arg1 = static_cast< uint16_t >(val1);
|
||||
ecode2 = SWIG_AsVal_unsigned_SS_short(obj1, &val2);
|
||||
if (!SWIG_IsOK(ecode2)) {
|
||||
SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "MediaSessionMgr_defaultsSetRtpPortRange" "', argument " "2"" of type '" "uint16_t""'");
|
||||
}
|
||||
arg2 = static_cast< uint16_t >(val2);
|
||||
result = (bool)MediaSessionMgr::defaultsSetRtpPortRange(arg1,arg2);
|
||||
resultobj = SWIG_From_bool(static_cast< bool >(result));
|
||||
return resultobj;
|
||||
fail:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
SWIGINTERN PyObject *MediaSessionMgr_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
|
||||
PyObject *obj;
|
||||
if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
|
||||
|
@ -21013,6 +21044,7 @@ static PyMethodDef SwigMethods[] = {
|
|||
{ (char *)"MediaSessionMgr_defaultsGet100relEnabled", _wrap_MediaSessionMgr_defaultsGet100relEnabled, METH_VARARGS, NULL},
|
||||
{ (char *)"MediaSessionMgr_defaultsSetScreenSize", _wrap_MediaSessionMgr_defaultsSetScreenSize, METH_VARARGS, NULL},
|
||||
{ (char *)"MediaSessionMgr_defaultsSetAudioGain", _wrap_MediaSessionMgr_defaultsSetAudioGain, METH_VARARGS, NULL},
|
||||
{ (char *)"MediaSessionMgr_defaultsSetRtpPortRange", _wrap_MediaSessionMgr_defaultsSetRtpPortRange, METH_VARARGS, NULL},
|
||||
{ (char *)"MediaSessionMgr_swigregister", MediaSessionMgr_swigregister, METH_VARARGS, NULL},
|
||||
{ (char *)"delete_MediaContent", _wrap_delete_MediaContent, METH_VARARGS, NULL},
|
||||
{ (char *)"MediaContent_getType", _wrap_MediaContent_getType, METH_VARARGS, NULL},
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include "tinymedia/tmedia_denoise.h"
|
||||
#include "tinymedia/tmedia_consumer.h"
|
||||
#include "tinymedia/tmedia_producer.h"
|
||||
#include "tinymedia/tmedia_defaults.h"
|
||||
|
||||
#include "tinyrtp/trtp_manager.h"
|
||||
#include "tinyrtp/rtp/trtp_rtp_packet.h"
|
||||
|
@ -296,6 +297,7 @@ int tdav_session_audio_prepare(tmedia_session_t* self)
|
|||
if((audio->rtp_manager = trtp_manager_create(audio->rtcp_enabled, audio->local_ip, audio->useIPv6))){
|
||||
|
||||
ret = trtp_manager_set_rtp_callback(audio->rtp_manager, tdav_session_audio_rtp_cb, audio);
|
||||
ret = trtp_manager_set_port_range(audio->rtp_manager, tmedia_defaults_get_rtp_port_range_start(), tmedia_defaults_get_rtp_port_range_stop());
|
||||
ret = trtp_manager_prepare(audio->rtp_manager);
|
||||
if(audio->natt_ctx){
|
||||
ret = trtp_manager_set_natt_ctx(audio->rtp_manager, audio->natt_ctx);
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
#include "tinymedia/tmedia_consumer.h"
|
||||
#include "tinymedia/tmedia_producer.h"
|
||||
#include "tinymedia/tmedia_defaults.h"
|
||||
|
||||
#include "tinyrtp/trtp_manager.h"
|
||||
#include "tinyrtp/rtp/trtp_rtp_packet.h"
|
||||
|
@ -349,6 +350,7 @@ int tdav_session_video_prepare(tmedia_session_t* self)
|
|||
if((video->rtp_manager = trtp_manager_create(video->rtcp_enabled, video->local_ip, video->useIPv6))){
|
||||
|
||||
ret = trtp_manager_set_rtp_callback(video->rtp_manager, tdav_session_video_rtp_cb, video);
|
||||
ret = trtp_manager_set_port_range(video->rtp_manager, tmedia_defaults_get_rtp_port_range_start(), tmedia_defaults_get_rtp_port_range_stop());
|
||||
ret = trtp_manager_prepare(video->rtp_manager);
|
||||
if(video->natt_ctx){
|
||||
ret = trtp_manager_set_natt_ctx(video->rtp_manager, video->natt_ctx);
|
||||
|
|
|
@ -61,6 +61,9 @@ TINYMEDIA_API int32_t tmedia_defaults_get_screen_y();
|
|||
TINYMEDIA_API int tmedia_defaults_set_audio_gain(int32_t audio_producer_gain, int32_t audio_consumer_gain);
|
||||
TINYMEDIA_API int32_t tmedia_defaults_get_audio_producer_gain();
|
||||
TINYMEDIA_API int32_t tmedia_defaults_get_audio_consumer_gain();
|
||||
TINYMEDIA_API uint16_t tmedia_defaults_get_rtp_port_range_start();
|
||||
TINYMEDIA_API uint16_t tmedia_defaults_get_rtp_port_range_stop();
|
||||
TINYMEDIA_API int tmedia_defaults_set_rtp_port_range(uint16_t start, uint16_t stop);
|
||||
|
||||
|
||||
TMEDIA_END_DECLS
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
*/
|
||||
#include "tinymedia/tmedia_defaults.h"
|
||||
|
||||
#include "tsk_debug.h"
|
||||
|
||||
//
|
||||
// Codecs: Bandwidth
|
||||
|
@ -57,6 +58,8 @@ static int32_t __sx = -1;
|
|||
static int32_t __sy = -1;
|
||||
static int32_t __audio_producer_gain = 0;
|
||||
static int32_t __audio_consumer_gain = 0;
|
||||
static uint16_t __rtp_port_range_start = 1024;
|
||||
static uint16_t __rtp_port_range_stop = 65535;
|
||||
|
||||
int tmedia_defaults_set_echo_tail(uint32_t echo_tail)
|
||||
{
|
||||
|
@ -182,3 +185,20 @@ int32_t tmedia_defaults_get_audio_consumer_gain(){
|
|||
return __audio_consumer_gain;
|
||||
}
|
||||
|
||||
uint16_t tmedia_defaults_get_rtp_port_range_start(){
|
||||
return __rtp_port_range_start;
|
||||
}
|
||||
|
||||
uint16_t tmedia_defaults_get_rtp_port_range_stop(){
|
||||
return __rtp_port_range_stop;
|
||||
}
|
||||
|
||||
int tmedia_defaults_set_rtp_port_range(uint16_t start, uint16_t stop){
|
||||
if(start < 1024 || stop < 1024 || start >= stop){
|
||||
TSK_DEBUG_ERROR("Invalid parameter: (%u < 1024 || %u < 1024 || %u >= %u)", start, stop, start, stop);
|
||||
return -1;
|
||||
}
|
||||
__rtp_port_range_start = start;
|
||||
__rtp_port_range_stop = stop;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -83,11 +83,15 @@ typedef struct trtp_manager_s
|
|||
tsk_bool_t enable_rtcp;
|
||||
tsk_bool_t socket_disabled;
|
||||
tnet_transport_t* transport;
|
||||
struct{
|
||||
uint16_t start;
|
||||
uint16_t stop;
|
||||
} port_range;
|
||||
}
|
||||
trtp_manager_t;
|
||||
|
||||
TINYRTP_API trtp_manager_t* trtp_manager_create(tsk_bool_t enable_rtcp, const char* local_ip, tsk_bool_t ipv6);
|
||||
TINYRTP_API int trtp_manager_prepare(trtp_manager_t*self);
|
||||
TINYRTP_API int trtp_manager_prepare(trtp_manager_t* self);
|
||||
TINYRTP_API tsk_bool_t trtp_manager_is_prepared(trtp_manager_t* self);
|
||||
TINYRTP_API int trtp_manager_set_natt_ctx(trtp_manager_t* self, tnet_nat_context_handle_t* natt_ctx);
|
||||
TINYRTP_API int trtp_manager_set_rtp_callback(trtp_manager_t* self, trtp_manager_rtp_cb_f callback, const void* callback_data);
|
||||
|
@ -95,6 +99,7 @@ TINYRTP_API int trtp_manager_set_payload_type(trtp_manager_t* self, uint8_t payl
|
|||
TINYRTP_API int trtp_manager_set_rtp_remote(trtp_manager_t* self, const char* remote_ip, tnet_port_t remote_port);
|
||||
TINYRTP_API int trtp_manager_set_rtp_remote(trtp_manager_t* self, const char* remote_ip, tnet_port_t remote_port);
|
||||
TINYRTP_API int trtp_manager_set_rtcp_remote(trtp_manager_t* self, const char* remote_ip, tnet_port_t remote_port);
|
||||
TINYRTP_API int trtp_manager_set_port_range(trtp_manager_t* self, uint16_t start, uint16_t stop);
|
||||
TINYRTP_API int trtp_manager_start(trtp_manager_t* self);
|
||||
TINYRTP_API int trtp_manager_send_rtp(trtp_manager_t* self, const void* data, tsk_size_t size, uint32_t duration, tsk_bool_t marker, tsk_bool_t last_packet);
|
||||
TINYRTP_API int trtp_manager_send_rtp_2(trtp_manager_t* self, const struct trtp_rtp_packet_s* packet);
|
||||
|
|
|
@ -38,6 +38,13 @@
|
|||
#define BIG_RCVBUF (64 * 1024)
|
||||
#define BIG_SNDBUF (64 * 1024)
|
||||
|
||||
#if !defined(TRTP_PORT_RANGE_START)
|
||||
# define TRTP_PORT_RANGE_START 1024
|
||||
#endif
|
||||
#if !defined(TRTP_PORT_RANGE_STOP)
|
||||
# define TRTP_PORT_RANGE_STOP 65535
|
||||
#endif
|
||||
|
||||
// TODO: Add support for outbound DTMF (http://www.ietf.org/rfc/rfc2833.txt)
|
||||
|
||||
/* ======================= Transport callback ========================== */
|
||||
|
@ -158,7 +165,7 @@ int trtp_manager_prepare(trtp_manager_t* self)
|
|||
#if 0
|
||||
tnet_port_t local_port = 6060;
|
||||
#else
|
||||
tnet_port_t local_port = ((rand() % 64510) + 1025);
|
||||
tnet_port_t local_port = ((rand() % (self->port_range.stop - self->port_range.start)) + self->port_range.start);
|
||||
#endif
|
||||
local_port = (local_port & 0xFFFE); /* turn to even number */
|
||||
|
||||
|
@ -295,6 +302,17 @@ int trtp_manager_set_rtcp_remote(trtp_manager_t* self, const char* remote_ip, tn
|
|||
return 0;
|
||||
}
|
||||
|
||||
int trtp_manager_set_port_range(trtp_manager_t* self, uint16_t start, uint16_t stop)
|
||||
{
|
||||
if(!self){
|
||||
TSK_DEBUG_ERROR("Invalid parameter");
|
||||
return -1;
|
||||
}
|
||||
self->port_range.start = start;
|
||||
self->port_range.stop = stop;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/** Starts the RTP/RTCP manager */
|
||||
int trtp_manager_start(trtp_manager_t* self)
|
||||
{
|
||||
|
@ -499,6 +517,9 @@ static tsk_object_t* trtp_manager_ctor(tsk_object_t * self, va_list * app)
|
|||
{
|
||||
trtp_manager_t *manager = self;
|
||||
if(manager){
|
||||
manager->port_range.start = TRTP_PORT_RANGE_START;
|
||||
manager->port_range.stop = TRTP_PORT_RANGE_STOP;
|
||||
|
||||
/* rtp */
|
||||
manager->rtp.timestamp = rand()^rand();
|
||||
manager->rtp.seq_num = rand()^rand();
|
||||
|
|
Loading…
Reference in New Issue