Merge branch 'v1.8' into v1.8-release

This commit is contained in:
Mike Jerris
2018-08-31 19:53:43 +00:00
132 changed files with 3073 additions and 6191 deletions
+1 -1
View File
@@ -1 +1 @@
1.8.0
1.8.1
+16 -22
View File
@@ -1,26 +1,20 @@
.=======================================================================================================.
| ____ _ ____ |
| / ___| |_ _ ___ / ___|___ _ __ |
| | | | | | | |/ _ \ | / _ \| '_ \ |
| | |___| | |_| | __/ |__| (_) | | | | |
| \____|_|\__,_|\___|\____\___/|_| |_| |
| _ _ ____ _ ____ |
| / \ _ __ _ __ _ _ __ _| | / ___| |_ _ ___ / ___|___ _ __ |
| / _ \ | '_ \| '_ \| | | |/ _` | | | | | | | | |/ _ \ | / _ \| '_ \ |
| / ___ \| | | | | | | |_| | (_| | | | |___| | |_| | __/ |__| (_) | | | | |
| /_/ \_\_| |_|_| |_|\__,_|\__,_|_| \____|_|\__,_|\___|\____\___/|_| |_| |
| |
| _____ _ _ ____ __ |
| |_ _|__| | ___ _ __ | |__ ___ _ __ _ _ / ___|___ _ __ / _| ___ _ __ ___ _ __ ___ ___ |
| | |/ _ \ |/ _ \ '_ \| '_ \ / _ \| '_ \| | | | | | / _ \| '_ \| |_ / _ \ '__/ _ \ '_ \ / __/ _ \ |
| | | __/ | __/ |_) | | | | (_) | | | | |_| | | |__| (_) | | | | _| __/ | | __/ | | | (_| __/ |
| |_|\___|_|\___| .__/|_| |_|\___/|_| |_|\__, | \____\___/|_| |_|_| \___|_| \___|_| |_|\___\___| |
| |_| |___/ |
| _____ _ _ |
| | ____|_ _____ _ __ _ _ / \ _ _ __ _ _ _ ___| |_ |
| | _| \ \ / / _ \ '__| | | | / _ \| | | |/ _` | | | / __| __| |
| | |___ \ V / __/ | | |_| | / ___ \ |_| | (_| | |_| \__ \ |_ |
| |_____| \_/ \___|_| \__, | /_/ \_\__,_|\__, |\__,_|___/\__| |
| |___/ |___/ |
| ____ _ ____ |
| __ ____ ____ __ / ___| |_ _ ___ / ___|___ _ __ ___ ___ _ __ ___ |
| \ \ /\ / /\ \ /\ / /\ \ /\ / / | | | | | | |/ _ \ | / _ \| '_ \ / __/ _ \| '_ ` _ \ |
| \ V V / \ V V / \ V V / _ | |___| | |_| | __/ |__| (_) | | | | _ | (_| (_) | | | | | | |
| \_/\_/ \_/\_/ \_/\_/ (_) \____|_|\__,_|\___|\____\___/|_| |_| (_) \___\___/|_| |_| |_| |
| ____ _____ ____ ____ __ |
| | _ \_ _/ ___| / ___|___ _ __ / _| ___ _ __ ___ _ __ ___ ___ |
| | |_) || || | | | / _ \| '_ \| |_ / _ \ '__/ _ \ '_ \ / __/ _ \ |
| | _ < | || |___ | |__| (_) | | | | _| __/ | | __/ | | | (_| __/ |
| |_| \_\|_| \____| \____\___/|_| |_|_| \___|_| \___|_| |_|\___\___| |
| |
| ____ _ ____ |
| / ___| |_ _ ___ / ___|___ _ __ ___ ___ _ __ ___ |
| | | | | | | |/ _ \ | / _ \| '_ \ / __/ _ \| '_ ` _ \ |
| | |___| | |_| | __/ |__| (_) | | | | _ | (_| (_) | | | | | | |
| \____|_|\__,_|\___|\____\___/|_| |_| (_) \___\___/|_| |_| |_| |
| |
.=======================================================================================================.
+16 -25
View File
@@ -1,29 +1,20 @@

.=======================================================================================================.
| ____ _ ____ |
| / ___| |_ _ ___ / ___|___ _ __ |
| | | | | | | |/ _ \ | / _ \| '_ \ |
| | |___| | |_| | __/ |__| (_) | | | | |
| \____|_|\__,_|\___|\____\___/|_| |_| |
| _ _ ____ _ ____ |
| / \ _ __ _ __ _ _ __ _| | / ___| |_ _ ___ / ___|___ _ __ |
| / _ \ | '_ \| '_ \| | | |/ _` | | | | | | | | |/ _ \ | / _ \| '_ \ |
| / ___ \| | | | | | | |_| | (_| | | | |___| | |_| | __/ |__| (_) | | | | |
| /_/ \_\_| |_|_| |_|\__,_|\__,_|_| \____|_|\__,_|\___|\____\___/|_| |_| |
| |
| _____ _ _ ____ __ |
| |_ _|__| | ___ _ __ | |__ ___ _ __ _ _ / ___|___ _ __ / _| ___ _ __ ___ _ __ ___ ___ |
| | |/ _ \ |/ _ \ '_ \| '_ \ / _ \| '_ \| | | | | | / _ \| '_ \| |_ / _ \ '__/ _ \ '_ \ / __/ _ \ |
| | | __/ | __/ |_) | | | | (_) | | | | |_| | | |__| (_) | | | | _| __/ | | __/ | | | (_| __/ |
| |_|\___|_|\___| .__/|_| |_|\___/|_| |_|\__, | \____\___/|_| |_|_| \___|_| \___|_| |_|\___\___| |
| |_| |___/ |
| _____ _ _ |
| | ____|_ _____ _ __ _ _ / \ _ _ __ _ _ _ ___| |_ |
| | _| \ \ / / _ \ '__| | | | / _ \| | | |/ _` | | | / __| __| |
| | |___ \ V / __/ | | |_| | / ___ \ |_| | (_| | |_| \__ \ |_ |
| |_____| \_/ \___|_| \__, | /_/ \_\__,_|\__, |\__,_|___/\__| |
| |___/ |___/ |
| ____ _ ____ |
| __ ____ ____ __ / ___| |_ _ ___ / ___|___ _ __ ___ ___ _ __ ___ |
| \ \ /\ / /\ \ /\ / /\ \ /\ / / | | | | | | |/ _ \ | / _ \| '_ \ / __/ _ \| '_ ` _ \ |
| \ V V / \ V V / \ V V / _ | |___| | |_| | __/ |__| (_) | | | | _ | (_| (_) | | | | | | |
| \_/\_/ \_/\_/ \_/\_/ (_) \____|_|\__,_|\___|\____\___/|_| |_| (_) \___\___/|_| |_| |_| |
| ____ _____ ____ ____ __ |
| | _ \_ _/ ___| / ___|___ _ __ / _| ___ _ __ ___ _ __ ___ ___ |
| | |_) || || | | | / _ \| '_ \| |_ / _ \ '__/ _ \ '_ \ / __/ _ \ |
| | _ < | || |___ | |__| (_) | | | | _| __/ | | __/ | | | (_| __/ |
| |_| \_\|_| \____| \____\___/|_| |_|_| \___|_| \___|_| |_|\___\___| |
| |
| ____ _ ____ |
| / ___| |_ _ ___ / ___|___ _ __ ___ ___ _ __ ___ |
| | | | | | | |/ _ \ | / _ \| '_ \ / __/ _ \| '_ ` _ \ |
| | |___| | |_| | __/ |__| (_) | | | | _ | (_| (_) | | | | | | |
| \____|_|\__,_|\___|\____\___/|_| |_| (_) \___\___/|_| |_| |_| |
| |
.=======================================================================================================.

+125
View File
@@ -0,0 +1,125 @@
<configuration name="vpx.conf" description="VPX Config">
<settings>
<!-- max bitrate the system support, truncate if over limit -->
<!-- <param name="max-bitrate" value="5mb"/> -->
<!-- <param name="rtp-slice-size" value="1200"/> -->
<!-- minimum time to generate a new key frame in ms /> -->
<!-- <param name="key-frame-min-freq" value="250"/> -->
<!-- integer of cpus, or 'auto', or 'cpu/<divisor>/<max> -->
<param name="dec-threads" value="cpu/2/4"/>
<param name="enc-threads" value="1"/>
<param name="vp8-profile" value="vp8"/>
<param name="vp9-profile" value="vp9"/>
<param name="vp10-profile" value="vp10"/>
</settings>
<profiles>
<profile name="vp8">
<!-- <param name="dec-threads" value="cpu/2/4"/> -->
<!-- <param name="enc-threads" value="1"/> -->
<param name="g-profile" value="2"/>
<param name="g-timebase" value="1/90000"/>
<!-- DEFULT | PARTITIONS -->
<param name="g-error-resilient" value="PARTITIONS"/>
<!-- ONE_PASS, FIRST_PASS, LAST_PASS"/> -->
<!-- <param name="g-pass" value="ONE_PASS"/> -->
<!-- <param name="g-lag-in-frames" value="0"/> -->
<param name="rc-dropframe-thresh" value="0"/>
<param name="rc-resize-allowed" value="1"/>
<!-- <param name="rc-scaled-width" value="0"/> -->
<!-- <param name="rc-scaled-height" value="0"/> -->
<!-- <param name="rc-resize-up-thresh" value="0"/> -->
<!-- <param name="rc-resize-down-thresh" value="0"/> -->
<!-- VBR, CBR, CQ, Q -->
<param name="rc-end-usage" value="CBR"/>
<!-- bps -->
<param name="rc-target-bitrate" value="1mb"/>
<param name="rc-min-quantizer" value="0"/>
<param name="rc-max-quantizer" value="63"/>
<param name="rc-undershoot-pct" value="100"/>
<param name="rc-overshoot-pct" value="50"/>
<param name="rc-buf-sz" value="5000"/>
<param name="rc-buf-initial-sz" value="1000"/>
<param name="rc-buf-optimal-sz" value="1000"/>
<!-- <param name="rc-2pass-vbr-bias-pct" value="0"/> -->
<!-- <param name="rc-2pass-vbr-minsection-pct" value="0"/> -->
<!-- <param name="rc-2pass-vbr-maxsection-pct" value="0"/> -->
<!-- AUTO, DISABLED -->
<param name="kf-mode" value="AUTO"/>
<param name="kf-min-dist" value="0"/>
<param name="kf-max-dist" value="360"/>
<!-- <param name="ss-number-layers" value="0"/> -->
<!-- <param name="ts-number-layers" value="0"/> -->
<!-- <param name="ts-periodicity" value="0"/> -->
<!-- <param name="temporal-layering-mode" value="0"/> -->
<!-- params SET by codec_control -->
<param name="lossless" value="0"/>
<!-- cpuused -8..8 -->
<param name="cpuused" value="-6"/>
<!-- cpu string or integer -->
<param name="token-parts" value="cpu/2/3"/>
<param name="static-thresh" value="100"/>
<param name="noise-sensitivity" value="1"/>
<!-- <param name="max-intra-bitrate-pct" value="0"/> -->
</profile>
<profile name="vp9">
<!-- <param name="dec-threads" value="cpu/2/4"/> -->
<!-- <param name="enc-threads" value="1"/> -->
<param name="g-profile" value="2"/>
<param name="g-timebase" value="1/90000"/>
<!-- DEFULT | PARTITIONS -->
<param name="g-error-resilient" value="PARTITIONS"/>
<!-- ONE_PASS, FIRST_PASS, LAST_PASS"/> -->
<!-- <param name="g-pass" value="ONE_PASS"/> -->
<!-- <param name="g-lag-in-frames" value="0"/> -->
<param name="rc-dropframe-thresh" value="0"/>
<param name="rc-resize-allowed" value="1"/>
<!-- <param name="rc-scaled-width" value="0"/> -->
<!-- <param name="rc-scaled-height" value="0"/> -->
<!-- <param name="rc-resize-up-thresh" value="0"/> -->
<!-- <param name="rc-resize-down-thresh" value="0"/> -->
<!-- VBR, CBR, CQ, Q -->
<param name="rc-end-usage" value="CBR"/>
<!-- bps -->
<!-- <param name="rc-target-bitrate" value="1mb"/> -->
<!-- <param name="rc-min-quantizer" value="0"/> -->
<!-- <param name="rc-max-quantizer" value="63"/> -->
<!-- <param name="rc-undershoot-pct" value="100"/> -->
<!-- <param name="rc-overshoot-pct" value="50"/> -->
<!-- <param name="rc-buf-sz" value="5000"/> -->
<!-- <param name="rc-buf-initial-sz" value="1000"/> -->
<!-- <param name="rc-buf-optimal-sz" value="1000"/> -->
<!-- <param name="rc-2pass-vbr-bias-pct" value="0"/> -->
<!-- <param name="rc-2pass-vbr-minsection-pct" value="0"/> -->
<!-- <param name="rc-2pass-vbr-maxsection-pct" value="0"/> -->
<!-- AUTO, DISABLED -->
<param name="kf-mode" value="AUTO"/>
<param name="kf-min-dist" value="0"/>
<param name="kf-max-dist" value="360"/>
<!-- <param name="ss-number-layers" value="0"/> -->
<!-- <param name="ts-number-layers" value="0"/> -->
<!-- <param name="ts-periodicity" value="0"/> -->
<!-- <param name="temporal-layering-mode" value="0"/> -->
<!-- params SET by codec_control -->
<param name="lossless" value="0"/>
<!-- cpuused -8..8 -->
<param name="cpuused" value="-8"/>
<!-- cpu string or integer -->
<param name="token-parts" value="3"/>
<param name="static-threash" value="1000"/>
<param name="noise-sensitivity" value="0"/>
<param name="vp9e-tune-content" value="SCREEN"/>
</profile>
<profile name="vp10">
</profile>
</profiles>
</configuration>
+2 -2
View File
@@ -3,10 +3,10 @@
# Must change all of the below together
# For a release, set revision for that tagged release as well and uncomment
AC_INIT([freeswitch], [1.8.0], bugs@freeswitch.org)
AC_INIT([freeswitch], [1.8.1], bugs@freeswitch.org)
AC_SUBST(SWITCH_VERSION_MAJOR, [1])
AC_SUBST(SWITCH_VERSION_MINOR, [8])
AC_SUBST(SWITCH_VERSION_MICRO, [0])
AC_SUBST(SWITCH_VERSION_MICRO, [1])
AC_SUBST(SWITCH_VERSION_REVISION, [])
AC_SUBST(SWITCH_VERSION_REVISION_HUMAN, [])
+1
View File
@@ -56,6 +56,7 @@ avoid_mods=(
endpoints/mod_skypopen
endpoints/mod_unicall
event_handlers/mod_smpp
event_handlers/mod_cdr_pg_csv
formats/mod_webm
sdk/autotools
xml_int/mod_xml_ldap
+1 -1
View File
@@ -507,7 +507,7 @@ Build-Depends: erlang-dev
Module: event_handlers/mod_event_multicast
Description: mod_event_multicast
Adds mod_event_multicast.
Build-Depends: libssl-dev
Build-Depends: libssl1.0-dev | libssl-dev
Module: event_handlers/mod_event_socket
Description: mod_event_socket
+1
View File
@@ -0,0 +1 @@
usr/share/freeswitch/fonts
+2
View File
@@ -1 +1,3 @@
/usr/bin
fonts/FreeMono.ttf /usr/share/freeswitch/fonts/
fonts/FreeSans.ttf /usr/share/freeswitch/fonts/
-1
View File
@@ -75,7 +75,6 @@ override_dh_auto_clean:
--prefix=/usr --localstatedir=/var --sysconfdir=/etc \
--with-gnu-ld --with-python --with-erlang --with-openssl \
--enable-core-odbc-support --enable-zrtp \
--enable-core-pgsql-support \
--enable-static-v8 --disable-parallel-build-v8
touch $@
+13 -15
View File
@@ -232,8 +232,6 @@
FSRTCattachMediaStream = function(element, stream) {
if (typeof element.srcObject !== 'undefined') {
element.srcObject = stream;
} else if (typeof element.src !== 'undefined') {
element.src = URL.createObjectURL(stream);
} else {
console.error('Error attaching stream to element.');
}
@@ -430,7 +428,8 @@
offerSDP: {
type: "offer",
sdp: self.remoteSDP
}
},
turnServer: self.options.turnServer
});
onStreamSuccess(self, stream);
@@ -449,10 +448,7 @@
getUserMedia({
constraints: {
audio: false,
video: {
//mandatory: self.options.videoParams,
//optional: []
},
video: { deviceId: params.useCamera },
},
localVideo: self.options.localVideo,
onsuccess: function(e) {self.options.localVideoStream = e; console.log("local video ready");},
@@ -502,11 +498,10 @@
getUserMedia({
constraints: {
audio: false,
video: obj.options.videoParams
video: { deviceId: obj.options.useCamera },
},
localVideo: obj.options.localVideo,
onsuccess: function(e) {self.options.localVideoStream = e; console.log("local video ready");},
onsuccess: function(e) {obj.options.localVideoStream = e; console.log("local video ready");},
onerror: function(e) {console.error("local video error!");}
});
}
@@ -625,6 +620,7 @@
},
constraints: self.constraints,
iceServers: self.options.iceServers,
turnServer: self.options.turnServer
});
onStreamSuccess(self, stream);
@@ -674,13 +670,15 @@
function FSRTCPeerConnection(options) {
var gathering = false, done = false;
var config = {};
var default_ice = {
urls: ['stun:stun.l.google.com:19302']
};
var default_ice = [{ urls: ['stun:stun.l.google.com:19302'] }];
if (self.options.turnServer) {
default_ice.push(self.options.turnServer)
}
if (options.iceServers) {
if (typeof(options.iceServers) === "boolean") {
config.iceServers = [default_ice];
config.iceServers = default_ice;
} else {
config.iceServers = options.iceServers;
}
@@ -958,7 +956,7 @@
function streaming(stream) {
if (options.localVideo) {
options.localVideo['src'] = window.URL.createObjectURL(stream);
options.localVideo['srcObject'] = stream;
options.localVideo.style.display = 'block';
}
@@ -322,6 +322,10 @@
self.options.onWSClose(self);
}
if (self.ws_cnt > 10 && self.options.wsFallbackURL) {
self.options.socketUrl = self.options.wsFallbackURL;
}
console.error("Websocket Lost " + self.ws_cnt + " sleep: " + self.ws_sleep + "msec");
self.to = setTimeout(function() {
+7 -4
View File
@@ -110,6 +110,8 @@
login: verto.options.login,
passwd: verto.options.passwd,
socketUrl: verto.options.socketUrl,
wsFallbackURL: verto.options.wsFallbackURL,
turnServer: verto.options.turnServer,
loginParams: verto.options.loginParams,
userVariables: verto.options.userVariables,
sessid: verto.sessid,
@@ -2076,10 +2078,11 @@
videoParams: dialog.params.videoParams,
audioParams: verto.options.audioParams,
iceServers: verto.options.iceServers,
screenShare: dialog.screenShare,
useCamera: dialog.useCamera,
useMic: dialog.useMic,
useSpeak: dialog.useSpeak
screenShare: dialog.screenShare,
useCamera: dialog.useCamera,
useMic: dialog.useMic,
useSpeak: dialog.useSpeak,
turnServer: verto.options.turnServer
});
dialog.rtc.verto = dialog.verto;
+3 -3
View File
@@ -24,6 +24,9 @@
"tests"
],
"dependencies": {
"jquery": "~2.1.4",
"jquery-cookie": "~1.4.1",
"jquery-json": "~2.5.1",
"angular-gravatar": "~0.4.1",
"bootstrap": "~3.3.4",
"angular-toastr": "~1.4.1",
@@ -34,13 +37,10 @@
"angular-animate": "~1.3.15",
"angular-cookies": "~1.3.15",
"angular-directive.g-signin": "~0.1.2",
"jquery": "~2.1.4",
"angular-fullscreen": "~1.0.1",
"ngstorage": "~0.3.9",
"angular-timer": "~1.3.3",
"angular-tooltips": "~0.1.21",
"jquery-cookie": "~1.4.1",
"jquery-json": "~2.5.1",
"datatables": "~1.10.8",
"angular-bootstrap": "~0.14.3",
"bootstrap-material-design": "~0.3.0",
@@ -9,5 +9,11 @@
"autologin": "true",
"autocall": "3500",
"googlelogin": "true",
"wsURL": "wss://gamma.tollfreegateway.com/wss2"
"wsURL": "wss://gamma.tollfreegateway.com/wss2",
"wsFallbackURL": "wss://gamma.tollfreegateway.com/wss2",
"turnServer": {
"urls": "turn:someturnserver.com:443?transport=tcp",
"credential": "1234",
"username": "username"
}
}
@@ -75,6 +75,8 @@
<!-- build:js(.) scripts/vendor.js -->
<!-- bower:js -->
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/jquery-cookie/jquery.cookie.js"></script>
<script src="bower_components/jquery-json/src/jquery.json.js"></script>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-gravatar/build/angular-gravatar.js"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.js"></script>
@@ -92,8 +94,6 @@
<script src="bower_components/humanize-duration/humanize-duration.js"></script>
<script src="bower_components/angular-timer/dist/angular-timer.js"></script>
<script src="bower_components/angular-tooltips/dist/angular-tooltips.min.js"></script>
<script src="bower_components/jquery-cookie/jquery.cookie.js"></script>
<script src="bower_components/jquery-json/src/jquery.json.js"></script>
<script src="bower_components/datatables/media/js/jquery.dataTables.js"></script>
<script src="bower_components/bootstrap-material-design/dist/js/material.js"></script>
<script src="bower_components/bootstrap-material-design/dist/js/ripples.js"></script>
@@ -41,6 +41,14 @@ vertoService.service('config', ['$rootScope', '$http', '$location', 'storage', '
verto.data.googleclientid = data.googleclientid;
}
if (data.wsFallbackURL) {
verto.data.wsFallbackURL = data.wsFallbackURL;
}
if (data.turnServer) {
verto.data.turnServer = data.turnServer;
}
angular.extend(verto.data, data);
/**
@@ -175,6 +175,8 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora
password: $cookieStore.get('verto_demo_passwd') || "1234",
hostname: window.location.hostname,
wsURL: ("wss://" + window.location.hostname + ":8082"),
wsFallbackURL: null,
turnServer: null,
resCheckEnded: false
};
@@ -733,6 +735,8 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora
login: data.login + '@' + data.hostname,
passwd: data.password,
socketUrl: data.wsURL,
wsFallbackURL: data.wsFallbackURL,
turnServer: data.turnServer,
tag: "webcam",
ringFile: "sounds/bell_ring2.wav",
audioParams: {
+55 -33
View File
@@ -89,7 +89,7 @@ static int pcount = 0;
static esl_handle_t *global_handle;
static cli_profile_t *global_profile;
static int running = 1;
static int thread_running = 0;
static int thread_running = 0, thread_up = 0, check_up = 0;
static char *filter_uuid;
static char *logfilter;
static int timeout = 0;
@@ -671,40 +671,45 @@ static void clear_line(void)
static void redisplay(void)
{
#ifdef HAVE_LIBEDIT
#ifdef HAVE_DECL_EL_REFRESH
#ifdef HAVE_EL_WSET
/* Current libedit versions don't implement EL_REFRESH in eln.c so
* use the wide version instead. */
el_wset(el, EL_REFRESH);
#else
/* This will work on future libedit versions and versions built
* without wide character support. */
el_set(el, EL_REFRESH);
#endif
#else
/* Old libedit versions don't implement EL_REFRESH at all so use
* our own implementation instead. */
const LineInfo *lf = el_line(el);
const char *c = lf->buffer;
if (global_profile->batch_mode) return;
printf("%s",prompt_str);
while (c < lf->lastchar && *c) {
putchar(*c);
c++;
}
esl_mutex_lock(MUTEX);
{
int pos = (int)(lf->cursor - lf->buffer);
char s1[12], s2[12];
putchar('\r');
snprintf(s1, sizeof(s1), "\033[%dC", bare_prompt_str_len);
snprintf(s2, sizeof(s2), "\033[%dC", pos);
printf("%s%s",s1,s2);
#ifdef HAVE_LIBEDIT
#ifdef XHAVE_DECL_EL_REFRESH
#ifdef HAVE_EL_WSET
/* Current libedit versions don't implement EL_REFRESH in eln.c so
* use the wide version instead. */
el_wset(el, EL_REFRESH);
#else
/* This will work on future libedit versions and versions built
* without wide character support. */
el_set(el, EL_REFRESH);
#endif
#else
/* Old libedit versions don't implement EL_REFRESH at all so use
* our own implementation instead. */
const LineInfo *lf = el_line(el);
const char *c = lf->buffer;
if (global_profile->batch_mode) return;
printf("%s",prompt_str);
while (c < lf->lastchar && *c) {
putchar(*c);
c++;
}
{
int pos = (int)(lf->cursor - lf->buffer);
char s1[12], s2[12] = "";
putchar('\r');
snprintf(s1, sizeof(s1), "\033[%dC", bare_prompt_str_len);
if (pos) snprintf(s2, sizeof(s2), "\033[%dC", pos);
printf("%s%s",s1,s2);
}
fflush(stdout);
#endif
#endif
}
fflush(stdout);
esl_mutex_unlock(MUTEX);
return;
#endif
#endif
}
static int output_printf(const char *fmt, ...)
@@ -726,6 +731,9 @@ static void *msg_thread_run(esl_thread_t *me, void *obj)
{
esl_handle_t *handle = (esl_handle_t *) obj;
thread_running = 1;
esl_mutex_lock(MUTEX);
thread_up = 1;
esl_mutex_unlock(MUTEX);
while(thread_running && handle->connected) {
int aok = 1;
esl_status_t status;
@@ -846,6 +854,10 @@ static void *msg_thread_run(esl_thread_t *me, void *obj)
}
//sleep_ms(1);
}
esl_mutex_lock(MUTEX);
thread_up = 0;
esl_mutex_unlock(MUTEX);
thread_running = 0;
esl_log(ESL_LOG_DEBUG, "Thread Done\n");
return NULL;
@@ -1165,8 +1177,10 @@ static unsigned char esl_console_complete(const char *buffer, const char *cursor
snprintf(cmd_str, sizeof(cmd_str), "api console_complete %s\n\n", buf);
}
esl_mutex_lock(MUTEX);
esl_send_recv(global_handle, cmd_str);
esl_mutex_unlock(MUTEX);
if (global_handle->last_sr_event && global_handle->last_sr_event->body) {
char *r = global_handle->last_sr_event->body;
char *w, *p1;
@@ -1828,6 +1842,7 @@ int main(int argc, char *argv[])
output_printf("%s\n", handle.last_sr_reply);
while (running > 0) {
int r;
#ifdef HAVE_LIBEDIT
if (!(global_profile->batch_mode)) {
line = el_gets(el, &count);
@@ -1869,6 +1884,13 @@ int main(int argc, char *argv[])
global_handle = NULL;
thread_running = 0;
do {
esl_mutex_lock(MUTEX);
check_up = thread_up;
esl_mutex_unlock(MUTEX);
sleep_ms(10);
} while (check_up > 0);
esl_mutex_destroy(&MUTEX);
return 0;
+1 -1
View File
@@ -1,4 +1,4 @@
const char *cc = ".=======================================================================================================.\n| ____ _ ____ |\n| / ___| |_ _ ___ / ___|___ _ __ |\n| | | | | | | |/ _ \\ | / _ \\| '_ \\ |\n| | |___| | |_| | __/ |__| (_) | | | | |\n| \\____|_|\\__,_|\\___|\\____\\___/|_| |_| |\n| |\n| _____ _ _ ____ __ |\n| |_ _|__| | ___ _ __ | |__ ___ _ __ _ _ / ___|___ _ __ / _| ___ _ __ ___ _ __ ___ ___ |\n| | |/ _ \\ |/ _ \\ '_ \\| '_ \\ / _ \\| '_ \\| | | | | | / _ \\| '_ \\| |_ / _ \\ '__/ _ \\ '_ \\ / __/ _ \\ |\n| | | __/ | __/ |_) | | | | (_) | | | | |_| | | |__| (_) | | | | _| __/ | | __/ | | | (_| __/ |\n| |_|\\___|_|\\___| .__/|_| |_|\\___/|_| |_|\\__, | \\____\\___/|_| |_|_| \\___|_| \\___|_| |_|\\___\\___| |\n| |_| |___/ |\n| _____ _ _ |\n| | ____|_ _____ _ __ _ _ / \\ _ _ __ _ _ _ ___| |_ |\n| | _| \\ \\ / / _ \\ '__| | | | / _ \\| | | |/ _` | | | / __| __| |\n| | |___ \\ V / __/ | | |_| | / ___ \\ |_| | (_| | |_| \\__ \\ |_ |\n| |_____| \\_/ \\___|_| \\__, | /_/ \\_\\__,_|\\__, |\\__,_|___/\\__| |\n| |___/ |___/ |\n| ____ _ ____ |\n| __ ____ ____ __ / ___| |_ _ ___ / ___|___ _ __ ___ ___ _ __ ___ |\n| \\ \\ /\\ / /\\ \\ /\\ / /\\ \\ /\\ / / | | | | | | |/ _ \\ | / _ \\| '_ \\ / __/ _ \\| '_ ` _ \\ |\n| \\ V V / \\ V V / \\ V V / _ | |___| | |_| | __/ |__| (_) | | | | _ | (_| (_) | | | | | | |\n| \\_/\\_/ \\_/\\_/ \\_/\\_/ (_) \\____|_|\\__,_|\\___|\\____\\___/|_| |_| (_) \\___\\___/|_| |_| |_| |\n| |\n.=======================================================================================================.\n";
const char *cc = ".=======================================================================================================.\n| _ _ ____ _ ____ |\n| / \\ _ __ _ __ _ _ __ _| | / ___| |_ _ ___ / ___|___ _ __ |\n| / _ \\ | '_ \\| '_ \\| | | |/ _` | | | | | | | | |/ _ \\ | / _ \\| '_ \\ |\n| / ___ \\| | | | | | | |_| | (_| | | | |___| | |_| | __/ |__| (_) | | | | |\n| /_/ \\_\\_| |_|_| |_|\\__,_|\\__,_|_| \\____|_|\\__,_|\\___|\\____\\___/|_| |_| |\n| |\n| ____ _____ ____ ____ __ |\n| | _ \\_ _/ ___| / ___|___ _ __ / _| ___ _ __ ___ _ __ ___ ___ |\n| | |_) || || | | | / _ \\| '_ \\| |_ / _ \\ '__/ _ \\ '_ \\ / __/ _ \\ |\n| | _ < | || |___ | |__| (_) | | | | _| __/ | | __/ | | | (_| __/ |\n| |_| \\_\\|_| \\____| \\____\\___/|_| |_|_| \\___|_| \\___|_| |_|\\___\\___| |\n| |\n| ____ _ ____ |\n| / ___| |_ _ ___ / ___|___ _ __ ___ ___ _ __ ___ |\n| | | | | | | |/ _ \\ | / _ \\| '_ \\ / __/ _ \\| '_ ` _ \\ |\n| | |___| | |_| | __/ |__| (_) | | | | _ | (_| (_) | | | | | | |\n| \\____|_|\\__,_|\\___|\\____\\___/|_| |_| (_) \\___\\___/|_| |_| |_| |\n| |\n.=======================================================================================================.\n";
const char *cc_s = ".===============================================================.\n| _ |\n| ___| |_ _ ___ ___ ___ _ __ ___ ___ _ __ ___ |\n| / __| | | | |/ _ \\/ __/ _ \\| '_ \\ / __/ _ \\| '_ ` _ \\ |\n| | (__| | |_| | __/ (_| (_) | | | | _ | (_| (_) | | | | | | |\n| \\___|_|\\__,_|\\___|\\___\\___/|_| |_| (_) \\___\\___/|_| |_| |_| |\n| |\n.===============================================================.\n";
@@ -1,307 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{fefe4b16-83a4-46b0-ab4b-858531a32218}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\buckets">
<UniqueIdentifier>{66bee6b2-6ba2-4e7d-9c04-5e52ea75b8ee}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\crypto">
<UniqueIdentifier>{ec602915-b144-4258-81ce-f8931434e1eb}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\dbd">
<UniqueIdentifier>{47b5e91f-ec43-4b87-8d11-cc109d0f0733}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\dbm">
<UniqueIdentifier>{12d41721-8bc3-476e-bffa-6bab3ebbcfef}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\encoding">
<UniqueIdentifier>{aafe340f-5f94-4402-a3f4-977c302848c1}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\hooks">
<UniqueIdentifier>{627c064a-54af-49ae-b154-01343f2be90e}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\ldap">
<UniqueIdentifier>{3791a803-8653-410b-905e-934728270db6}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\misc">
<UniqueIdentifier>{5133e514-d14d-46b5-9e37-3ab909e4ef28}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\sdbm">
<UniqueIdentifier>{62959b64-29f8-483f-830f-91e3005c15b9}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\strmatch">
<UniqueIdentifier>{ec299ad2-8fa6-4923-95f4-b8c7f6184dcf}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\uri">
<UniqueIdentifier>{ef13505a-0a7a-4fdc-a55a-b47e92957a85}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\xlate">
<UniqueIdentifier>{80fa8ffc-4776-4a21-bd8b-bfa055f9f46d}</UniqueIdentifier>
</Filter>
<Filter Include="Generated Files">
<UniqueIdentifier>{fdb27306-6946-4cf2-bdb6-39e03cdeeae6}</UniqueIdentifier>
</Filter>
<Filter Include="Public Header Files">
<UniqueIdentifier>{ee62af10-73ee-4af5-85d1-442efcd33aa2}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\xml">
<UniqueIdentifier>{0ea472ce-22be-43c7-b06d-a50dd027a9fe}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\apr-util\buckets\apr_brigade.c">
<Filter>Source Files\buckets</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\buckets\apr_buckets.c">
<Filter>Source Files\buckets</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\buckets\apr_buckets_alloc.c">
<Filter>Source Files\buckets</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\buckets\apr_buckets_eos.c">
<Filter>Source Files\buckets</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\buckets\apr_buckets_file.c">
<Filter>Source Files\buckets</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\buckets\apr_buckets_flush.c">
<Filter>Source Files\buckets</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\buckets\apr_buckets_heap.c">
<Filter>Source Files\buckets</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\buckets\apr_buckets_mmap.c">
<Filter>Source Files\buckets</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\buckets\apr_buckets_pipe.c">
<Filter>Source Files\buckets</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\buckets\apr_buckets_pool.c">
<Filter>Source Files\buckets</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\buckets\apr_buckets_refcount.c">
<Filter>Source Files\buckets</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\buckets\apr_buckets_simple.c">
<Filter>Source Files\buckets</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\buckets\apr_buckets_socket.c">
<Filter>Source Files\buckets</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\crypto\apr_md4.c">
<Filter>Source Files\crypto</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\crypto\apr_md5.c">
<Filter>Source Files\crypto</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\crypto\apr_sha1.c">
<Filter>Source Files\crypto</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\crypto\getuuid.c">
<Filter>Source Files\crypto</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\crypto\uuid.c">
<Filter>Source Files\crypto</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\dbd\apr_dbd.c">
<Filter>Source Files\dbd</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\dbd\apr_dbd_pgsql.c">
<Filter>Source Files\dbd</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\dbd\apr_dbd_sqlite2.c">
<Filter>Source Files\dbd</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\dbd\apr_dbd_sqlite3.c">
<Filter>Source Files\dbd</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\dbm\apr_dbm.c">
<Filter>Source Files\dbm</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\dbm\apr_dbm_berkeleydb.c">
<Filter>Source Files\dbm</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\dbm\apr_dbm_gdbm.c">
<Filter>Source Files\dbm</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\dbm\apr_dbm_sdbm.c">
<Filter>Source Files\dbm</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\encoding\apr_base64.c">
<Filter>Source Files\encoding</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\hooks\apr_hooks.c">
<Filter>Source Files\hooks</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\ldap\apr_ldap_init.c">
<Filter>Source Files\ldap</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\ldap\apr_ldap_option.c">
<Filter>Source Files\ldap</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\ldap\apr_ldap_url.c">
<Filter>Source Files\ldap</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\misc\apr_date.c">
<Filter>Source Files\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\misc\apr_queue.c">
<Filter>Source Files\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\misc\apr_reslist.c">
<Filter>Source Files\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\misc\apr_rmm.c">
<Filter>Source Files\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\dbm\sdbm\sdbm.c">
<Filter>Source Files\sdbm</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\dbm\sdbm\sdbm_hash.c">
<Filter>Source Files\sdbm</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\dbm\sdbm\sdbm_lock.c">
<Filter>Source Files\sdbm</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\dbm\sdbm\sdbm_pair.c">
<Filter>Source Files\sdbm</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\strmatch\apr_strmatch.c">
<Filter>Source Files\strmatch</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\uri\apr_uri.c">
<Filter>Source Files\uri</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\xlate\xlate.c">
<Filter>Source Files\xlate</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\xml\apr_xml.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\apr-util\include\apr_anylock.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_base64.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_buckets.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_date.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_dbm.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_hooks.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_ldap_url.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_md4.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_md5.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_optional.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_optional_hooks.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_queue.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_reslist.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_rmm.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_sdbm.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_sha1.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_strmatch.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_uri.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_uuid.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_xlate.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apr_xml.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\include\apu_version.h">
<Filter>Public Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\apr-util\include\apr_ldap.h.in">
<Filter>Generated Files</Filter>
</None>
<None Include="..\..\apr-util\include\apr_ldap.hnw">
<Filter>Generated Files</Filter>
</None>
<None Include="..\..\apr-util\include\apu.h.in">
<Filter>Generated Files</Filter>
</None>
<None Include="..\..\apr-util\include\apu.hnw">
<Filter>Generated Files</Filter>
</None>
<None Include="..\..\apr-util\include\private\apu_config.h.in">
<Filter>Generated Files</Filter>
</None>
<None Include="..\..\apr-util\include\private\apu_select_dbm.h.in">
<Filter>Generated Files</Filter>
</None>
<None Include="..\..\apr-util\include\apu_want.h.in">
<Filter>Generated Files</Filter>
</None>
<None Include="..\..\apr-util\include\apu_want.hnw">
<Filter>Generated Files</Filter>
</None>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\apr-util\libaprutil.rc" />
</ItemGroup>
<ItemGroup>
<CustomBuildStep Include="..\..\apr-util\dbm\sdbm\sdbm_pair.h">
<Filter>Source Files\sdbm</Filter>
</CustomBuildStep>
<CustomBuildStep Include="..\..\apr-util\dbm\sdbm\sdbm_private.h">
<Filter>Source Files\sdbm</Filter>
</CustomBuildStep>
<CustomBuildStep Include="..\..\apr-util\dbm\sdbm\sdbm_tune.h">
<Filter>Source Files\sdbm</Filter>
</CustomBuildStep>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\apr-util\include\apr_ldap.hw">
<Filter>Generated Files</Filter>
</CustomBuild>
<CustomBuild Include="..\..\apr-util\include\apu.hw">
<Filter>Generated Files</Filter>
</CustomBuild>
<CustomBuild Include="..\..\apr-util\include\private\apu_config.hw">
<Filter>Generated Files</Filter>
</CustomBuild>
<CustomBuild Include="..\..\apr-util\include\private\apu_select_dbm.hw">
<Filter>Generated Files</Filter>
</CustomBuild>
<CustomBuild Include="..\..\apr-util\include\apu_want.hw">
<Filter>Generated Files</Filter>
</CustomBuild>
</ItemGroup>
</Project>
@@ -1,79 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{e33b7b13-01f9-4f80-b853-993ecbce325e}</UniqueIdentifier>
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{da5f19e9-6a89-4668-815e-293aafff5410}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl</Extensions>
</Filter>
<Filter Include="Generated Header Files">
<UniqueIdentifier>{9f1b6ff0-ef97-40e0-bcea-0b5b8b302288}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\apr-util\xml\expat\lib\xmlparse.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\xml\expat\lib\xmlrole.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\xml\expat\lib\xmltok.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\xml\expat\lib\xmltok_impl.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\apr-util\xml\expat\lib\xmltok_ns.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\apr-util\xml\expat\lib\ascii.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\xml\expat\lib\asciitab.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\xml\expat\lib\config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\xml\expat\lib\expat.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\xml\expat\lib\iasciitab.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\xml\expat\lib\latin1tab.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\xml\expat\lib\nametab.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\xml\expat\lib\utf8tab.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\xml\expat\lib\xmlrole.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\xml\expat\lib\xmltok.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr-util\xml\expat\lib\xmltok_impl.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\apr-util\xml\expat\lib\ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\apr-util\xml\expat\lib\expat.h.in">
<Filter>Generated Header Files</Filter>
</CustomBuild>
<CustomBuild Include="..\..\apr-util\xml\expat\lib\winconfig.h">
<Filter>Generated Header Files</Filter>
</CustomBuild>
</ItemGroup>
</Project>
-406
View File
@@ -1,406 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4fc8eb14-6896-4c69-bd8c-bddb16455565}</UniqueIdentifier>
<Extensions>.c</Extensions>
</Filter>
<Filter Include="Source Files\atomic">
<UniqueIdentifier>{c89ee98b-64d0-48dd-b568-2ff6b59fc5c5}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\dso">
<UniqueIdentifier>{78b00836-5d44-4387-8462-4bb5e76ae5da}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\file_io">
<UniqueIdentifier>{0fa9b52a-8504-44e2-8c0e-12b4aad8d27b}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\locks">
<UniqueIdentifier>{a4bc2b15-7e22-4e76-a2bc-bcd8fd793d09}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\memory">
<UniqueIdentifier>{07e65061-0cc8-4f41-879e-0c4f5a1b4592}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\misc">
<UniqueIdentifier>{2bb687cd-88a4-4477-8ee8-c0036b0b061c}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\mmap">
<UniqueIdentifier>{8931e7d2-2589-4697-8eab-cbfdd7b78102}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\network_io">
<UniqueIdentifier>{13d0cf3c-5d76-4e93-9dc9-20fc256f342e}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\passwd">
<UniqueIdentifier>{c8b09a9b-d7a9-493c-af76-2f774f1ae867}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\random">
<UniqueIdentifier>{8021a134-d200-4419-a9af-79c9330f7a50}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\shmem">
<UniqueIdentifier>{5b36b756-ba67-41b3-82e8-19bf529b98e7}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\strings">
<UniqueIdentifier>{4792d1b4-2348-4cdc-9ac0-eced0c1e658e}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\tables">
<UniqueIdentifier>{bb1839cf-8ea0-43fd-a025-fe01e7ddd29e}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\threadproc">
<UniqueIdentifier>{f9664d77-a9cb-4eb7-9f86-b81860e8eac8}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\time">
<UniqueIdentifier>{5d888443-39c7-4937-aed7-f100b0efc8bc}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\user">
<UniqueIdentifier>{01c1e6ed-56bc-4d03-a1fd-1671ca1c2d90}</UniqueIdentifier>
</Filter>
<Filter Include="Private Header Files">
<UniqueIdentifier>{243e3b60-6f34-46d7-8ffb-18936f283239}</UniqueIdentifier>
</Filter>
<Filter Include="Public Header Files">
<UniqueIdentifier>{77829670-aaa9-4ff9-af8e-62ba7f507e32}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\apr\atomic\win32\apr_atomic.c">
<Filter>Source Files\atomic</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\dso\win32\dso.c">
<Filter>Source Files\dso</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\file_io\unix\copy.c">
<Filter>Source Files\file_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\file_io\win32\dir.c">
<Filter>Source Files\file_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\file_io\unix\fileacc.c">
<Filter>Source Files\file_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\file_io\win32\filedup.c">
<Filter>Source Files\file_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\file_io\win32\filepath.c">
<Filter>Source Files\file_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\file_io\unix\filepath_util.c">
<Filter>Source Files\file_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\file_io\win32\filestat.c">
<Filter>Source Files\file_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\file_io\win32\filesys.c">
<Filter>Source Files\file_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\file_io\win32\flock.c">
<Filter>Source Files\file_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\file_io\unix\fullrw.c">
<Filter>Source Files\file_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\file_io\unix\mktemp.c">
<Filter>Source Files\file_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\file_io\win32\open.c">
<Filter>Source Files\file_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\file_io\win32\pipe.c">
<Filter>Source Files\file_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\file_io\win32\readwrite.c">
<Filter>Source Files\file_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\file_io\win32\seek.c">
<Filter>Source Files\file_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\file_io\unix\tempdir.c">
<Filter>Source Files\file_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\locks\win32\proc_mutex.c">
<Filter>Source Files\locks</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\locks\win32\thread_cond.c">
<Filter>Source Files\locks</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\locks\win32\thread_mutex.c">
<Filter>Source Files\locks</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\locks\win32\thread_rwlock.c">
<Filter>Source Files\locks</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\memory\unix\apr_pools.c">
<Filter>Source Files\memory</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\misc\win32\charset.c">
<Filter>Source Files\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\misc\win32\env.c">
<Filter>Source Files\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\misc\unix\errorcodes.c">
<Filter>Source Files\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\misc\unix\getopt.c">
<Filter>Source Files\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\misc\win32\internal.c">
<Filter>Source Files\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\misc\win32\misc.c">
<Filter>Source Files\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\misc\unix\otherchild.c">
<Filter>Source Files\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\misc\win32\rand.c">
<Filter>Source Files\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\misc\win32\start.c">
<Filter>Source Files\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\misc\win32\utf8.c">
<Filter>Source Files\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\misc\unix\version.c">
<Filter>Source Files\misc</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\mmap\unix\common.c">
<Filter>Source Files\mmap</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\mmap\win32\mmap.c">
<Filter>Source Files\mmap</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\network_io\unix\inet_ntop.c">
<Filter>Source Files\network_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\network_io\unix\inet_pton.c">
<Filter>Source Files\network_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\network_io\unix\multicast.c">
<Filter>Source Files\network_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\poll\unix\select.c">
<Filter>Source Files\network_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\network_io\win32\sendrecv.c">
<Filter>Source Files\network_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\network_io\unix\sockaddr.c">
<Filter>Source Files\network_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\network_io\win32\sockets.c">
<Filter>Source Files\network_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\network_io\win32\sockopt.c">
<Filter>Source Files\network_io</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\passwd\apr_getpass.c">
<Filter>Source Files\passwd</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\random\unix\apr_random.c">
<Filter>Source Files\random</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\random\unix\sha2.c">
<Filter>Source Files\random</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\random\unix\sha2_glue.c">
<Filter>Source Files\random</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\shmem\win32\shm.c">
<Filter>Source Files\shmem</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\strings\apr_cpystrn.c">
<Filter>Source Files\strings</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\strings\apr_fnmatch.c">
<Filter>Source Files\strings</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\strings\apr_snprintf.c">
<Filter>Source Files\strings</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\strings\apr_strings.c">
<Filter>Source Files\strings</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\strings\apr_strnatcmp.c">
<Filter>Source Files\strings</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\strings\apr_strtok.c">
<Filter>Source Files\strings</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\tables\apr_hash.c">
<Filter>Source Files\tables</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\tables\apr_tables.c">
<Filter>Source Files\tables</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\threadproc\win32\proc.c">
<Filter>Source Files\threadproc</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\threadproc\win32\signals.c">
<Filter>Source Files\threadproc</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\threadproc\win32\thread.c">
<Filter>Source Files\threadproc</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\threadproc\win32\threadpriv.c">
<Filter>Source Files\threadproc</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\time\win32\access.c">
<Filter>Source Files\time</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\time\win32\time.c">
<Filter>Source Files\time</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\time\win32\timestr.c">
<Filter>Source Files\time</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\user\win32\groupinfo.c">
<Filter>Source Files\user</Filter>
</ClCompile>
<ClCompile Include="..\..\apr\user\win32\userinfo.c">
<Filter>Source Files\user</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\apr\include\arch\win32\apr_arch_atime.h">
<Filter>Private Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\arch\win32\apr_arch_dso.h">
<Filter>Private Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\arch\win32\apr_arch_file_io.h">
<Filter>Private Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\arch\win32\apr_arch_inherit.h">
<Filter>Private Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\arch\win32\apr_arch_misc.h">
<Filter>Private Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\arch\win32\apr_arch_networkio.h">
<Filter>Private Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\arch\win32\apr_arch_thread_mutex.h">
<Filter>Private Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\arch\win32\apr_arch_thread_rwlock.h">
<Filter>Private Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\arch\win32\apr_arch_threadproc.h">
<Filter>Private Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\arch\win32\apr_arch_utf8.h">
<Filter>Private Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\arch\win32\apr_private.h">
<Filter>Private Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\arch\apr_private_common.h">
<Filter>Private Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_allocator.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_atomic.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_dso.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_env.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_errno.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_file_info.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_file_io.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_fnmatch.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_general.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_getopt.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_global_mutex.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_hash.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_inherit.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_lib.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_mmap.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_network_io.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_poll.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_pools.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_portable.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_proc_mutex.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_ring.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_shm.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_signal.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_strings.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_support.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_tables.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_thread_cond.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_thread_mutex.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_thread_proc.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_thread_rwlock.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_time.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_user.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_version.h">
<Filter>Public Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\apr\include\apr_want.h">
<Filter>Public Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\apr\libapr.rc" />
</ItemGroup>
</Project>
@@ -1,69 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\iksemel\src\base64.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\iksemel\src\dom.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\iksemel\src\filter.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\iksemel\src\iks.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\iksemel\src\ikstack.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\iksemel\src\io-posix.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\iksemel\src\jabber.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\iksemel\src\md5.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\iksemel\src\sax.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\iksemel\src\sha.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\iksemel\src\stream.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\iksemel\src\utility.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\iksemel\include\common.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\iksemel\include\config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\iksemel\include\finetune.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\iksemel\include\iksemel.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>
@@ -1,258 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\ldns\compat\b32_ntop.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\compat\b32_pton.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\compat\b64_ntop.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\compat\b64_pton.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\buffer.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\compat\ctime_r.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\dname.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\dnssec.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\dnssec_sign.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\dnssec_verify.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\dnssec_zone.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\error.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\compat\fake-rfc2553.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\compat\gettimeofday.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\compat\gmtime_r.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\higher.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\host2str.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\host2wire.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\compat\inet_aton.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\compat\inet_ntop.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\compat\inet_pton.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\compat\isblank.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\keys.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\linktest.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\compat\malloc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\compat\memmove.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\net.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\packet.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\parse.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\rbtree.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\rdata.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\compat\realloc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\resolver.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\rr.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\rr_functions.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\sha1.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\sha2.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\compat\snprintf.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\str2host.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\compat\strlcpy.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\compat\timegm.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\tsig.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\update.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\util.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\wire2host.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ldns\zone.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\ldns\compat\fake-rfc2553.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\compat\gettimeofday.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\buffer.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\common.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\dname.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\dnssec.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\dnssec_sign.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\dnssec_verify.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\dnssec_zone.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\error.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\higher.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\host2str.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\host2wire.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\keys.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\ldns.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\net.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\packet.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\parse.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\rbtree.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\rdata.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\resolver.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\rr.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\rr_functions.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\sha1.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\sha2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\str2host.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\tsig.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\update.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\util.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ldns\ldns\zone.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="ldns\util.h.in">
<Filter>Header Files</Filter>
</None>
<None Include="ldns\readme.txt" />
</ItemGroup>
</Project>
@@ -1,40 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="include">
<UniqueIdentifier>{0a4bdcda-43d0-4907-83ce-01f3a87cdf59}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\src\mod\endpoints\mod_gsmopen\libctb-0.16\include\ctb-0.16\ctb.h">
<Filter>include</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\mod\endpoints\mod_gsmopen\libctb-0.16\include\ctb-0.16\fifo.h">
<Filter>include</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\mod\endpoints\mod_gsmopen\libctb-0.16\include\ctb-0.16\gpib.h">
<Filter>include</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\mod\endpoints\mod_gsmopen\libctb-0.16\include\ctb-0.16\getopt.h">
<Filter>include</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\mod\endpoints\mod_gsmopen\libctb-0.16\include\ctb-0.16\iobase.h">
<Filter>include</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\mod\endpoints\mod_gsmopen\libctb-0.16\include\ctb-0.16\kbhit.h">
<Filter>include</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\mod\endpoints\mod_gsmopen\libctb-0.16\include\ctb-0.16\portscan.h">
<Filter>include</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\mod\endpoints\mod_gsmopen\libctb-0.16\include\ctb-0.16\serport.h">
<Filter>include</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\mod\endpoints\mod_gsmopen\libctb-0.16\include\ctb-0.16\serportx.h">
<Filter>include</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\mod\endpoints\mod_gsmopen\libctb-0.16\include\ctb-0.16\timer.h">
<Filter>include</Filter>
</ClInclude>
</ItemGroup>
</Project>
@@ -1,186 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\jpeg-8d\jconfig.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\jpeg-8d\jdct.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\jpeg-8d\jerror.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\jpeg-8d\jinclude.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\jpeg-8d\jmemsys.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\jpeg-8d\jmorecfg.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\jpeg-8d\jpegint.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\jpeg-8d\jpeglib.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\jpeg-8d\jversion.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\jpeg-8d\jaricom.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jcapimin.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jcapistd.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jcarith.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jccoefct.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jccolor.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jcdctmgr.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jchuff.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jcinit.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jcmainct.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jcmarker.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jcmaster.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jcomapi.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jcparam.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jcprepct.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jcsample.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jctrans.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jdapimin.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jdapistd.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jdarith.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jdatadst.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jdatasrc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jdcoefct.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jdcolor.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jddctmgr.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jdhuff.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jdinput.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jdmainct.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jdmarker.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jdmaster.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jdmerge.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jdpostct.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jdsample.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jdtrans.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jerror.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jfdctflt.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jfdctfst.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jfdctint.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jidctflt.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jidctfst.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jidctint.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jmemmgr.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jmemnobs.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jquant1.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jquant2.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\jpeg-8d\jutils.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
@@ -1,170 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source">
<UniqueIdentifier>{f5641aca-51aa-43fe-94f1-8a3463d81fd2}</UniqueIdentifier>
<Extensions>c</Extensions>
</Filter>
<Filter Include="Include">
<UniqueIdentifier>{35db8916-1b8b-4072-9a38-f62167263222}</UniqueIdentifier>
<Extensions>h</Extensions>
</Filter>
<Filter Include="Asm">
<UniqueIdentifier>{644a1cf1-f43b-4bd7-9e99-17500205a788}</UniqueIdentifier>
<Extensions>.nas</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\lame-3.97\libmp3lame\bitstream.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\lame-3.97\libmp3lame\encoder.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\lame-3.97\libmp3lame\fft.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\lame-3.97\libmp3lame\gain_analysis.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\lame-3.97\libmp3lame\id3tag.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\lame-3.97\libmp3lame\lame.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\lame-3.97\libmp3lame\mpglib_interface.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\lame-3.97\libmp3lame\newmdct.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\lame-3.97\libmp3lame\presets.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\lame-3.97\libmp3lame\psymodel.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\lame-3.97\libmp3lame\quantize.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\lame-3.97\libmp3lame\quantize_pvt.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\lame-3.97\libmp3lame\reservoir.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\lame-3.97\libmp3lame\set_get.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\lame-3.97\libmp3lame\tables.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\lame-3.97\libmp3lame\takehiro.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\lame-3.97\libmp3lame\util.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\lame-3.97\libmp3lame\vbrquantize.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\lame-3.97\libmp3lame\VbrTag.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\lame-3.97\libmp3lame\version.c">
<Filter>Source</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\lame-3.97\libmp3lame\bitstream.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\encoder.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\fft.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\gain_analysis.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\id3tag.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\l3side.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\lame-analysis.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\lame_global_flags.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\lameerror.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\machine.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\newmdct.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\psymodel.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\quantize.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\quantize_pvt.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\reservoir.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\set_get.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\tables.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\util.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\vbrquantize.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\VbrTag.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\lame-3.97\libmp3lame\version.h">
<Filter>Include</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\lame-3.97\libmp3lame\i386\choose_table.nas">
<Filter>Asm</Filter>
</None>
<None Include="..\..\lame-3.97\libmp3lame\i386\cpu_feat.nas">
<Filter>Asm</Filter>
</None>
<None Include="..\..\lame-3.97\libmp3lame\i386\fft.nas">
<Filter>Asm</Filter>
</None>
<None Include="..\..\lame-3.97\libmp3lame\i386\fft3dn.nas">
<Filter>Asm</Filter>
</None>
<None Include="..\..\lame-3.97\libmp3lame\i386\fftfpu.nas">
<Filter>Asm</Filter>
</None>
<None Include="..\..\lame-3.97\libmp3lame\i386\fftsse.nas">
<Filter>Asm</Filter>
</None>
<None Include="..\..\lame-3.97\libmp3lame\i386\ffttbl.nas">
<Filter>Asm</Filter>
</None>
<None Include="..\..\lame-3.97\libmp3lame\i386\scalar.nas">
<Filter>Asm</Filter>
</None>
</ItemGroup>
</Project>
@@ -1,29 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{34e81afc-61be-40dc-b978-f4e20b9b1236}</UniqueIdentifier>
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{acd20529-ba9d-4ef9-8dc6-0c785bf72394}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\libogg-1.1.3\src\bitwise.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\libogg-1.1.3\src\framing.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\libogg-1.1.3\include\ogg\ogg.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\libogg-1.1.3\include\ogg\os_types.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>
@@ -1,82 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\mpg123\src\libmpg123\compat.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\dct64.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\decode.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\decode_2to1.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\decode_4to1.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\decode_ntom.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\equalizer.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\format.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\frame.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\icy.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\icy2utf8.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\id3.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\layer1.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\layer2.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\layer3.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\libmpg123.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\optimize.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\parse.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\readers.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\stringbuf.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\mpg123\src\libmpg123\tabinit.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
-93
View File
@@ -1,93 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\opus-1.1\src\opus.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\src\opus_decoder.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\src\opus_encoder.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\src\opus_multistream.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\src\repacketizer.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\src\opus_multistream_decoder.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\src\opus_multistream_encoder.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\src\opus_compare.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\src\analysis.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\src\mlp.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\src\mlp_data.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\opus-1.1\win32\config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\src\opus_private.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\arch.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\celt.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\entdec.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\entenc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\float_cast.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\os_support.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\stack_alloc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\include\opus.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\include\opus_defines.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\include\opus_types.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\include\opus_multistream.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>
@@ -1,147 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\opus-1.1\celt\arch.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\bands.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\celt.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\cwrs.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\ecintrin.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\entcode.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\entdec.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\entenc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\fixed_debug.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\fixed_generic.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\float_cast.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\kiss_fft.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\laplace.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\mathops.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\mdct.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\modes.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\os_support.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\pitch.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\celt_lpc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\quant_bands.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\rate.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\stack_alloc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\celt\vq.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\win32\config.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\opus-1.1\celt\bands.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\celt\celt.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\celt\cwrs.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\celt\entcode.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\celt\entdec.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\celt\entenc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\celt\kiss_fft.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\celt\laplace.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\celt\mdct.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\celt\modes.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\celt\pitch.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\celt\celt_lpc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\celt\quant_bands.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\celt\rate.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\celt\vq.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\celt\mathops.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\celt\celt_decoder.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\celt\celt_encoder.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
@@ -1,315 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\opus-1.1\silk\A2NLSF.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\ana_filt_bank_1.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\biquad_alt.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\bwexpander.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\bwexpander_32.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\check_control_input.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\CNG.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\code_signs.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\control_audio_bandwidth.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\control_codec.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\control_SNR.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\debug.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\dec_API.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\decode_core.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\decode_frame.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\decode_indices.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\decode_parameters.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\decode_pitch.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\decode_pulses.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\decoder_set_fs.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\enc_API.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\encode_indices.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\encode_pulses.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\gain_quant.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\HP_variable_cutoff.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\init_encoder.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\inner_prod_aligned.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\interpolate.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\lin2log.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\log2lin.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\LP_variable_cutoff.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\LPC_analysis_filter.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\LPC_inv_pred_gain.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\table_LSF_cos.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\NLSF2A.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\NLSF_decode.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\NLSF_del_dec_quant.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\NLSF_encode.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\NLSF_stabilize.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\NLSF_unpack.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\NLSF_VQ.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\NLSF_VQ_weights_laroia.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\NSQ.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\NSQ_del_dec.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\pitch_est_tables.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\PLC.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\process_NLSFs.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\quant_LTP_gains.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\resampler.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\resampler_down2.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\resampler_down2_3.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\resampler_private_AR2.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\resampler_private_down_FIR.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\resampler_private_IIR_FIR.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\resampler_private_up2_HQ.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\resampler_rom.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\shell_coder.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\sigm_Q15.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\sort.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\stereo_decode_pred.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\stereo_encode_pred.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\stereo_find_predictor.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\stereo_LR_to_MS.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\stereo_MS_to_LR.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\stereo_quant_pred.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\sum_sqr_shift.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\tables_gain.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\tables_LTP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\tables_NLSF_CB_NB_MB.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\tables_NLSF_CB_WB.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\tables_other.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\tables_pitch_lag.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\tables_pulses_per_block.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\VAD.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\VQ_WMat_EC.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\init_decoder.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\opus-1.1\win32\config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\control.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\define.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\errors.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\Inlines.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\MacroCount.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\MacroDebug.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\macros.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\main.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\pitch_est_defines.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\PLC.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\resampler_private.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\resampler_rom.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\resampler_structs.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\structs.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\tables.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\tuning_parameters.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\typedef.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\API.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\debug.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\SigProc_FIX.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\include\opus_types.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>
@@ -1,111 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\opus-1.1\silk\fixed\corrMatrix_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\encode_frame_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\find_LPC_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\find_LTP_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\find_pitch_lags_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\find_pred_coefs_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\LTP_analysis_filter_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\LTP_scale_ctrl_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\noise_shape_analysis_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\prefilter_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\process_gains_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\regularize_correlations_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\residual_energy16_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\residual_energy_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\solve_LS_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\warped_autocorrelation_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\apply_sine_window_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\k2a_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\k2a_Q16_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\burg_modified_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\autocorr_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\pitch_analysis_core_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\vector_ops_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\schur_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\fixed\schur64_FIX.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\opus-1.1\win32\config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\fixed\main_FIX.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\SigProc_FIX.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\fixed\structs_FIX.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\include\opus_types.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>
@@ -1,129 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\opus-1.1\silk\float\apply_sine_window_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\autocorrelation_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\burg_modified_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\bwexpander_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\corrMatrix_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\encode_frame_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\energy_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\find_LPC_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\find_LTP_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\find_pitch_lags_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\find_pred_coefs_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\inner_product_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\k2a_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\levinsondurbin_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\LPC_analysis_filter_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\LPC_inv_pred_gain_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\LTP_analysis_filter_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\LTP_scale_ctrl_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\noise_shape_analysis_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\pitch_analysis_core_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\prefilter_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\process_gains_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\regularize_correlations_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\residual_energy_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\scale_copy_vector_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\scale_vector_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\schur_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\solve_LS_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\sort_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\warped_autocorrelation_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\opus-1.1\silk\float\wrappers_FLP.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\opus-1.1\win32\config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\float\main_FLP.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\float\SigProc_FLP.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\silk\float\structs_FLP.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\opus-1.1\include\opus_types.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>
@@ -1,202 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Header Files">
<UniqueIdentifier>{30a9f269-d81a-4ee2-adf0-8b402eb80fec}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{d54e4410-06e1-4361-b050-7aced67dff22}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{ebcc7cb5-8ca2-489c-b0e8-426058856ac8}</UniqueIdentifier>
<Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\acmod.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\bin_mdef.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\blkarray_list.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\include\cmdln_macro.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\cmu6_lts_rules.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\dict.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\dict2pid.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\fillpen.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\fsg_history.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\fsg_lextree.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\fsg_search_internal.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\include\fsg_set.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\hmm.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\kdtree.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\lextree.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\mdef.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\ms_gauden.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\ms_mgau.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\ms_senone.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\ngram_search.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\ngram_search_fwdflat.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\ngram_search_fwdtree.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\phone_loop_search.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\include\pocketsphinx.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\include\pocketsphinx.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\include\pocketsphinx_export.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\pocketsphinx_internal.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\posixwin32.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\ps_lattice.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\ps_lattice_internal.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\include\ps_mllr.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\s2_semi_mgau.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\s3dict.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\tmat.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\tst_search.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\vector.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\vithist.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\acmod.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\bin_mdef.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\blkarray_list.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\dict2pid.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\fsg_history.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\fsg_lextree.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\fsg_search.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\hmm.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\mdef.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\ms_gauden.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\ms_mgau.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\ms_senone.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\ngram_search.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\ngram_search_fwdflat.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\ngram_search_fwdtree.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\phone_loop_search.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\pocketsphinx.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\ps_lattice.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\ps_mllr.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\s2_semi_mgau.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\tmat.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\vector.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\dict.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\pocketsphinx-0.7\src\libpocketsphinx\ptm_mgau.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
@@ -1,135 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{27479ed0-78ba-43cc-8fb5-31de44bbc8da}</UniqueIdentifier>
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
</Filter>
<Filter Include="Source Files\common">
<UniqueIdentifier>{8f150320-dccc-4b5c-b43c-b3b91378f721}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\hostapi">
<UniqueIdentifier>{ac26acd3-797a-4668-a607-9694e9f10a16}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\hostapi\ASIO">
<UniqueIdentifier>{03878aa4-e6a3-4d56-81fe-f93794a1e3a1}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\hostapi\ASIO\ASIOSDK">
<UniqueIdentifier>{99774f7f-59c1-48cb-b72a-09d78537e6e4}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\hostapi\dsound">
<UniqueIdentifier>{f47fabee-145b-4c98-9423-3d1bb7c1f3b3}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\hostapi\wmme">
<UniqueIdentifier>{4ea57aa2-5b6b-4022-86b9-f3a02dd2284b}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\hostapi\wasapi">
<UniqueIdentifier>{9c44aff3-3f53-4117-8097-ee8b810caba2}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\os">
<UniqueIdentifier>{a20f633f-4213-4f4b-bd65-a8e49cf9f842}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\os\win">
<UniqueIdentifier>{ce9a362c-b700-4ea4-88b4-51c222789754}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{6e72bafa-42f5-450a-90f4-0206faddcf3d}</UniqueIdentifier>
<Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{5060bc7a-2362-400f-bda0-ae74643cea86}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\portaudio\src\common\pa_allocation.c">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\common\pa_converters.c">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\common\pa_cpuload.c">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\common\pa_debugprint.c">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\common\pa_dither.c">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\common\pa_front.c">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\common\pa_process.c">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\common\pa_stream.c">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\common\pa_trace.c">
<Filter>Source Files\common</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\hostapi\asio\pa_asio.cpp">
<Filter>Source Files\hostapi\ASIO</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\hostapi\asio\ASIOSDK\common\asio.cpp">
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\hostapi\asio\ASIOSDK\host\ASIOConvertSamples.cpp">
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\hostapi\asio\ASIOSDK\host\asiodrivers.cpp">
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\hostapi\asio\ASIOSDK\host\pc\asiolist.cpp">
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\hostapi\asio\ASIOSDK\common\combase.cpp">
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\hostapi\asio\ASIOSDK\common\debugmessage.cpp">
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\hostapi\asio\ASIOSDK\common\register.cpp">
<Filter>Source Files\hostapi\ASIO\ASIOSDK</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\hostapi\dsound\pa_win_ds.c">
<Filter>Source Files\hostapi\dsound</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\hostapi\dsound\pa_win_ds_dynlink.c">
<Filter>Source Files\hostapi\dsound</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\hostapi\wmme\pa_win_wmme.c">
<Filter>Source Files\hostapi\wmme</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\os\win\pa_win_hostapis.c">
<Filter>Source Files\os\win</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\os\win\pa_win_util.c">
<Filter>Source Files\os\win</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\os\win\pa_win_waveformat.c">
<Filter>Source Files\os\win</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\os\win\pa_win_wdmks_utils.c">
<Filter>Source Files\os\win</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\os\win\pa_x86_plain_converters.c">
<Filter>Source Files\os\win</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\hostapi\skeleton\pa_hostapi_skeleton.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\hostapi\wasapi\pa_win_wasapi.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\portaudio\src\os\win\pa_win_coinitialize.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="portaudio.def">
<Filter>Resource Files</Filter>
</None>
</ItemGroup>
</Project>
@@ -1,41 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{eea9b312-399b-4998-b90c-92abe8150466}</UniqueIdentifier>
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{4fdd54b4-c31e-45b5-9b1a-09740020ae6f}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{d9df37d7-2c75-4916-bd8d-68f96aca4677}</UniqueIdentifier>
<Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\pthreads-w32-2-9-1\pthread.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\pthreads-w32-2-9-1\implement.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pthreads-w32-2-9-1\pthread.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pthreads-w32-2-9-1\sched.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\pthreads-w32-2-9-1\semaphore.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\pthreads-w32-2-9-1\version.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
</Project>
File diff suppressed because it is too large Load Diff
@@ -1,177 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\bits.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\cb_search.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\exc_10_16_table.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\exc_10_32_table.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\exc_20_32_table.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\exc_5_256_table.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\exc_5_64_table.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\exc_8_128_table.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\filters.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\gain_table.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\gain_table_lbr.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\hexc_10_32_table.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\hexc_table.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\high_lsp_tables.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\lpc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\lsp.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\lsp_tables_nb.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\ltp.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\modes.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\modes_wb.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\nb_celp.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\quant_lsp.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\sb_celp.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\speex.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\speex_callbacks.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\speex_header.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\stereo.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\vbr.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\vq.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\speex-1.2rc1\libspeex\window.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\cb_search.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\fftwrap.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\filters.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\filters_sse.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\kiss_fft.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\kiss_fftr.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\lpc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\lsp.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\ltp.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\ltp_sse.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\math_approx.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\misc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\modes.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\nb_celp.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\pseudofloat.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\quant_lsp.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\sb_celp.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\stack_alloc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\vbr.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\speex-1.2rc1\libspeex\vq.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="config.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>
@@ -1,354 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{5ce23960-a856-416b-a477-cf2d724bd43e}</UniqueIdentifier>
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{8d90e900-0942-4a25-b48a-b8dcd4382c28}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{cd06b891-4b88-427f-9f62-187bfead9b0f}</UniqueIdentifier>
<Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\feat\agc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\bio.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\bitvec.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\blas_lite.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\case.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\ckd_alloc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\cmd_ln.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\feat\cmn.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\feat\cmn_prior.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxad\cont_ad_base.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\dtoa.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\err.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\f2c_lite.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\fe\fe_interface.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\fe\fe_sigproc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\fe\fe_warp.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\fe\fe_warp_affine.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\fe\fe_warp_inverse_linear.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\fe\fe_warp_piecewise_linear.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\feat\feat.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\filename.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\fe\fixlog.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\lm\fsg_model.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\genrand.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\glist.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\hash_table.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\heap.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\info.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\lm\jsgf.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\lm\jsgf_parser.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\lm\jsgf_scanner.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\feat\lda.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\listelem_alloc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\lm\lm3g_model.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\logmath.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\matrix.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\mmio.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\lm\ngram_model.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\lm\ngram_model_arpa.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\lm\ngram_model_dmp.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\lm\ngram_model_dmp32.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\lm\ngram_model_set.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\pio.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxad\play_win32.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\profile.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxad\rec_win32.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\sbthread.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\slamch.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\slapack_lite.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\strfuncs.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\util\unlimit.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\sphinxbase-0.7\src\libsphinxbase\fe\yin.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\sphinxbase-0.7\include\ad.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\agc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\bio.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\bitvec.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\byteorder.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\case.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\ckd_alloc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\clapack_lite.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\cmd_ln.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\cmn.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\win32\config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\cont_ad.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\err.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\f2c.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\fe.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\src\libsphinxbase\fe\fe_internal.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\src\libsphinxbase\fe\fe_warp.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\src\libsphinxbase\fe\fe_warp_affine.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\src\libsphinxbase\fe\fe_warp_inverse_linear.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\src\libsphinxbase\fe\fe_warp_piecewise_linear.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\feat.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\filename.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\fixpoint.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\fsg_model.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\gau_cb.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\gau_cb_float64.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\gau_cb_int32.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\gau_file.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\gau_mix.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\genrand.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\glist.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\hash_table.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\heap.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\info.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\src\libsphinxbase\lm\jsgf_internal.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\src\libsphinxbase\lm\jsgf_parser.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\src\libsphinxbase\lm\jsgf_scanner.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\libutil.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\listelem_alloc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\src\libsphinxbase\lm\lm3g_model.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\logmath.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\matrix.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\mmio.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\mulaw.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\ngram_model.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\src\libsphinxbase\lm\ngram_model_arpa.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\src\libsphinxbase\lm\ngram_model_dmp.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\src\libsphinxbase\lm\ngram_model_internal.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\src\libsphinxbase\lm\ngram_model_set.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\pio.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\prim_type.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\profile.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\s3_arraylist.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\win32\sphinx_config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\sphinx_types.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\sphinxbase_export.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\strfuncs.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\unlimit.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\sphinxbase-0.7\include\yin.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>
@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\sqlite-amalgamation-3080401\sqlite3.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\sqlite-amalgamation-3080401\sqlite3.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>
@@ -1,66 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\udns\inet_pton.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\udns\udns_bl.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\udns\udns_codes.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\udns\udns_dn.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\udns\udns_dntosp.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\udns\udns_misc.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\udns\udns_parse.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\udns\udns_resolver.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\udns\udns_rr_a.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\udns\udns_rr_mx.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\udns\udns_rr_naptr.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\udns\udns_rr_ptr.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\udns\udns_rr_srv.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\udns\udns_rr_txt.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\udns\inet_pton.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>
@@ -1,69 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{8ac4971f-a9ba-4930-a7e3-b291ad24d6ca}</UniqueIdentifier>
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{05489d43-6c6b-4bb8-95db-414e8137ee9e}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\xmlrpc-c\lib\abyss\src\file.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\abyss\src\handler.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\abyss\src\http.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\abyss\src\init.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\abyss\src\server.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\abyss\src\session.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\abyss\src\socket.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\abyss\src\socket_win.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\abyss\src\thread_windows.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\abyss\src\token.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\abyss\src\trace.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\abyss\src\channel.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\abyss\src\chanswitch.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\abyss\src\conf.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\abyss\src\conn.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\abyss\src\data.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\abyss\src\date.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\abyss\src\response.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
@@ -1,125 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{7ca2b8b9-bf59-4407-aedf-588e548fe34a}</UniqueIdentifier>
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;cc</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\xmlrpc-c\lib\wininet_transport\xmlrpc_wininet_transport.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\libutil\string_number.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\libutil\time.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\libutil\utf8.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\libutil\asprintf.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\libutil\base64.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\libutil\error.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\libutil\make_printable.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\libutil\memblock.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\libutil\select.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\libutil\sleep.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\double.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\method.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\registry.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\xml_trace.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\parse_datetime.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\parse_value.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\util\pthreadx_win32.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\resource.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\system_method.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\version.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\xmlrpc_datetime.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\xmlrpc_decompose.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\xmlrpc_expat.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\xmlrpc_parse.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\xmlrpc_serialize.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\xmlrpc_server_abyss.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\xmlrpc_server_cgi.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\xmlrpc_server_info.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\xmlrpc_string.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\xmlrpc_struct.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\xmlrpc_array.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\xmlrpc_authcookie.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\xmlrpc_base64.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\xmlrpc_build.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\xmlrpc_client.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\xmlrpc_client_global.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\src\xmlrpc_data.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
@@ -1,45 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="..\..\xmlrpc-c\lib\expat\xmltok\xmltok.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\xmlrpc-c\lib\expat\xmltok\xmlrole.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\xmlrpc-c\lib\expat\xmltok\xmltok.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\xmlrpc-c\lib\expat\xmltok\xmlrole.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\xmlrpc-c\lib\expat\xmltok\xmldef.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\xmlrpc-c\lib\expat\xmltok\utf8tab.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\lib\expat\xmltok\nametab.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\xmlrpc-c\lib\expat\xmltok\latin1tab.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\xmlrpc-c\lib\expat\xmltok\iasciitab.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\xmlrpc-c\lib\expat\xmltok\asciitab.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{e8ec3017-8580-49f6-b5b5-4ba1c66c9b58}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{cf3bec2c-9e12-4a6c-8d1c-495721118adf}</UniqueIdentifier>
</Filter>
</ItemGroup>
</Project>
+1 -1
View File
@@ -1,4 +1,4 @@
const char *cc = ".=======================================================================================================.\n| ____ _ ____ |\n| / ___| |_ _ ___ / ___|___ _ __ |\n| | | | | | | |/ _ \\ | / _ \\| '_ \\ |\n| | |___| | |_| | __/ |__| (_) | | | | |\n| \\____|_|\\__,_|\\___|\\____\\___/|_| |_| |\n| |\n| _____ _ _ ____ __ |\n| |_ _|__| | ___ _ __ | |__ ___ _ __ _ _ / ___|___ _ __ / _| ___ _ __ ___ _ __ ___ ___ |\n| | |/ _ \\ |/ _ \\ '_ \\| '_ \\ / _ \\| '_ \\| | | | | | / _ \\| '_ \\| |_ / _ \\ '__/ _ \\ '_ \\ / __/ _ \\ |\n| | | __/ | __/ |_) | | | | (_) | | | | |_| | | |__| (_) | | | | _| __/ | | __/ | | | (_| __/ |\n| |_|\\___|_|\\___| .__/|_| |_|\\___/|_| |_|\\__, | \\____\\___/|_| |_|_| \\___|_| \\___|_| |_|\\___\\___| |\n| |_| |___/ |\n| _____ _ _ |\n| | ____|_ _____ _ __ _ _ / \\ _ _ __ _ _ _ ___| |_ |\n| | _| \\ \\ / / _ \\ '__| | | | / _ \\| | | |/ _` | | | / __| __| |\n| | |___ \\ V / __/ | | |_| | / ___ \\ |_| | (_| | |_| \\__ \\ |_ |\n| |_____| \\_/ \\___|_| \\__, | /_/ \\_\\__,_|\\__, |\\__,_|___/\\__| |\n| |___/ |___/ |\n| ____ _ ____ |\n| __ ____ ____ __ / ___| |_ _ ___ / ___|___ _ __ ___ ___ _ __ ___ |\n| \\ \\ /\\ / /\\ \\ /\\ / /\\ \\ /\\ / / | | | | | | |/ _ \\ | / _ \\| '_ \\ / __/ _ \\| '_ ` _ \\ |\n| \\ V V / \\ V V / \\ V V / _ | |___| | |_| | __/ |__| (_) | | | | _ | (_| (_) | | | | | | |\n| \\_/\\_/ \\_/\\_/ \\_/\\_/ (_) \\____|_|\\__,_|\\___|\\____\\___/|_| |_| (_) \\___\\___/|_| |_| |_| |\n| |\n.=======================================================================================================.\n";
const char *cc = ".=======================================================================================================.\n| _ _ ____ _ ____ |\n| / \\ _ __ _ __ _ _ __ _| | / ___| |_ _ ___ / ___|___ _ __ |\n| / _ \\ | '_ \\| '_ \\| | | |/ _` | | | | | | | | |/ _ \\ | / _ \\| '_ \\ |\n| / ___ \\| | | | | | | |_| | (_| | | | |___| | |_| | __/ |__| (_) | | | | |\n| /_/ \\_\\_| |_|_| |_|\\__,_|\\__,_|_| \\____|_|\\__,_|\\___|\\____\\___/|_| |_| |\n| |\n| ____ _____ ____ ____ __ |\n| | _ \\_ _/ ___| / ___|___ _ __ / _| ___ _ __ ___ _ __ ___ ___ |\n| | |_) || || | | | / _ \\| '_ \\| |_ / _ \\ '__/ _ \\ '_ \\ / __/ _ \\ |\n| | _ < | || |___ | |__| (_) | | | | _| __/ | | __/ | | | (_| __/ |\n| |_| \\_\\|_| \\____| \\____\\___/|_| |_|_| \\___|_| \\___|_| |_|\\___\\___| |\n| |\n| ____ _ ____ |\n| / ___| |_ _ ___ / ___|___ _ __ ___ ___ _ __ ___ |\n| | | | | | | |/ _ \\ | / _ \\| '_ \\ / __/ _ \\| '_ ` _ \\ |\n| | |___| | |_| | __/ |__| (_) | | | | _ | (_| (_) | | | | | | |\n| \\____|_|\\__,_|\\___|\\____\\___/|_| |_| (_) \\___\\___/|_| |_| |_| |\n| |\n.=======================================================================================================.\n";
const char *cc_s = ".===============================================================.\n| _ |\n| ___| |_ _ ___ ___ ___ _ __ ___ ___ _ __ ___ |\n| / __| | | | |/ _ \\/ __/ _ \\| '_ \\ / __/ _ \\| '_ ` _ \\ |\n| | (__| | |_| | __/ (_| (_) | | | | _ | (_| (_) | | | | | | |\n| \\___|_|\\__,_|\\___|\\___\\___/|_| |_| (_) \\___\\___/|_| |_| |_| |\n| |\n.===============================================================.\n";
+1 -1
View File
@@ -909,7 +909,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_phrase_macro_event(switch_core_sessio
#define switch_ivr_phrase_macro(session, macro_name, data, lang, args) switch_ivr_phrase_macro_event(session, macro_name, data, NULL, lang, args)
SWITCH_DECLARE(void) switch_ivr_delay_echo(switch_core_session_t *session, uint32_t delay_ms);
SWITCH_DECLARE(switch_status_t) switch_ivr_find_bridged_uuid(const char *uuid, char *b_uuid, switch_size_t blen);
SWITCH_DECLARE(void) switch_ivr_intercept_session(switch_core_session_t *session, const char *uuid, switch_bool_t bleg);
SWITCH_DECLARE(switch_status_t) switch_ivr_intercept_session(switch_core_session_t *session, const char *uuid, switch_bool_t bleg);
SWITCH_DECLARE(void) switch_ivr_park_session(switch_core_session_t *session);
SWITCH_DECLARE(switch_status_t) switch_ivr_wait_for_answer(switch_core_session_t *session, switch_core_session_t *peer_session);
+55
View File
@@ -1084,6 +1084,61 @@ static inline int32_t switch_parse_bandwidth_string(const char *bwv)
return (int32_t) roundf(bw);
}
static inline uint32_t switch_parse_cpu_string(const char *cpu)
{
int cpu_count = switch_core_cpu_count();
int ncpu = cpu_count;
if (!cpu) return 1;
if (!strcasecmp(cpu, "auto")) {
if (cpu_count > 4) return 4;
if (cpu_count <= 2) return 1;
return (uint32_t)(cpu_count / 2);
}
if (!strncasecmp(cpu, "cpu/", 4)) { /* cpu/2 or cpu/2/<max> */
const char *has_max = cpu;
float divisor;
int max = cpu_count;
cpu +=4;
has_max = strchr(cpu, '/');
if (has_max > cpu) {
max = atoi(has_max + 1);
}
divisor = (float)atof(cpu);
if (divisor <= 0) divisor = 1;
ncpu = (int)(cpu_count / divisor);
if (ncpu <= 0) return 1;
if (ncpu > max) return (uint32_t)max;
return (uint32_t)ncpu;
} else if (!strcasecmp(cpu, "cpu")) {
ncpu = cpu_count;
} else {
ncpu = atoi(cpu);
if (cpu && strrchr(cpu, '%')) {
ncpu = (int) (cpu_count * ((float)ncpu / 100));
}
}
if (ncpu > cpu_count) return (uint32_t)cpu_count;
if (ncpu <= 0) return 1;
return ncpu;
}
static inline int switch_needs_url_encode(const char *s)
{
const char hex[] = "0123456789ABCDEF";
@@ -0,0 +1,145 @@
<configuration name="avcodec.conf" description="AVCodec Config">
<settings>
<!-- max bitrate the system support, truncate if over limit -->
<!-- <param name="max-bitrate" value="5mb"/> -->
<!-- <param name="rtp-slice-size" value="1200"/> -->
<!-- minimum time to generate a new key frame in ms /> -->
<!-- <param name="key-frame-min-freq" value="250"/> -->
<!-- integer of cpus, or 'auto', or 'cpu/<divisor>/<max> -->
<param name="dec-threads" value="cpu/2/4"/>
<param name="enc-threads" value="cpu/2/4"/>
<param name="h263-profile" value="H263"/>
<param name="h263+-profile" value="H263+"/>
<param name="h264-profile" value="H264"/>
<param name="h265-profile" value="H265"/>
</settings>
<profiles>
<profile name="H263">
</profile>
<profile name="H263+">
</profile>
<profile name="H264">
<!-- <param name="dec-threads" value="cpu/2/4"/> -->
<!-- <param name="enc-threads" value="1"/> -->
<!-- <param name="profile" value="2"/> -->
<!-- <param name="level" value="41"/> -->
<!-- <param name="timebase" value="1/90"/> -->
<!--
#define AV_CODEC_FLAG_UNALIGNED (1 << 0)
#define AV_CODEC_FLAG_QSCALE (1 << 1)
#define AV_CODEC_FLAG_4MV (1 << 2)
#define AV_CODEC_FLAG_OUTPUT_CORRUPT (1 << 3)
#define AV_CODEC_FLAG_QPEL (1 << 4)
#define AV_CODEC_FLAG_PASS1 (1 << 9)
#define AV_CODEC_FLAG_PASS2 (1 << 10)
#define AV_CODEC_FLAG_LOOP_FILTER (1 << 11)
#define AV_CODEC_FLAG_GRAY (1 << 13)
#define AV_CODEC_FLAG_PSNR (1 << 15)
#define AV_CODEC_FLAG_TRUNCATED (1 << 16)
#define AV_CODEC_FLAG_INTERLACED_DCT (1 << 18)
#define AV_CODEC_FLAG_LOW_DELAY (1 << 19)
#define AV_CODEC_FLAG_GLOBAL_HEADER (1 << 22)
#define AV_CODEC_FLAG_BITEXACT (1 << 23)
#define AV_CODEC_FLAG_AC_PRED (1 << 24)
#define AV_CODEC_FLAG_INTERLACED_ME (1 << 29)
#define AV_CODEC_FLAG_CLOSED_GOP (1U << 31)
-->
<param name="flags" value="LOOP_FILTER|PSNR"/>
<!--
#define FF_CMP_SAD 0
#define FF_CMP_SSE 1
#define FF_CMP_SATD 2
#define FF_CMP_DCT 3
#define FF_CMP_PSNR 4
#define FF_CMP_BIT 5
#define FF_CMP_RD 6
#define FF_CMP_ZERO 7
#define FF_CMP_VSAD 8
#define FF_CMP_VSSE 9
#define FF_CMP_NSSE 10
#define FF_CMP_W53 11
#define FF_CMP_W97 12
#define FF_CMP_DCTMAX 13
#define FF_CMP_DCT264 14
#define FF_CMP_MEDIAN_SAD 15
#define FF_CMP_CHROMA 256
-->
<!-- <param name="me-cmp" value="1"/> -->
<!-- <param name="me-range" value="16"/> -->
<!-- <param name="max-b-frames" value="3"/> -->
<!-- <param name="refs" value="3"/> -->
<!-- <param name="gop-size" value="250"/> -->
<!-- <param name="keyint-min" value="25"/> -->
<!-- <param name="i-quant-factor" value="0.71"/> -->
<!-- <param name="b-quant-factor" value="0.76923078"/> -->
<!-- <param name="qcompress" value="0.6"/> -->
<!-- <param name="qmin" value="10"/> -->
<!-- <param name="qmax" value="51"/> -->
<!-- <param name="max-qdiff" value="4"/> -->
<!--
enum AVColorSpace {
AVCOL_SPC_RGB = 0, ///< order of coefficients is actually GBR, also IEC 61966-2-1 (sRGB)
AVCOL_SPC_BT709 = 1, ///< also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / SMPTE RP177 Annex B
AVCOL_SPC_UNSPECIFIED = 2,
AVCOL_SPC_RESERVED = 3,
AVCOL_SPC_FCC = 4, ///< FCC Title 47 Code of Federal Regulations 73.682 (a)(20)
AVCOL_SPC_BT470BG = 5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601
AVCOL_SPC_SMPTE170M = 6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC
AVCOL_SPC_SMPTE240M = 7, ///< functionally identical to above
AVCOL_SPC_YCGCO = 8, ///< Used by Dirac / VC-2 and H.264 FRext, see ITU-T SG16
AVCOL_SPC_YCOCG = AVCOL_SPC_YCGCO,
AVCOL_SPC_BT2020_NCL = 9, ///< ITU-R BT2020 non-constant luminance system
AVCOL_SPC_BT2020_CL = 10, ///< ITU-R BT2020 constant luminance system
AVCOL_SPC_SMPTE2085 = 11, ///< SMPTE 2085, Y'D'zD'x
AVCOL_SPC_CHROMA_DERIVED_NCL = 12, ///< Chromaticity-derived non-constant luminance system
AVCOL_SPC_CHROMA_DERIVED_CL = 13, ///< Chromaticity-derived constant luminance system
AVCOL_SPC_ICTCP = 14, ///< ITU-R BT.2100-0, ICtCp
AVCOL_SPC_NB ///< Not part of ABI
};
-->
<param name="colorspace" value="0"/>
<!--
enum AVColorRange {
AVCOL_RANGE_UNSPECIFIED = 0,
AVCOL_RANGE_MPEG = 1, ///< the normal 219*2^(n-8) "MPEG" YUV ranges
AVCOL_RANGE_JPEG = 2, ///< the normal 2^n-1 "JPEG" YUV ranges
AVCOL_RANGE_NB ///< Not part of ABI
};
-->
<param name="color-range" value="2"/>
<!-- x264 private options-->
<options>
<option name="preset" value="veryfast"/>
<option name="intra_refresh" value="1"/>
<option name="tune" value="animation+zerolatency"/>
<option name="sc_threshold" value="40"/>
<option name="b_strategy" value="1"/>
<option name="crf" value="18"/>
</options>
</profile>
<profile name="H265">
</profile>
</profiles>
</configuration>
<configuration name="avformat.conf" description="AVFormat Config">
<settings>
</settings>
</configuration>
+464 -54
View File
@@ -38,12 +38,15 @@
#include <libavutil/opt.h>
#include <libavutil/imgutils.h>
#define SLICE_SIZE SWITCH_DEFAULT_VIDEO_SIZE
int SLICE_SIZE = SWITCH_DEFAULT_VIDEO_SIZE;
#define H264_NALU_BUFFER_SIZE 65536
#define MAX_NALUS 128
#define MAX_NALUS 256
#define H263_MODE_B // else Mode A only
#define KEY_FRAME_MIN_FREQ 250000
SWITCH_MODULE_LOAD_FUNCTION(mod_avcodec_load);
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_avcodec_shutdown);
/* ff_avc_find_startcode is not exposed in the ffmpeg lib but you can use it
Either include the avc.h which available in the ffmpeg source, or
@@ -194,6 +197,48 @@ typedef struct h264_codec_context_s {
static uint8_t ff_input_buffer_padding[FF_INPUT_BUFFER_PADDING_SIZE] = { 0 };
#define MAX_CODECS 4
typedef struct avcodec_profile_s {
char name[20];
int decoder_thread_count;
AVCodecContext ctx;
switch_event_t *options;
} avcodec_profile_t;
struct avcodec_globals {
int debug;
uint32_t max_bitrate;
uint32_t rtp_slice_size;
uint32_t key_frame_min_freq;
avcodec_profile_t profiles[MAX_CODECS];
};
struct avcodec_globals avcodec_globals = { 0 };
char *CODEC_MAPS[] = {
"H263",
"H263+",
"H264",
"H265",
NULL
};
static int get_codec_index(const char *cstr)
{
int i;
for (i = 0; ; i++) {
if (!strcasecmp(cstr, CODEC_MAPS[i])) {
return i;
}
}
abort();
return -1;
}
static switch_status_t buffer_h264_nalu(h264_codec_context_t *context, switch_frame_t *frame)
{
uint8_t nalu_type = 0;
@@ -827,9 +872,9 @@ static switch_status_t consume_nalu(h264_codec_context_t *context, switch_frame_
static switch_status_t open_encoder(h264_codec_context_t *context, uint32_t width, uint32_t height)
{
int sane = 0;
int threads = switch_core_cpu_count();
int fps = 15;
avcodec_profile_t *profile = NULL;
#ifdef NVENC_SUPPORT
if (!context->encoder) {
if (context->av_codec_id == AV_CODEC_ID_H264) {
@@ -859,6 +904,20 @@ static switch_status_t open_encoder(h264_codec_context_t *context, uint32_t widt
return SWITCH_STATUS_FALSE;
}
if (context->av_codec_id == AV_CODEC_ID_H263) {
profile = &avcodec_globals.profiles[get_codec_index("H263")];
} else if (context->av_codec_id == AV_CODEC_ID_H263P) {
profile = &avcodec_globals.profiles[get_codec_index("H263+")];
} else if (context->av_codec_id == AV_CODEC_ID_H264) {
profile = &avcodec_globals.profiles[get_codec_index("H264")];
#ifdef AV_CODEC_ID_H265
} else if (context->av_codec_id == AV_CODEC_ID_H265) {
profile = &avcodec_globals.profiles[get_codec_index("H265")];
#endif
}
if (!profile) return SWITCH_STATUS_FALSE;
if (context->encoder_ctx) {
if (avcodec_is_open(context->encoder_ctx)) {
avcodec_close(context->encoder_ctx);
@@ -895,28 +954,31 @@ static switch_status_t open_encoder(h264_codec_context_t *context, uint32_t widt
context->bandwidth = switch_calc_bitrate(context->codec_settings.video.width, context->codec_settings.video.height, 1, fps);
}
sane = switch_calc_bitrate(1920, 1080, 3, 60);
if (context->bandwidth > sane) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "BITRATE TRUNCATED TO %d\n", sane);
context->bandwidth = sane;
if (context->bandwidth > avcodec_globals.max_bitrate) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "BITRATE TRUNCATED TO %d\n", avcodec_globals.max_bitrate);
context->bandwidth = avcodec_globals.max_bitrate;
}
if (threads > 4) threads = 4;
context->bandwidth *= 4;
context->bandwidth *= 3;
fps = context->codec_settings.video.fps;
if (!fps) fps = 20;
context->encoder_ctx->bit_rate = context->bandwidth * 1024;
context->encoder_ctx->rc_min_rate = context->encoder_ctx->bit_rate;
context->encoder_ctx->rc_max_rate = context->encoder_ctx->bit_rate;
context->encoder_ctx->rc_buffer_size = context->encoder_ctx->bit_rate;
context->encoder_ctx->qcompress = 0.6;
context->encoder_ctx->gop_size = 1000;
context->encoder_ctx->keyint_min = 1000;
context->encoder_ctx->width = context->codec_settings.video.width;
context->encoder_ctx->height = context->codec_settings.video.height;
/* frames per second */
context->encoder_ctx->time_base = (AVRational){1, 90};
context->encoder_ctx->max_b_frames = 0;
context->encoder_ctx->max_b_frames = profile->ctx.max_b_frames;
context->encoder_ctx->pix_fmt = AV_PIX_FMT_YUV420P;
context->encoder_ctx->thread_count = threads;
context->encoder_ctx->rc_max_rate = context->bandwidth * 1024;
context->encoder_ctx->rc_buffer_size = context->bandwidth * 1024 * 4;
context->encoder_ctx->thread_count = profile->ctx.thread_count;
if (context->av_codec_id == AV_CODEC_ID_H263 || context->av_codec_id == AV_CODEC_ID_H263P) {
#ifndef H263_MODE_B
@@ -934,48 +996,41 @@ FF_DISABLE_DEPRECATION_WARNINGS
context->encoder_ctx->rtp_callback = rtp_callback;
FF_ENABLE_DEPRECATION_WARNINGS
#endif
context->encoder_ctx->rc_min_rate = context->encoder_ctx->rc_max_rate;
context->encoder_ctx->opaque = context;
av_opt_set_int(context->encoder_ctx->priv_data, "mb_info", SLICE_SIZE - 8, 0);
} else if (context->av_codec_id == AV_CODEC_ID_H264) {
context->encoder_ctx->profile = FF_PROFILE_H264_BASELINE;
context->encoder_ctx->level = 31;
context->encoder_ctx->profile = profile->ctx.profile;
context->encoder_ctx->level = profile->ctx.level;
if (context->hw_encoder) {
av_opt_set(context->encoder_ctx->priv_data, "preset", "llhp", 0);
av_opt_set_int(context->encoder_ctx->priv_data, "2pass", 1, 0);
} else {
av_opt_set_int(context->encoder_ctx->priv_data, "intra-refresh", 1, 0);
av_opt_set(context->encoder_ctx->priv_data, "preset", "veryfast", 0);
av_opt_set(context->encoder_ctx->priv_data, "tune", "animation+zerolatency", 0);
av_opt_set(context->encoder_ctx->priv_data, "profile", "baseline", 0);
av_opt_set_int(context->encoder_ctx->priv_data, "slice-max-size", SLICE_SIZE, 0);
if (profile->options) {
switch_event_header_t *hp;
context->encoder_ctx->colorspace = AVCOL_SPC_RGB;
context->encoder_ctx->color_range = AVCOL_RANGE_JPEG;
for (hp = profile->options->headers; hp; hp = hp->next) {
// switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s: %s\n", hp->name, hp->value);
av_opt_set(context->encoder_ctx->priv_data, hp->name, hp->value, 0);
}
}
/*
av_opt_set_int(context->encoder_ctx->priv_data, "sc_threshold", 40, 0);
av_opt_set_int(context->encoder_ctx->priv_data, "b_strategy", 1, 0);
av_opt_set_int(context->encoder_ctx->priv_data, "crf", 18, 0);
context->encoder_ctx->colorspace = profile->ctx.colorspace;
context->encoder_ctx->color_range = profile->ctx.color_range;
// libx264-medium.ffpreset preset
context->encoder_ctx->flags|=CODEC_FLAG_LOOP_FILTER; // flags=+loop
context->encoder_ctx->me_cmp|= 1; // cmp=+chroma, where CHROMA = 1
context->encoder_ctx->me_range = 21; // me_range=16
context->encoder_ctx->max_b_frames = 3; // bf=3
//context->encoder_ctx->refs = 3; // refs=3
context->encoder_ctx->gop_size = 250; // g=250
context->encoder_ctx->keyint_min = 25; // keyint_min=25
context->encoder_ctx->i_quant_factor = 0.71; // i_qfactor=0.71
context->encoder_ctx->b_quant_factor = 0.76923078; // Qscale difference between P-frames and B-frames.
context->encoder_ctx->qcompress = 0;//0.6; // qcomp=0.6
context->encoder_ctx->qmin = 10; // qmin=10
context->encoder_ctx->qmax = 51; // qmax=51
context->encoder_ctx->max_qdiff = 4; // qdiff=4
*/
context->encoder_ctx->flags |= profile->ctx.flags; // CODEC_FLAG_LOOP_FILTER; // flags=+loop
if (profile->ctx.me_cmp >= 0) context->encoder_ctx->me_cmp = profile->ctx.me_cmp; // cmp=+chroma, where CHROMA = 1
if (profile->ctx.me_range >= 0) context->encoder_ctx->me_range = profile->ctx.me_range;
if (profile->ctx.max_b_frames >= 0) context->encoder_ctx->max_b_frames = profile->ctx.max_b_frames;
if (profile->ctx.refs >= 0) context->encoder_ctx->refs = profile->ctx.refs;
if (profile->ctx.gop_size >= 0) context->encoder_ctx->gop_size = profile->ctx.gop_size;
if (profile->ctx.keyint_min >= 0) context->encoder_ctx->keyint_min = profile->ctx.keyint_min;
if (profile->ctx.i_quant_factor >= 0) context->encoder_ctx->i_quant_factor = profile->ctx.i_quant_factor;
if (profile->ctx.b_quant_factor >= 0) context->encoder_ctx->b_quant_factor = profile->ctx.b_quant_factor;
if (profile->ctx.qcompress >= 0) context->encoder_ctx->qcompress = profile->ctx.qcompress;
if (profile->ctx.qmin >= 0) context->encoder_ctx->qmin = profile->ctx.qmin;
if (profile->ctx.qmax >= 0) context->encoder_ctx->qmax = profile->ctx.qmax;
if (profile->ctx.max_qdiff >= 0) context->encoder_ctx->max_qdiff = profile->ctx.max_qdiff;
}
}
@@ -991,7 +1046,7 @@ static switch_status_t switch_h264_init(switch_codec_t *codec, switch_codec_flag
{
int encoding, decoding;
h264_codec_context_t *context = NULL;
int threads = switch_core_cpu_count();
avcodec_profile_t *profile = NULL;
encoding = (flags & SWITCH_CODEC_FLAG_ENCODE);
decoding = (flags & SWITCH_CODEC_FLAG_DECODE);
@@ -1014,12 +1069,17 @@ static switch_status_t switch_h264_init(switch_codec_t *codec, switch_codec_flag
if (!strcmp(codec->implementation->iananame, "H263")) {
context->av_codec_id = AV_CODEC_ID_H263;
profile = &avcodec_globals.profiles[get_codec_index("H263")];
} else if (!strcmp(codec->implementation->iananame, "H263-1998")) {
context->av_codec_id = AV_CODEC_ID_H263P;
profile = &avcodec_globals.profiles[get_codec_index("H263+")];
} else {
context->av_codec_id = AV_CODEC_ID_H264;
profile = &avcodec_globals.profiles[get_codec_index("H264")];
}
switch_assert(profile);
if (decoding) {
context->decoder = avcodec_find_decoder(context->av_codec_id);
@@ -1034,11 +1094,9 @@ static switch_status_t switch_h264_init(switch_codec_t *codec, switch_codec_flag
}
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "codec: id=%d %s\n", context->decoder->id, context->decoder->long_name);
if (threads > 4) threads = 4;
context->decoder_ctx = avcodec_alloc_context3(context->decoder);
//context->decoder_ctx->thread_count = threads;
context->decoder_ctx->thread_count = profile->decoder_thread_count;
if (avcodec_open2(context->decoder_ctx, context->decoder, NULL) < 0) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error openning codec\n");
goto error;
@@ -1239,6 +1297,10 @@ GCC_DIAG_ON(deprecated-declarations)
while (!(*p++)) ; /* eat the sync bytes, what ever 0 0 1 or 0 0 0 1 */
context->nalus[i].start = p;
context->nalus[i].eat = p;
if (mod_av_globals.debug && (*p & 0x1f) == 7) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "KEY FRAME GENERATED\n");
}
} else {
context->nalus[i].len = p - context->nalus[i].start;
while (!(*p++)) ; /* eat the sync bytes, what ever 0 0 1 or 0 0 0 1 */
@@ -1550,10 +1612,343 @@ void show_codecs(switch_stream_handle_t *stream)
av_free(codecs);
}
#define UINTVAL(v) (v > 0 ? v : 0);
static void load_config()
{
switch_xml_t cfg = NULL, xml = NULL;
int i;
switch_set_string(avcodec_globals.profiles[get_codec_index("H263")].name, "H263");
switch_set_string(avcodec_globals.profiles[get_codec_index("H263+")].name, "H263+");
switch_set_string(avcodec_globals.profiles[get_codec_index("H264")].name, "H264");
switch_set_string(avcodec_globals.profiles[get_codec_index("H265")].name, "H265");
for (i = 0; i < MAX_CODECS; i++) {
avcodec_profile_t *profile = &avcodec_globals.profiles[i];
profile->ctx.colorspace = AVCOL_SPC_RGB;
profile->ctx.color_range = AVCOL_RANGE_JPEG;
profile->ctx.flags = 0;
profile->ctx.me_cmp = -1;
profile->ctx.me_range = -1;
profile->ctx.max_b_frames = -1;
profile->ctx.refs = -1;
profile->ctx.gop_size = -1;
profile->ctx.keyint_min = -1;
profile->ctx.i_quant_factor = -1;
profile->ctx.b_quant_factor = -1;
profile->ctx.qcompress = -1;
profile->ctx.qmin = -1;
profile->ctx.qmax = -1;
profile->ctx.max_qdiff = -1;
if (!strcasecmp(CODEC_MAPS[i], "H264")) {
profile->ctx.profile = FF_PROFILE_H264_BASELINE;
profile->ctx.level = 41;
}
}
avcodec_globals.max_bitrate = 0;
xml = switch_xml_open_cfg("avcodec.conf", &cfg, NULL);
if (xml) {
switch_xml_t settings = switch_xml_child(cfg, "settings");
switch_xml_t profiles = switch_xml_child(cfg, "profiles");
if (settings) {
switch_xml_t param;
for (param = switch_xml_child(settings, "param"); param; param = param->next) {
const char *name = switch_xml_attr(param, "name");
const char *value = switch_xml_attr(param, "value");
if (zstr(name) || zstr(value)) continue;
if (!strcmp(name, "max-bitrate")) {
avcodec_globals.max_bitrate = switch_parse_bandwidth_string(value);
} else if (!strcmp(name, "rtp-slice-size")) {
int val = atoi(value);
avcodec_globals.rtp_slice_size = UINTVAL(val);
} else if (!strcmp(name, "key-frame-min-freq")) {
int val = atoi(value);
avcodec_globals.key_frame_min_freq = UINTVAL(val);
avcodec_globals.key_frame_min_freq *= 1000;
} else if (!strcmp(name, "dec-threads")) {
int i;
uint threads = switch_parse_cpu_string(value);
for (i = 0; i < MAX_CODECS; i++) {
avcodec_globals.profiles[i].decoder_thread_count = threads;
}
} else if (!strcmp(name, "enc-threads")) {
int i;
uint threads = switch_parse_cpu_string(value);
for (i = 0; i < MAX_CODECS; i++) {
avcodec_globals.profiles[i].ctx.thread_count = threads;
}
} else if (!strcasecmp(name, "h263-profile")) {
switch_set_string(avcodec_globals.profiles[get_codec_index("H263")].name, value);
} else if (!strcasecmp(name, "h263+-profile")) {
switch_set_string(avcodec_globals.profiles[get_codec_index("H263+")].name, value);
} else if (!strcasecmp(name, "h264-profile")) {
switch_set_string(avcodec_globals.profiles[get_codec_index("H264")].name, value);
} else if (!strcasecmp(name, "h265-profile")) {
switch_set_string(avcodec_globals.profiles[get_codec_index("H265")].name, value);
}
}
}
if (profiles) {
switch_xml_t profile = switch_xml_child(profiles, "profile");
for (; profile; profile = profile->next) {
switch_xml_t options = switch_xml_child(profile, "options");
switch_xml_t param = NULL;
const char *profile_name = switch_xml_attr(profile, "name");
avcodec_profile_t *aprofile = NULL;
AVCodecContext *ctx = NULL;
int i;
if (zstr(profile_name)) continue;
for (i = 0; i < MAX_CODECS; i++) {
if (!strcmp(profile_name, avcodec_globals.profiles[i].name)) {
aprofile = &avcodec_globals.profiles[i];
ctx = &aprofile->ctx;
break;
}
}
if (!ctx) continue;
for (param = switch_xml_child(profile, "param"); param; param = param->next) {
const char *name = switch_xml_attr(param, "name");
const char *value = switch_xml_attr(param, "value");
int val;
if (zstr(name) || zstr(value)) continue;
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s: %s = %s\n", profile_name, name, value);
val = atoi(value);
if (!strcmp(name, "dec-threads")) {
aprofile->decoder_thread_count = switch_parse_cpu_string(value);
} else if (!strcmp(name, "enc-threads")) {
ctx->thread_count = switch_parse_cpu_string(value);
} else if (!strcmp(name, "profile")) {
ctx->profile = UINTVAL(val);
if (ctx->profile == 0 && !strcasecmp(CODEC_MAPS[i], "H264")) {
if (!strcasecmp(value, "baseline")) {
ctx->profile = FF_PROFILE_H264_BASELINE;
} else if (!strcasecmp(value, "main")) {
ctx->profile = FF_PROFILE_H264_MAIN;
} else if (!strcasecmp(value, "high")) {
ctx->profile = FF_PROFILE_H264_HIGH;
}
}
} else if (!strcmp(name, "level")) {
ctx->level = UINTVAL(val);
} else if (!strcmp(name, "timebase")) {
int num = 0;
int den = 0;
char *slash = strchr(value, '/');
num = UINTVAL(val);
if (slash) {
slash++;
den = atoi(slash);
if (den < 0) den = 0;
}
if (num && den) {
ctx->time_base.num = num;
ctx->time_base.den = den;
}
} else if (!strcmp(name, "flags")) {
char *s = strdup(value);
int flags = 0;
if (s) {
int argc;
char *argv[20];
int i;
argc = switch_separate_string(s, '|', argv, (sizeof(argv) / sizeof(argv[0])));
for (i = 0; i < argc; i++) {
if (!strcasecmp(argv[i], "UNALIGNED")) {
#ifdef AV_CODEC_FLAG_UNALIGNED
flags |= AV_CODEC_FLAG_UNALIGNED;
#endif
} else if (!strcasecmp(argv[i], "QSCALE")) {
#ifdef AV_CODEC_FLAG_QSCALE
flags |= AV_CODEC_FLAG_QSCALE;
#endif
} else if (!strcasecmp(argv[i], "4MV")) {
#ifdef AV_CODEC_FLAG_4MV
flags |= AV_CODEC_FLAG_4MV;
#endif
} else if (!strcasecmp(argv[i], "CORRUPT")) {
#ifdef AV_CODEC_FLAG_OUTPUT_CORRUPT
flags |= AV_CODEC_FLAG_OUTPUT_CORRUPT;
#endif
} else if (!strcasecmp(argv[i], "QPEL")) {
#ifdef AV_CODEC_FLAG_QPEL
flags |= AV_CODEC_FLAG_QPEL;
#endif
} else if (!strcasecmp(argv[i], "PASS1")) {
#ifdef AV_CODEC_FLAG_PASS1
flags |= AV_CODEC_FLAG_PASS1;
#endif
} else if (!strcasecmp(argv[i], "PASS2")) {
#ifdef AV_CODEC_FLAG_PASS2
flags |= AV_CODEC_FLAG_PASS2;
#endif
} else if (!strcasecmp(argv[i], "FILTER")) {
#ifdef AV_CODEC_FLAG_LOOP_FILTER
flags |= AV_CODEC_FLAG_LOOP_FILTER;
#endif
} else if (!strcasecmp(argv[i], "GRAY")) {
#ifdef AV_CODEC_FLAG_GRAY
flags |= AV_CODEC_FLAG_GRAY;
#endif
} else if (!strcasecmp(argv[i], "PSNR")) {
#ifdef AV_CODEC_FLAG_PSNR
flags |= AV_CODEC_FLAG_PSNR;
#endif
} else if (!strcasecmp(argv[i], "TRUNCATED")) {
#ifdef AV_CODEC_FLAG_TRUNCATED
flags |= AV_CODEC_FLAG_TRUNCATED;
#endif
} else if (!strcasecmp(argv[i], "INTERLACED_DCT")) {
#ifdef AV_CODEC_FLAG_INTERLACED_DCT
flags |= AV_CODEC_FLAG_INTERLACED_DCT;
#endif
} else if (!strcasecmp(argv[i], "LOW_DELAY")) {
#ifdef AV_CODEC_FLAG_LOW_DELAY
flags |= AV_CODEC_FLAG_LOW_DELAY;
#endif
} else if (!strcasecmp(argv[i], "HEADER")) {
#ifdef AV_CODEC_FLAG_GLOBAL_HEADER
flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
#endif
} else if (!strcasecmp(argv[i], "BITEXACT")) {
#ifdef AV_CODEC_FLAG_BITEXACT
flags |= AV_CODEC_FLAG_BITEXACT;
#endif
} else if (!strcasecmp(argv[i], "AC_PRED")) {
#ifdef AV_CODEC_FLAG_AC_PRED
flags |= AV_CODEC_FLAG_AC_PRED;
#endif
} else if (!strcasecmp(argv[i], "INTERLACED_ME")) {
#ifdef AV_CODEC_FLAG_INTERLACED_ME
flags |= AV_CODEC_FLAG_INTERLACED_ME;
#endif
} else if (!strcasecmp(argv[i], "CLOSED_GOP")) {
#ifdef AV_CODEC_FLAG_CLOSED_GOP
flags |= AV_CODEC_FLAG_CLOSED_GOP;
#endif
}
}
free(s);
ctx->flags = flags;
}
} else if (!strcmp(name, "me-cmp")) {
ctx->me_cmp = UINTVAL(val);
} else if (!strcmp(name, "me-range")) {
ctx->me_range = UINTVAL(val);
} else if (!strcmp(name, "max-b-frames")) {
ctx->max_b_frames = UINTVAL(val);
} else if (!strcmp(name, "refs")) {
ctx->refs = UINTVAL(val);
} else if (!strcmp(name, "gop-size")) {
ctx->gop_size = UINTVAL(val);
} else if (!strcmp(name, "keyint-min")) {
ctx->keyint_min = UINTVAL(val);
} else if (!strcmp(name, "i-quant-factor")) {
ctx->i_quant_factor = UINTVAL(val);
} else if (!strcmp(name, "b-quant-factor")) {
ctx->b_quant_factor = UINTVAL(val);
} else if (!strcmp(name, "qcompress")) {
ctx->qcompress = UINTVAL(val);
} else if (!strcmp(name, "qmin")) {
ctx->qmin = UINTVAL(val);
} else if (!strcmp(name, "qmax")) {
ctx->qmax = UINTVAL(val);
} else if (!strcmp(name, "max-qdiff")) {
ctx->max_qdiff = UINTVAL(val);
} else if (!strcmp(name, "colorspace")) {
ctx->colorspace = UINTVAL(val);
if (ctx->colorspace > AVCOL_SPC_NB) {
ctx->colorspace = AVCOL_SPC_RGB;
}
} else if (!strcmp(name, "color-range")) {
ctx->color_range = UINTVAL(val);
if (ctx->color_range > AVCOL_RANGE_NB) {
ctx->color_range = 0;
}
}
} // for param
if (options) {
switch_xml_t option = switch_xml_child(options, "option");
if (aprofile->options) {
switch_event_destroy(&aprofile->options);
}
switch_event_create(&aprofile->options, SWITCH_EVENT_CLONE);
aprofile->options->flags |= EF_UNIQ_HEADERS;
for (; option; option = option->next) {
const char *name = switch_xml_attr(option, "name");
const char *value = switch_xml_attr(option, "value");
if (zstr(name) || zstr(value)) continue;
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s: %s\n", name, value);
switch_event_add_header_string(aprofile->options, SWITCH_STACK_BOTTOM, name, value);
}
} // for options
} // for profile
} // profiles
switch_xml_free(xml);
} // xml
if (avcodec_globals.max_bitrate <= 0) {
avcodec_globals.max_bitrate = switch_calc_bitrate(1920, 1080, 5, 60);
}
if (avcodec_globals.rtp_slice_size < 500 || avcodec_globals.rtp_slice_size > 1500) {
avcodec_globals.rtp_slice_size = SWITCH_DEFAULT_VIDEO_SIZE;
}
SLICE_SIZE = avcodec_globals.rtp_slice_size;
if (avcodec_globals.key_frame_min_freq < 10000 || avcodec_globals.key_frame_min_freq > 3 * 1000000) {
avcodec_globals.key_frame_min_freq = KEY_FRAME_MIN_FREQ;
}
}
SWITCH_MODULE_LOAD_FUNCTION(mod_avcodec_load)
{
switch_codec_interface_t *codec_interface;
memset(&avcodec_globals, 0, sizeof(struct avcodec_globals));
load_config();
SWITCH_ADD_CODEC(codec_interface, "H264 Video");
switch_core_codec_add_video_implementation(pool, codec_interface, 99, "H264", NULL,
switch_h264_init, switch_h264_encode, switch_h264_decode, switch_h264_control, switch_h264_destroy);
@@ -1570,6 +1965,21 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_avcodec_load)
return SWITCH_STATUS_SUCCESS;
}
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_avcodec_shutdown)
{
int i;
for (i = 0; i < MAX_CODECS; i++) {
avcodec_profile_t *profile = &avcodec_globals.profiles[i];
if (profile->options) {
switch_event_destroy(&profile->options);
}
}
return SWITCH_STATUS_SUCCESS;
}
/* For Emacs:
* Local Variables:
* mode:c
+2
View File
@@ -38,6 +38,7 @@
SWITCH_MODULE_LOAD_FUNCTION(mod_avformat_load);
SWITCH_MODULE_LOAD_FUNCTION(mod_avcodec_load);
SWITCH_MODULE_LOAD_FUNCTION(mod_av_load);
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_avcodec_shutdown);
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_av_shutdown);
SWITCH_MODULE_DEFINITION(mod_av, mod_av_load, mod_av_shutdown, NULL);
@@ -124,6 +125,7 @@ static void log_callback(void *ptr, int level, const char *fmt, va_list vl)
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_av_shutdown)
{
mod_avcodec_shutdown();
avformat_network_deinit();
av_log_set_callback(NULL);
av_lockmgr_register(NULL);
@@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Header Files">
<UniqueIdentifier>{4ad6c9d4-436e-451a-8455-2cfce963ef3c}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="avmd_amplitude.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="avmd_buffer.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="avmd_desa2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="avmd_fast_acosf.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="avmd_goertzel.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="avmd_options.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="avmd_psi.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="avmd_sma_buf.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="avmd_amplitude.c" />
<ClCompile Include="avmd_buffer.c" />
<ClCompile Include="avmd_desa2.c" />
<ClCompile Include="avmd_fast_acosf.c" />
<ClCompile Include="avmd_goertzel.c" />
<ClCompile Include="mod_avmd.c" />
</ItemGroup>
</Project>
@@ -4435,6 +4435,44 @@ SWITCH_STANDARD_API(uuid_video_bitrate_function)
return SWITCH_STATUS_SUCCESS;
}
#define VIDEO_BITRATE_SYNTAX "<uuid> <bitrate>"
SWITCH_STANDARD_API(uuid_video_bandwidth_function)
{
switch_status_t status = SWITCH_STATUS_FALSE;
char *mycmd = NULL, *argv[2] = { 0 };
int argc = 0;
if (!zstr(cmd) && (mycmd = strdup(cmd))) {
argc = switch_separate_string(mycmd, ' ', argv, (sizeof(argv) / sizeof(argv[0])));
}
if (argc < 2) {
stream->write_function(stream, "-USAGE: %s\n", VIDEO_REFRESH_SYNTAX);
} else {
switch_core_session_t *lsession = NULL;
if ((lsession = switch_core_session_locate(argv[0]))) {
int kps;
kps = switch_parse_bandwidth_string(argv[1]);
switch_core_media_set_outgoing_bitrate(lsession, SWITCH_MEDIA_TYPE_VIDEO, kps);
status = SWITCH_STATUS_SUCCESS;
switch_core_session_rwunlock(lsession);
}
}
if (status == SWITCH_STATUS_SUCCESS) {
stream->write_function(stream, "+OK Success\n");
} else {
stream->write_function(stream, "-ERR Operation Failed\n");
}
switch_safe_free(mycmd);
return SWITCH_STATUS_SUCCESS;
}
#define CODEC_DEBUG_SYNTAX "<uuid> audio|video <level>"
SWITCH_STANDARD_API(uuid_codec_debug_function)
{
@@ -7496,6 +7534,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_commands_load)
SWITCH_ADD_API(commands_api_interface, "uuid_send_info", "Send info to the endpoint", uuid_send_info_function, INFO_SYNTAX);
SWITCH_ADD_API(commands_api_interface, "uuid_set_media_stats", "Set media stats", uuid_set_media_stats, UUID_MEDIA_STATS_SYNTAX);
SWITCH_ADD_API(commands_api_interface, "uuid_video_bitrate", "Send video bitrate req.", uuid_video_bitrate_function, VIDEO_BITRATE_SYNTAX);
SWITCH_ADD_API(commands_api_interface, "uuid_video_bandwidth", "Send video bandwidth", uuid_video_bandwidth_function, VIDEO_BITRATE_SYNTAX);
SWITCH_ADD_API(commands_api_interface, "uuid_video_refresh", "Send video refresh.", uuid_video_refresh_function, VIDEO_REFRESH_SYNTAX);
SWITCH_ADD_API(commands_api_interface, "uuid_outgoing_answer", "Answer outgoing channel", outgoing_answer_function, OUTGOING_ANSWER_SYNTAX);
SWITCH_ADD_API(commands_api_interface, "uuid_limit", "Increase limit resource", uuid_limit_function, LIMIT_SYNTAX);
@@ -7719,6 +7758,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_commands_load)
switch_console_set_complete("add uuid_dual_transfer ::console::list_uuid");
switch_console_set_complete("add uuid_video_refresh ::console::list_uuid");
switch_console_set_complete("add uuid_video_bitrate ::console::list_uuid");
switch_console_set_complete("add uuid_video_bandwidth ::console::list_uuid");
switch_console_set_complete("add uuid_xfer_zombie ::console::list_uuid");
switch_console_set_complete("add version");
switch_console_set_complete("add uuid_warning ::console::list_uuid");
@@ -78,7 +78,9 @@ void conference_al_gen_arc(conference_obj_t *conference, switch_stream_handle_t
switch_mutex_lock(conference->member_mutex);
for (member = conference->members; member; member = member->next) {
if (member->channel && conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK) && !conference_utils_member_test_flag(member, MFLAG_NO_POSITIONAL)) {
if (member->channel && conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK) &&
!conference_utils_member_test_flag(member, MFLAG_HOLD) &&
!conference_utils_member_test_flag(member, MFLAG_NO_POSITIONAL)) {
count++;
}
}
@@ -112,7 +114,9 @@ void conference_al_gen_arc(conference_obj_t *conference, switch_stream_handle_t
for (member = conference->members; member; member = member->next) {
if (!member->channel || conference_utils_member_test_flag(member, MFLAG_NO_POSITIONAL) || !conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK)) {
if (!member->channel || conference_utils_member_test_flag(member, MFLAG_NO_POSITIONAL) ||
conference_utils_member_test_flag(member, MFLAG_HOLD) ||
!conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK)) {
continue;
}
@@ -72,6 +72,8 @@ api_command_t conference_api_sub_commands[] = {
{"vid-flip", (void_fn_t) & conference_api_sub_vid_flip, CONF_API_SUB_MEMBER_TARGET, "vid-flip", "<[member_id|all|last|non_moderator]>"},
{"vid-border", (void_fn_t) & conference_api_sub_vid_border, CONF_API_SUB_MEMBER_TARGET, "vid-border", "<[member_id|all|last|non_moderator]>"},
{"hup", (void_fn_t) & conference_api_sub_hup, CONF_API_SUB_MEMBER_TARGET, "hup", "<[member_id|all|last|non_moderator]>"},
{"hold", (void_fn_t) & conference_api_sub_hold, CONF_API_SUB_MEMBER_TARGET, "hold", "<[member_id|all]|last|non_moderator> [file]"},
{"unhold", (void_fn_t) & conference_api_sub_unhold, CONF_API_SUB_MEMBER_TARGET, "unhold", "<[member_id|all]|last|non_moderator>"},
{"mute", (void_fn_t) & conference_api_sub_mute, CONF_API_SUB_MEMBER_TARGET, "mute", "<[member_id|all]|last|non_moderator> [<quiet>]"},
{"tmute", (void_fn_t) & conference_api_sub_tmute, CONF_API_SUB_MEMBER_TARGET, "tmute", "<[member_id|all]|last|non_moderator> [<quiet>]"},
{"unmute", (void_fn_t) & conference_api_sub_unmute, CONF_API_SUB_MEMBER_TARGET, "unmute", "<[member_id|all]|last|non_moderator> [<quiet>]"},
@@ -313,6 +315,11 @@ switch_status_t conference_api_sub_mute(conference_member_t *member, switch_stre
if (member == NULL)
return SWITCH_STATUS_GENERR;
if (conference_utils_member_test_flag(member, MFLAG_HOLD)) {
if (stream) stream->write_function(stream, "-ERR mute %u\n", member->id);
return SWITCH_STATUS_SUCCESS;
}
conference_utils_member_clear_flag_locked(member, MFLAG_CAN_SPEAK);
conference_utils_member_clear_flag_locked(member, MFLAG_TALKING);
@@ -345,6 +352,107 @@ switch_status_t conference_api_sub_mute(conference_member_t *member, switch_stre
return SWITCH_STATUS_SUCCESS;
}
switch_status_t conference_api_sub_unhold(conference_member_t *member, switch_stream_handle_t *stream, void *data)
{
mcu_layer_t *layer = NULL;
switch_event_t *event;
if (member == NULL)
return SWITCH_STATUS_GENERR;
conference_utils_member_clear_flag_locked(member, MFLAG_HOLD);
if (member->session && !conference_utils_member_test_flag(member, MFLAG_MUTE_DETECT)) {
switch_core_media_hard_mute(member->session, SWITCH_FALSE);
}
conference_member_stop_file(member, FILE_STOP_ALL);
if (switch_core_session_media_flow(member->session, SWITCH_MEDIA_TYPE_VIDEO) != SWITCH_MEDIA_FLOW_SENDONLY) {
if ((layer = conference_video_get_layer_locked(member))) {
layer->clear = 1;
conference_video_release_layer(&layer);
}
conference_video_reset_video_bitrate_counters(member);
if (member->channel) {
switch_channel_clear_flag(member->channel, CF_VIDEO_PAUSE_READ);
switch_channel_video_sync(member->channel);
}
}
if (stream != NULL) {
stream->write_function(stream, "+OK unhold %u\n", member->id);
}
if (test_eflag(member->conference, EFLAG_HOLD_MEMBER) &&
switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) {
conference_member_add_event_data(member, event);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "unhold-member");
switch_event_fire(&event);
}
if (conference_utils_test_flag(member->conference, CFLAG_POSITIONAL)) {
conference_al_gen_arc(member->conference, NULL);
}
conference_member_update_status_field(member);
return SWITCH_STATUS_SUCCESS;
}
switch_status_t conference_api_sub_hold(conference_member_t *member, switch_stream_handle_t *stream, void *data)
{
switch_event_t *event;
if (member == NULL)
return SWITCH_STATUS_GENERR;
conference_utils_member_clear_flag_locked(member, MFLAG_TALKING);
if (switch_core_session_media_flow(member->session, SWITCH_MEDIA_TYPE_VIDEO) != SWITCH_MEDIA_FLOW_SENDONLY) {
conference_video_reset_video_bitrate_counters(member);
if (member->channel) {
switch_channel_set_flag(member->channel, CF_VIDEO_PAUSE_READ);
switch_core_session_request_video_refresh(member->session);
switch_channel_video_sync(member->channel);
}
}
if (member->session) {
switch_core_media_hard_mute(member->session, SWITCH_TRUE);
}
conference_utils_member_set_flag(member, MFLAG_HOLD);
conference_member_set_score_iir(member, 0);
if (!zstr(data)) {
conference_member_play_file(member, data, 0, SWITCH_FALSE);
}
if (stream != NULL) {
stream->write_function(stream, "+OK hold %u\n", member->id);
}
if (test_eflag(member->conference, EFLAG_HOLD_MEMBER) &&
switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) {
conference_member_add_event_data(member, event);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "hold-member");
switch_event_fire(&event);
}
if (conference_utils_test_flag(member->conference, CFLAG_POSITIONAL)) {
conference_al_gen_arc(member->conference, NULL);
}
conference_member_update_status_field(member);
return SWITCH_STATUS_SUCCESS;
}
switch_status_t conference_api_sub_tmute(conference_member_t *member, switch_stream_handle_t *stream, void *data)
{
@@ -352,6 +460,11 @@ switch_status_t conference_api_sub_tmute(conference_member_t *member, switch_str
if (member == NULL)
return SWITCH_STATUS_GENERR;
if (conference_utils_member_test_flag(member, MFLAG_HOLD)) {
if (stream) stream->write_function(stream, "-ERR mute %u\n", member->id);
return SWITCH_STATUS_SUCCESS;
}
if (conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK)) {
return conference_api_sub_mute(member, stream, data);
}
@@ -367,6 +480,11 @@ switch_status_t conference_api_sub_unmute(conference_member_t *member, switch_st
if (member == NULL)
return SWITCH_STATUS_GENERR;
if (conference_utils_member_test_flag(member, MFLAG_HOLD)) {
if (stream) stream->write_function(stream, "-ERR unmute %u\n", member->id);
return SWITCH_STATUS_SUCCESS;
}
conference_utils_member_set_flag_locked(member, MFLAG_CAN_SPEAK);
if (member->session && !conference_utils_member_test_flag(member, MFLAG_MUTE_DETECT)) {
@@ -413,6 +531,11 @@ switch_status_t conference_api_sub_conference_video_vmute_snap(conference_member
return SWITCH_STATUS_SUCCESS;
}
if (conference_utils_member_test_flag(member, MFLAG_HOLD)) {
if (stream) stream->write_function(stream, "-ERR member %u is on hold\n", member->id);
return SWITCH_STATUS_SUCCESS;
}
if (stream != NULL) {
stream->write_function(stream, "+OK vmute image snapped %u\n", member->id);
}
@@ -437,6 +560,11 @@ switch_status_t conference_api_sub_vmute(conference_member_t *member, switch_str
return SWITCH_STATUS_SUCCESS;
}
if (conference_utils_member_test_flag(member, MFLAG_HOLD)) {
if (stream) stream->write_function(stream, "-ERR member %u is on hold\n", member->id);
return SWITCH_STATUS_SUCCESS;
}
conference_utils_member_clear_flag_locked(member, MFLAG_CAN_BE_SEEN);
conference_video_reset_video_bitrate_counters(member);
@@ -473,6 +601,11 @@ switch_status_t conference_api_sub_tvmute(conference_member_t *member, switch_st
if (member == NULL)
return SWITCH_STATUS_GENERR;
if (conference_utils_member_test_flag(member, MFLAG_HOLD)) {
if (stream) stream->write_function(stream, "-ERR member %u is on hold\n", member->id);
return SWITCH_STATUS_SUCCESS;
}
if (conference_utils_member_test_flag(member, MFLAG_CAN_BE_SEEN)) {
return conference_api_sub_vmute(member, stream, data);
}
@@ -493,6 +626,11 @@ switch_status_t conference_api_sub_unvmute(conference_member_t *member, switch_s
return SWITCH_STATUS_SUCCESS;
}
if (conference_utils_member_test_flag(member, MFLAG_HOLD)) {
if (stream) stream->write_function(stream, "-ERR member %u is on hold\n", member->id);
return SWITCH_STATUS_SUCCESS;
}
if ((layer = conference_video_get_layer_locked(member))) {
layer->clear = 1;
conference_video_release_layer(&layer);
@@ -534,7 +672,8 @@ switch_status_t conference_api_sub_vblind(conference_member_t *member, switch_st
if (member == NULL)
return SWITCH_STATUS_GENERR;
if (switch_core_session_media_flow(member->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_SENDONLY) {
if (conference_utils_member_test_flag(member, MFLAG_HOLD)) {
if (stream) stream->write_function(stream, "-ERR member %u is on hold\n", member->id);
return SWITCH_STATUS_SUCCESS;
}
@@ -569,6 +708,11 @@ switch_status_t conference_api_sub_tvblind(conference_member_t *member, switch_s
if (member == NULL)
return SWITCH_STATUS_GENERR;
if (conference_utils_member_test_flag(member, MFLAG_HOLD)) {
if (stream) stream->write_function(stream, "-ERR member %u is on hold\n", member->id);
return SWITCH_STATUS_SUCCESS;
}
if (conference_utils_member_test_flag(member, MFLAG_CAN_SEE)) {
return conference_api_sub_vblind(member, stream, data);
}
@@ -584,7 +728,8 @@ switch_status_t conference_api_sub_unvblind(conference_member_t *member, switch_
if (member == NULL)
return SWITCH_STATUS_GENERR;
if (switch_core_session_media_flow(member->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_SENDONLY) {
if (conference_utils_member_test_flag(member, MFLAG_HOLD)) {
if (stream) stream->write_function(stream, "-ERR member %u is on hold\n", member->id);
return SWITCH_STATUS_SUCCESS;
}
@@ -621,6 +766,11 @@ switch_status_t conference_api_sub_deaf(conference_member_t *member, switch_stre
if (member == NULL)
return SWITCH_STATUS_GENERR;
if (conference_utils_member_test_flag(member, MFLAG_HOLD)) {
if (stream) stream->write_function(stream, "-ERR member %u is on hold\n", member->id);
return SWITCH_STATUS_SUCCESS;
}
conference_utils_member_clear_flag_locked(member, MFLAG_CAN_HEAR);
if (!(data) || !strstr((char *) data, "quiet")) {
@@ -663,6 +813,11 @@ switch_status_t conference_api_sub_undeaf(conference_member_t *member, switch_st
if (member == NULL)
return SWITCH_STATUS_GENERR;
if (conference_utils_member_test_flag(member, MFLAG_HOLD)) {
if (stream) stream->write_function(stream, "-ERR member %u is on hold\n", member->id);
return SWITCH_STATUS_SUCCESS;
}
conference_utils_member_set_flag_locked(member, MFLAG_CAN_HEAR);
if (!(data) || !strstr((char *) data, "quiet")) {
@@ -132,6 +132,8 @@ void conference_loop_mute_toggle(conference_member_t *member, caller_control_act
if (member == NULL)
return;
if (conference_utils_member_test_flag(member, MFLAG_HOLD)) return;
if (conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK)) {
conference_api_sub_mute(member, NULL, NULL);
} else {
@@ -144,6 +146,8 @@ void conference_loop_mute_toggle(conference_member_t *member, caller_control_act
void conference_loop_mute_on(conference_member_t *member, caller_control_action_t *action)
{
if (conference_utils_member_test_flag(member, MFLAG_HOLD)) return;
if (conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK)) {
conference_api_sub_mute(member, NULL, NULL);
}
@@ -151,6 +155,8 @@ void conference_loop_mute_on(conference_member_t *member, caller_control_action_
void conference_loop_mute_off(conference_member_t *member, caller_control_action_t *action)
{
if (conference_utils_member_test_flag(member, MFLAG_HOLD)) return;
if (!conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK)) {
conference_api_sub_unmute(member, NULL, NULL);
if (!conference_utils_member_test_flag(member, MFLAG_CAN_HEAR)) {
@@ -280,6 +286,8 @@ void conference_loop_deafmute_toggle(conference_member_t *member, caller_control
if (member == NULL)
return;
if (conference_utils_member_test_flag(member, MFLAG_HOLD)) return;
if (conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK)) {
conference_api_sub_mute(member, NULL, NULL);
if (conference_utils_member_test_flag(member, MFLAG_CAN_HEAR)) {
@@ -933,7 +941,8 @@ void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, void *ob
/* if the member can speak, compute the audio energy level and */
/* generate events when the level crosses the threshold */
if ((conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK) || conference_utils_member_test_flag(member, MFLAG_MUTE_DETECT))) {
if (((conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK) && !conference_utils_member_test_flag(member, MFLAG_HOLD)) ||
conference_utils_member_test_flag(member, MFLAG_MUTE_DETECT))) {
uint32_t energy = 0, i = 0, samples = 0, j = 0;
int16_t *data;
int gate_check = 0;
@@ -990,7 +999,7 @@ void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, void *ob
gate_check = conference_member_noise_gate_check(member);
if (conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK)) {
if (conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK) && !conference_utils_member_test_flag(member, MFLAG_HOLD)) {
if (member->max_energy_level) {
if (member->score > member->max_energy_level && ++member->max_energy_hits > member->max_energy_hit_trigger) {
member->mute_counter = member->burst_mute_count;
@@ -1131,6 +1140,7 @@ void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, void *ob
member->talking_count = 0;
if (test_eflag(member->conference, EFLAG_START_TALKING) && conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK) &&
!conference_utils_member_test_flag(member, MFLAG_HOLD) &&
switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) {
conference_member_add_event_data(member, event);
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "start-talking");
@@ -1157,7 +1167,8 @@ void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, void *ob
hangunder_hits--;
}
if (conference_utils_member_test_flag(member, MFLAG_TALKING) && conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK)) {
if (conference_utils_member_test_flag(member, MFLAG_TALKING) && conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK) &&
!conference_utils_member_test_flag(member, MFLAG_HOLD)) {
if (++hangover_hits >= hangover) {
hangover_hits = hangunder_hits = 0;
@@ -1188,7 +1199,8 @@ void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, void *ob
/* skip frames that are not actual media or when we are muted or silent */
if ((conference_utils_member_test_flag(member, MFLAG_TALKING) || member->energy_level == 0 || conference_utils_test_flag(member->conference, CFLAG_AUDIO_ALWAYS))
&& conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK) && !conference_utils_test_flag(member->conference, CFLAG_WAIT_MOD)
&& conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK) && !conference_utils_test_flag(member->conference, CFLAG_WAIT_MOD)
&& !conference_utils_member_test_flag(member, MFLAG_HOLD)
&& (member->conference->count > 1 || (member->conference->record_count && member->conference->count >= member->conference->min_recording_participants))) {
switch_audio_resampler_t *read_resampler = member->read_resampler;
void *data;
@@ -133,7 +133,9 @@ void conference_member_update_status_field(conference_member_t *member)
switch_live_array_lock(member->conference->la);
if (!conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK)) {
if (conference_utils_member_test_flag(member, MFLAG_HOLD)) {
str = "HOLD";
} else if (!conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK)) {
str = "MUTE";
} else if (switch_channel_test_flag(member->channel, CF_HOLD)) {
str = "HOLD";
@@ -258,6 +260,7 @@ switch_status_t conference_member_add_event_data(conference_member_t *member, sw
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Speak", "%s", conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK) ? "true" : "false" );
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Talking", "%s", conference_utils_member_test_flag(member, MFLAG_TALKING) ? "true" : "false" );
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Mute-Detect", "%s", conference_utils_member_test_flag(member, MFLAG_MUTE_DETECT) ? "true" : "false" );
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Hold", "%s", conference_utils_member_test_flag(member, MFLAG_HOLD) ? "true" : "false" );
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Member-ID", "%u", member->id);
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Member-Type", "%s", conference_utils_member_test_flag(member, MFLAG_MOD) ? "moderator" : "member");
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Member-Ghost", "%s", conference_utils_member_test_flag(member, MFLAG_GHOST) ? "true" : "false");
@@ -237,9 +237,7 @@ void conference_utils_clear_eflags(char *events, uint32_t *f)
*next++ = '\0';
}
if (!strcmp(event, "add-member")) {
*f &= ~EFLAG_ADD_MEMBER;
} else if (!strcmp(event, "del-member")) {
if (!strcmp(event, "del-member")) {
*f &= ~EFLAG_DEL_MEMBER;
} else if (!strcmp(event, "energy-level")) {
*f &= ~EFLAG_ENERGY_LEVEL;
@@ -257,6 +255,8 @@ void conference_utils_clear_eflags(char *events, uint32_t *f)
*f &= ~EFLAG_MUTE_DETECT;
} else if (!strcmp(event, "mute-member")) {
*f &= ~EFLAG_MUTE_MEMBER;
} else if (!strcmp(event, "hold-member")) {
*f &= ~EFLAG_HOLD_MEMBER;
} else if (!strcmp(event, "kick-member")) {
*f &= ~EFLAG_KICK_MEMBER;
} else if (!strcmp(event, "dtmf-member")) {
@@ -1199,16 +1199,20 @@ void conference_member_set_logo(conference_member_t *member, const char *path)
if (y < 0) y = 0;
}
img = switch_img_write_text_img(member->video_logo->d_w, member->video_logo->d_h, SWITCH_FALSE, var);
switch_img_fit(&img, member->video_logo->d_w, member->video_logo->d_h, SWITCH_FIT_NECESSARY);
switch_img_attenuate(member->video_logo);
if ((img = switch_img_write_text_img(member->video_logo->d_w, member->video_logo->d_h, SWITCH_FALSE, var))) {
switch_img_fit(&img, member->video_logo->d_w, member->video_logo->d_h, SWITCH_FIT_NECESSARY);
switch_img_attenuate(member->video_logo);
if (center) {
x = center_off + ((member->video_logo->d_w - center_off - img->d_w) / 2);
if (center) {
x = center_off + ((member->video_logo->d_w - center_off - img->d_w) / 2);
}
switch_img_patch(member->video_logo, img, x, y);
switch_img_free(&img);
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Failed to write text on image!\n");
}
switch_img_patch(member->video_logo, img, x, y);
switch_img_free(&img);
}
if (params && (var = switch_event_get_header(params, "alt_text"))) {
@@ -1236,17 +1240,21 @@ void conference_member_set_logo(conference_member_t *member, const char *path)
y = atoi(tmp);
if (y < 0) y = 0;
}
if ((img = switch_img_write_text_img(member->video_logo->d_w, member->video_logo->d_h, SWITCH_FALSE, var))) {
switch_img_fit(&img, member->video_logo->d_w, member->video_logo->d_h, SWITCH_FIT_NECESSARY);
switch_img_attenuate(member->video_logo);
if (center) {
x = center_off + ((member->video_logo->d_w - center_off - img->d_w) / 2);
}
img = switch_img_write_text_img(member->video_logo->d_w, member->video_logo->d_h, SWITCH_FALSE, var);
switch_img_fit(&img, member->video_logo->d_w, member->video_logo->d_h, SWITCH_FIT_NECESSARY);
switch_img_attenuate(member->video_logo);
if (center) {
x = center_off + ((member->video_logo->d_w - center_off - img->d_w) / 2);
switch_img_patch(member->video_logo, img, x, y);
switch_img_free(&img);
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Failed to write text on image!\n");
}
switch_img_patch(member->video_logo, img, x, y);
switch_img_free(&img);
}
}
@@ -1406,6 +1414,10 @@ switch_status_t conference_video_attach_video_layer(conference_member_t *member,
return SWITCH_STATUS_FALSE;
}
if (conference_utils_member_test_flag(member, MFLAG_HOLD)) {
conference_utils_member_clear_flag(member, MFLAG_DED_VID_LAYER);
return SWITCH_STATUS_FALSE;
}
if (!switch_channel_test_flag(channel, CF_VIDEO_READY) && !member->avatar_png_img) {
conference_utils_member_clear_flag(member, MFLAG_DED_VID_LAYER);
@@ -1417,6 +1429,8 @@ switch_status_t conference_video_attach_video_layer(conference_member_t *member,
return SWITCH_STATUS_FALSE;
}
switch_mutex_lock(canvas->mutex);
layer = &canvas->layers[idx];
@@ -2598,6 +2612,10 @@ switch_status_t conference_video_find_layer(conference_obj_t *conference, mcu_ca
return SWITCH_STATUS_FALSE;
}
if (conference_utils_member_test_flag(member, MFLAG_HOLD)) {
return SWITCH_STATUS_FALSE;
}
switch_mutex_lock(canvas->mutex);
for (i = 0; i < canvas->total_layers; i++) {
@@ -2722,7 +2740,7 @@ void conference_video_pop_next_image(conference_member_t *member, switch_image_t
size = switch_queue_size(member->video_queue);
} while(size > 1);
if (conference_utils_member_test_flag(member, MFLAG_CAN_BE_SEEN) &&
if (conference_utils_member_test_flag(member, MFLAG_CAN_BE_SEEN) && !conference_utils_member_test_flag(member, MFLAG_HOLD) &&
member->video_layer_id > -1 &&
switch_core_session_media_flow(member->session, SWITCH_MEDIA_TYPE_VIDEO) != SWITCH_MEDIA_FLOW_SENDONLY &&
switch_core_session_media_flow(member->session, SWITCH_MEDIA_TYPE_VIDEO) != SWITCH_MEDIA_FLOW_INACTIVE
@@ -2875,6 +2893,13 @@ void conference_video_check_auto_bitrate(conference_member_t *member, mcu_layer_
int kps = 0, kps_in = 0;
int max = 0;
int min_layer = 0, min = 0;
int screen_w = 0, screen_h = 0;
if (layer) {
screen_w = layer->screen_w;
screen_h = layer->screen_h;
}
if (!conference_utils_test_flag(member->conference, CFLAG_MANAGE_INBOUND_VIDEO_BITRATE) ||
switch_channel_test_flag(member->channel, CF_VIDEO_BITRATE_UNMANAGABLE)) {
@@ -2906,6 +2931,13 @@ void conference_video_check_auto_bitrate(conference_member_t *member, mcu_layer_
member->vid_params = vid_params;
if (member->vid_params.width && member->vid_params.height && (screen_w > member->vid_params.width || screen_h > member->vid_params.height)) {
//switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG1, "%s Layer is bigger than input res, limit size to %dx%d\n",
//switch_channel_get_name(member->channel), member->vid_params.width, member->vid_params.height);
screen_w = member->vid_params.width;
screen_h = member->vid_params.height;
}
if (member->managed_kps_set) {
return;
}
@@ -2916,7 +2948,7 @@ void conference_video_check_auto_bitrate(conference_member_t *member, mcu_layer_
}
if (layer) {
kps = switch_calc_bitrate(layer->screen_w, layer->screen_h, member->conference->video_quality, (int)(member->conference->video_fps.fps));
kps = switch_calc_bitrate(screen_w, screen_h, member->conference->video_quality, (int)(member->conference->video_fps.fps));
} else {
kps = kps_in;
}
@@ -2939,9 +2971,14 @@ void conference_video_check_auto_bitrate(conference_member_t *member, mcu_layer_
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG1, "%s setting bitrate to %dkps because it was forced.\n",
switch_channel_get_name(member->channel), kps);
} else {
if (layer && conference_utils_member_test_flag(member, MFLAG_CAN_BE_SEEN)) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG1, "%s auto-setting bitrate to %dkps to accommodate %dx%d resolution\n",
switch_channel_get_name(member->channel), kps, layer->screen_w, layer->screen_h);
if (layer && conference_utils_member_test_flag(member, MFLAG_CAN_BE_SEEN) && !conference_utils_member_test_flag(member, MFLAG_HOLD)) {
if (layer->screen_w != screen_w) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG1, "%s auto-setting bitrate to %dkps (max res %dx%d) to accommodate %dx%d resolution\n",
switch_channel_get_name(member->channel), kps, screen_w, screen_h, layer->screen_w, layer->screen_h);
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG1, "%s auto-setting bitrate to %dkps to accommodate %dx%d resolution\n",
switch_channel_get_name(member->channel), kps, screen_w, screen_h);
}
} else {
kps = min;
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG1, "%s auto-setting bitrate to %dkps because the user is not visible\n",
@@ -3150,6 +3187,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
int no_muted = conference_utils_test_flag(imember->conference, CFLAG_VIDEO_MUTE_EXIT_CANVAS);
int no_av = conference_utils_test_flag(imember->conference, CFLAG_VIDEO_REQUIRED_FOR_CANVAS);
int seen = conference_utils_member_test_flag(imember, MFLAG_CAN_BE_SEEN);
int hold = conference_utils_member_test_flag(imember, MFLAG_HOLD);
if (imember->channel && switch_channel_ready(imember->channel) && switch_channel_test_flag(imember->channel, CF_VIDEO_READY) &&
imember->watching_canvas_id == canvas->canvas_id) {
@@ -3157,7 +3195,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
}
if (imember->channel && switch_channel_ready(imember->channel) && switch_channel_test_flag(imember->channel, CF_VIDEO_READY) &&
!conference_utils_member_test_flag(imember, MFLAG_SECOND_SCREEN) &&
!conference_utils_member_test_flag(imember, MFLAG_SECOND_SCREEN) && !hold &&
conference_utils_member_test_flag(imember, MFLAG_RUNNING) && (!no_muted || seen) && (!no_av || (no_av && !imember->avatar_png_img))
&& imember->canvas_id == canvas->canvas_id && imember->video_media_flow != SWITCH_MEDIA_FLOW_SENDONLY && imember->video_media_flow != SWITCH_MEDIA_FLOW_INACTIVE) {
video_count++;
@@ -3376,8 +3414,9 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
continue;
}
if (conference_utils_test_flag(imember->conference, CFLAG_VIDEO_MUTE_EXIT_CANVAS) &&
!conference_utils_member_test_flag(imember, MFLAG_CAN_BE_SEEN) && imember->video_layer_id > -1) {
if ((conference_utils_member_test_flag(imember, MFLAG_HOLD) ||
(conference_utils_test_flag(imember->conference, CFLAG_VIDEO_MUTE_EXIT_CANVAS) &&
!conference_utils_member_test_flag(imember, MFLAG_CAN_BE_SEEN))) && imember->video_layer_id > -1) {
conference_video_detach_video_layer(imember);
switch_img_free(&imember->video_mute_img);
@@ -3491,7 +3530,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
// switch_img_free(&layer->cur_img);
//}
if (conference_utils_member_test_flag(imember, MFLAG_CAN_BE_SEEN) || switch_core_session_media_flow(imember->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_SENDONLY || switch_core_session_media_flow(imember->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_INACTIVE || conference_utils_test_flag(imember->conference, CFLAG_VIDEO_MUTE_EXIT_CANVAS)) {
if ((conference_utils_member_test_flag(imember, MFLAG_CAN_BE_SEEN) && !conference_utils_member_test_flag(imember, MFLAG_HOLD)) || switch_core_session_media_flow(imember->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_SENDONLY || switch_core_session_media_flow(imember->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_INACTIVE || conference_utils_test_flag(imember->conference, CFLAG_VIDEO_MUTE_EXIT_CANVAS)) {
layer->mute_patched = 0;
} else {
@@ -3610,7 +3649,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
if (total > 0 &&
(!conference_utils_test_flag(imember->conference, CFLAG_VIDEO_MUTE_EXIT_CANVAS) ||
conference_utils_member_test_flag(imember, MFLAG_CAN_BE_SEEN)) &&
(conference_utils_member_test_flag(imember, MFLAG_CAN_BE_SEEN) && !conference_utils_member_test_flag(imember, MFLAG_HOLD))) &&
imember->session && switch_core_session_media_flow(imember->session, SWITCH_MEDIA_TYPE_VIDEO) != SWITCH_MEDIA_FLOW_SENDONLY &&
imember->session && switch_core_session_media_flow(imember->session, SWITCH_MEDIA_TYPE_VIDEO) != SWITCH_MEDIA_FLOW_INACTIVE) {
@@ -3777,7 +3816,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
}
if (layer) {
if (conference_utils_member_test_flag(omember, MFLAG_CAN_BE_SEEN)) {
if (conference_utils_member_test_flag(omember, MFLAG_CAN_BE_SEEN) && !conference_utils_member_test_flag(imember, MFLAG_HOLD)) {
layer->mute_patched = 0;
} else if (!conference_utils_test_flag(omember->conference, CFLAG_VIDEO_MUTE_EXIT_CANVAS)) {
if (!layer->mute_patched) {
@@ -4795,6 +4834,7 @@ void conference_video_write_frame(conference_obj_t *conference, conference_membe
}
if (!conference_utils_member_test_flag(imember, MFLAG_CAN_SEE)) {
switch_core_session_rwunlock(isession);
continue;
}
@@ -4926,6 +4966,7 @@ switch_status_t conference_video_thread_callback(switch_core_session_t *session,
if (frame->img && (((member->video_layer_id > -1) && canvas_id > -1) || member->canvas) &&
conference_utils_member_test_flag(member, MFLAG_CAN_BE_SEEN) &&
!conference_utils_member_test_flag(member, MFLAG_HOLD) &&
switch_queue_size(member->video_queue) < member->conference->video_fps.fps &&
!member->conference->canvases[canvas_id]->playing_video_file) {
@@ -84,6 +84,7 @@ void conference_list(conference_obj_t *conference, switch_stream_handle_t *strea
char *uuid;
char *name;
uint32_t count = 0;
switch_bool_t hold = conference_utils_member_test_flag(member, MFLAG_HOLD);
if (conference_utils_member_test_flag(member, MFLAG_NOCHANNEL)) {
continue;
@@ -97,21 +98,26 @@ void conference_list(conference_obj_t *conference, switch_stream_handle_t *strea
stream->write_function(stream, "%u%s%s%s%s%s%s%s%s%s",
member->id, delim, name, delim, uuid, delim, profile->caller_id_name, delim, profile->caller_id_number, delim);
if (conference_utils_member_test_flag(member, MFLAG_CAN_HEAR)) {
if (!hold && conference_utils_member_test_flag(member, MFLAG_CAN_HEAR)) {
stream->write_function(stream, "hear");
count++;
}
if (conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK)) {
if (!hold && conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK)) {
stream->write_function(stream, "%s%s", count ? "|" : "", "speak");
count++;
}
if (conference_utils_member_test_flag(member, MFLAG_TALKING)) {
if (!hold && conference_utils_member_test_flag(member, MFLAG_TALKING)) {
stream->write_function(stream, "%s%s", count ? "|" : "", "talking");
count++;
}
if (hold) {
stream->write_function(stream, "%s%s", count ? "|" : "", "hold");
count++;
}
if (switch_channel_test_flag(switch_core_session_get_channel(member->session), CF_VIDEO)) {
stream->write_function(stream, "%s%s", count ? "|" : "", "video");
count++;
@@ -331,6 +337,7 @@ void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, void *ob
switch_channel_test_flag(channel, CF_VIDEO_READY) &&
imember->video_media_flow != SWITCH_MEDIA_FLOW_SENDONLY &&
!conference_utils_member_test_flag(imember, MFLAG_SECOND_SCREEN) &&
!conference_utils_member_test_flag(imember, MFLAG_HOLD) &&
(!conference_utils_test_flag(conference, CFLAG_VIDEO_MUTE_EXIT_CANVAS) ||
conference_utils_member_test_flag(imember, MFLAG_CAN_BE_SEEN))) {
members_with_video++;
@@ -1225,7 +1232,8 @@ void conference_xlist(conference_obj_t *conference, switch_xml_t x_conference, i
switch_xml_t x_tag;
int toff = 0;
char tmp[50] = "";
switch_bool_t hold = conference_utils_member_test_flag(member, MFLAG_HOLD);
if (conference_utils_member_test_flag(member, MFLAG_NOCHANNEL)) {
if (member->rec_path) {
x_member = switch_xml_add_child_d(x_members, "member", moff++);
@@ -1286,19 +1294,22 @@ void conference_xlist(conference_obj_t *conference, switch_xml_t x_conference, i
switch_assert(x_flags);
x_tag = switch_xml_add_child_d(x_flags, "can_hear", count++);
switch_xml_set_txt_d(x_tag, conference_utils_member_test_flag(member, MFLAG_CAN_HEAR) ? "true" : "false");
switch_xml_set_txt_d(x_tag, (!hold && conference_utils_member_test_flag(member, MFLAG_CAN_HEAR)) ? "true" : "false");
x_tag = switch_xml_add_child_d(x_flags, "can_see", count++);
switch_xml_set_txt_d(x_tag, conference_utils_member_test_flag(member, MFLAG_CAN_SEE) ? "true" : "false");
switch_xml_set_txt_d(x_tag, (!hold && conference_utils_member_test_flag(member, MFLAG_CAN_SEE)) ? "true" : "false");
x_tag = switch_xml_add_child_d(x_flags, "can_speak", count++);
switch_xml_set_txt_d(x_tag, conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK) ? "true" : "false");
switch_xml_set_txt_d(x_tag, (!hold && conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK)) ? "true" : "false");
x_tag = switch_xml_add_child_d(x_flags, "mute_detect", count++);
switch_xml_set_txt_d(x_tag, conference_utils_member_test_flag(member, MFLAG_MUTE_DETECT) ? "true" : "false");
x_tag = switch_xml_add_child_d(x_flags, "talking", count++);
switch_xml_set_txt_d(x_tag, conference_utils_member_test_flag(member, MFLAG_TALKING) ? "true" : "false");
switch_xml_set_txt_d(x_tag, (!hold && conference_utils_member_test_flag(member, MFLAG_TALKING)) ? "true" : "false");
x_tag = switch_xml_add_child_d(x_flags, "hold", count++);
switch_xml_set_txt_d(x_tag, hold ? "true" : "false");
x_tag = switch_xml_add_child_d(x_flags, "has_video", count++);
switch_xml_set_txt_d(x_tag, switch_channel_test_flag(switch_core_session_get_channel(member->session), CF_VIDEO) ? "true" : "false");
@@ -1374,6 +1385,8 @@ void conference_jlist(conference_obj_t *conference, cJSON *json_conferences)
switch_channel_t *channel;
switch_caller_profile_t *profile;
char *uuid;
switch_bool_t hold = conference_utils_member_test_flag(member, MFLAG_HOLD);
cJSON_AddItemToObject(json_conference_members, "member", json_conference_member = cJSON_CreateObject());
if (conference_utils_member_test_flag(member, MFLAG_NOCHANNEL)) {
@@ -1405,9 +1418,10 @@ void conference_jlist(conference_obj_t *conference, cJSON *json_conferences)
cJSON_AddNumberToObject(json_conference_member, "volume_out", member->volume_out_level);
cJSON_AddNumberToObject(json_conference_member, "output-volume", member->volume_out_level);
cJSON_AddNumberToObject(json_conference_member, "input-volume", member->volume_in_level);
ADDBOOL(json_conference_member_flags, "can_hear", conference_utils_member_test_flag(member, MFLAG_CAN_HEAR));
ADDBOOL(json_conference_member_flags, "can_see", conference_utils_member_test_flag(member, MFLAG_CAN_SEE));
ADDBOOL(json_conference_member_flags, "can_speak", conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK));
ADDBOOL(json_conference_member_flags, "can_hear", !hold && conference_utils_member_test_flag(member, MFLAG_CAN_HEAR));
ADDBOOL(json_conference_member_flags, "can_see", !hold && conference_utils_member_test_flag(member, MFLAG_CAN_SEE));
ADDBOOL(json_conference_member_flags, "can_speak", !hold && conference_utils_member_test_flag(member, MFLAG_CAN_SPEAK));
ADDBOOL(json_conference_member_flags, "hold", hold);
ADDBOOL(json_conference_member_flags, "mute_detect", conference_utils_member_test_flag(member, MFLAG_MUTE_DETECT));
ADDBOOL(json_conference_member_flags, "talking", conference_utils_member_test_flag(member, MFLAG_TALKING));
ADDBOOL(json_conference_member_flags, "has_video", switch_channel_test_flag(switch_core_session_get_channel(member->session), CF_VIDEO));
@@ -220,6 +220,7 @@ typedef enum {
MFLAG_NO_VIDEO_BLANKS,
MFLAG_VIDEO_JOIN,
MFLAG_DED_VID_LAYER,
MFLAG_HOLD,
///////////////////////////
MFLAG_MAX
} member_flag_t;
@@ -322,7 +323,7 @@ typedef enum {
} node_flag_t;
typedef enum {
EFLAG_ADD_MEMBER = (1 << 0),
EFLAG_HOLD_MEMBER = (1 << 0),
EFLAG_DEL_MEMBER = (1 << 1),
EFLAG_ENERGY_LEVEL = (1 << 2),
EFLAG_VOLUME_LEVEL = (1 << 3),
@@ -1210,6 +1211,8 @@ switch_status_t conference_api_sub_file_seek(conference_obj_t *conference, switc
switch_status_t conference_api_sub_cam(conference_obj_t *conference, switch_stream_handle_t *stream, int argc, char **argv);
switch_status_t conference_api_sub_stop(conference_obj_t *conference, switch_stream_handle_t *stream, int argc, char **argv);
switch_status_t conference_api_sub_hup(conference_member_t *member, switch_stream_handle_t *stream, void *data);
switch_status_t conference_api_sub_hold(conference_member_t *member, switch_stream_handle_t *stream, void *data);
switch_status_t conference_api_sub_unhold(conference_member_t *member, switch_stream_handle_t *stream, void *data);
switch_status_t conference_api_sub_pauserec(conference_obj_t *conference, switch_stream_handle_t *stream, int argc, char **argv);
switch_status_t conference_api_sub_volume_out(conference_member_t *member, switch_stream_handle_t *stream, void *data);
switch_status_t conference_api_sub_lock(conference_obj_t *conference, switch_stream_handle_t *stream, int argc, char **argv);
@@ -494,7 +494,10 @@ SWITCH_STANDARD_APP(detect_speech_function)
switch_ivr_stop_detect_speech(session);
} else if (!strcasecmp(argv[0], "param")) {
switch_ivr_set_param_detect_speech(session, argv[1], argv[2]);
} else if (!strcasecmp(argv[0], "start-input-timers")) {
switch_ivr_detect_speech_start_input_timers(session);
} else if (!strcasecmp(argv[0], "start_input_timers")) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "start_input_timers is deprecated, please use start-input-timers instead!\n");
switch_ivr_detect_speech_start_input_timers(session);
} else if (argc >= 3) {
switch_ivr_detect_speech(session, argv[0], argv[1], argv[2], argv[3], NULL);
@@ -1512,7 +1515,9 @@ SWITCH_STANDARD_APP(respond_function)
SWITCH_STANDARD_APP(deflect_function)
{
switch_core_session_message_t msg = { 0 };
switch_channel_t *channel = switch_core_session_get_channel(session);
switch_channel_wait_for_flag(channel, CF_MEDIA_ACK, SWITCH_TRUE, 10000, NULL);
/* Tell the channel to deflect the call */
msg.from = __FILE__;
msg.string_arg = data;
+1 -1
View File
@@ -9,7 +9,7 @@
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(SolutionDir)libs\unimrcp\platforms\libunimrcp-client\include;$(SolutionDir)libs\unimrcp\libs\mrcp-client\include;$(SolutionDir)libs\unimrcp\libs\mrcp-signaling\include;$(SolutionDir)libs\unimrcp\libs\apr-toolkit\include;$(SolutionDir)libs\unimrcp\build;$(SolutionDir)libs\unimrcp\libs\mrcp\include;$(SolutionDir)libs\unimrcp\libs\mrcp\message\include;$(SolutionDir)libs\unimrcp\libs\mrcp\control\include;$(SolutionDir)libs\unimrcp\libs\mrcp\resources\include;$(SolutionDir)libs\unimrcp\libs\mpf\include;$(SolutionDir)libs\unimrcp\libs\mrcpv2-transport\include;$(SolutionDir)libs\unimrcp\modules\mrcp-sofiasip\include;$(SolutionDir)libs\unimrcp\modules\mrcp-unirtsp\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>MRCP_STATIC_LIB MPF_STATIC_LIB APT_STATIC_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>MRCP_STATIC_LIB;MPF_STATIC_LIB;APT_STATIC_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
</Project>
@@ -1,13 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioPropertySheet
ProjectType="Visual C++"
Version="8.00"
Name="unimrcp"
InheritedPropertySheets="..\..\..\..\w32\apr.vsprops"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="&quot;$(SolutionDir)libs\unimrcp\platforms\libunimrcp-client\include&quot;;&quot;$(SolutionDir)libs\unimrcp\libs\mrcp-client\include&quot;;&quot;$(SolutionDir)libs\unimrcp\libs\mrcp-signaling\include&quot;;&quot;$(SolutionDir)libs\unimrcp\libs\apr-toolkit\include&quot;;&quot;$(SolutionDir)libs\unimrcp\build&quot;;&quot;$(SolutionDir)libs\unimrcp\libs\mrcp\include&quot;;&quot;$(SolutionDir)libs\unimrcp\libs\mrcp\message\include&quot;;&quot;$(SolutionDir)libs\unimrcp\libs\mrcp\control\include&quot;;&quot;$(SolutionDir)libs\unimrcp\libs\mrcp\resources\include&quot;;&quot;$(SolutionDir)libs\unimrcp\libs\mpf\include&quot;;&quot;$(SolutionDir)libs\unimrcp\libs\mrcpv2-transport\include&quot;;&quot;$(SolutionDir)libs\unimrcp\modules\mrcp-sofiasip\include&quot;;&quot;$(SolutionDir)libs\unimrcp\modules\mrcp-unirtsp\include&quot;"
PreprocessorDefinitions="MRCP_STATIC_LIB MPF_STATIC_LIB APT_STATIC_LIB"
/>
</VisualStudioPropertySheet>
+2 -2
View File
@@ -5052,10 +5052,10 @@ static switch_status_t cmd_status(char **argv, int argc, switch_stream_handle_t
switch_mutex_lock(verto_globals.mutex);
for(profile = verto_globals.profile_head; profile; profile = profile->next) {
for (i = 0; i < profile->i; i++) {
for (i = 0; i < profile->i; i++) {
char *tmpurl = switch_mprintf(strchr(profile->ip[i].local_ip, ':') ? "%s:[%s]:%d" : "%s:%s:%d",
(profile->ip[i].secure == 1) ? "wss" : "ws", profile->ip[i].local_ip, profile->ip[i].local_port);
stream->write_function(stream, "%25s\t%s\t %40s\t%s\n", profile->name, "profile", tmpurl, (profile->running) ? "RUNNING" : "DOWN");
stream->write_function(stream, "%25s\t%s\t %40s\t%s\n", profile->name, "profile", tmpurl, (profile->server_socket[i] != ws_sock_invalid) ? "RUNNING" : "DOWN");
switch_safe_free(tmpurl);
}
cp++;
@@ -1,33 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="mod_shout.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="huffman.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="mpg123.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="mpglib.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,8 +9,8 @@
package org.freeswitch.swig;
public class API {
private long swigCPtr;
protected boolean swigCMemOwn;
private transient long swigCPtr;
protected transient boolean swigCMemOwn;
protected API(long cPtr, boolean cMemoryOwn) {
swigCMemOwn = cMemoryOwn;
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,8 +9,8 @@
package org.freeswitch.swig;
public class CoreSession {
private long swigCPtr;
protected boolean swigCMemOwn;
private transient long swigCPtr;
protected transient boolean swigCMemOwn;
protected CoreSession(long cPtr, boolean cMemoryOwn) {
swigCMemOwn = cMemoryOwn;
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,8 +9,8 @@
package org.freeswitch.swig;
public class DTMF {
private long swigCPtr;
protected boolean swigCMemOwn;
private transient long swigCPtr;
protected transient boolean swigCMemOwn;
protected DTMF(long cPtr, boolean cMemoryOwn) {
swigCMemOwn = cMemoryOwn;
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,8 +9,8 @@
package org.freeswitch.swig;
public class Event {
private long swigCPtr;
protected boolean swigCMemOwn;
private transient long swigCPtr;
protected transient boolean swigCMemOwn;
protected Event(long cPtr, boolean cMemoryOwn) {
swigCMemOwn = cMemoryOwn;
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,8 +9,8 @@
package org.freeswitch.swig;
public class EventConsumer {
private long swigCPtr;
protected boolean swigCMemOwn;
private transient long swigCPtr;
protected transient boolean swigCMemOwn;
protected EventConsumer(long cPtr, boolean cMemoryOwn) {
swigCMemOwn = cMemoryOwn;
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,8 +9,8 @@
package org.freeswitch.swig;
public class IVRMenu {
private long swigCPtr;
protected boolean swigCMemOwn;
private transient long swigCPtr;
protected transient boolean swigCMemOwn;
protected IVRMenu(long cPtr, boolean cMemoryOwn) {
swigCMemOwn = cMemoryOwn;
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,7 +9,7 @@
package org.freeswitch.swig;
public class JavaSession extends CoreSession {
private long swigCPtr;
private transient long swigCPtr;
protected JavaSession(long cPtr, boolean cMemoryOwn) {
super(freeswitchJNI.JavaSession_SWIGUpcast(cPtr), cMemoryOwn);
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,9 +9,9 @@
package org.freeswitch.swig;
public class SWIGTYPE_p_JavaVM {
private long swigCPtr;
private transient long swigCPtr;
protected SWIGTYPE_p_JavaVM(long cPtr, boolean futureUse) {
protected SWIGTYPE_p_JavaVM(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
swigCPtr = cPtr;
}
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,9 +9,9 @@
package org.freeswitch.swig;
public class SWIGTYPE_p_int {
private long swigCPtr;
private transient long swigCPtr;
protected SWIGTYPE_p_int(long cPtr, boolean futureUse) {
protected SWIGTYPE_p_int(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
swigCPtr = cPtr;
}
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,9 +9,9 @@
package org.freeswitch.swig;
public class SWIGTYPE_p_p_switch_event_node_t {
private long swigCPtr;
private transient long swigCPtr;
protected SWIGTYPE_p_p_switch_event_node_t(long cPtr, boolean futureUse) {
protected SWIGTYPE_p_p_switch_event_node_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
swigCPtr = cPtr;
}
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,9 +9,9 @@
package org.freeswitch.swig;
public class SWIGTYPE_p_switch_call_cause_t {
private long swigCPtr;
private transient long swigCPtr;
protected SWIGTYPE_p_switch_call_cause_t(long cPtr, boolean futureUse) {
protected SWIGTYPE_p_switch_call_cause_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
swigCPtr = cPtr;
}
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,9 +9,9 @@
package org.freeswitch.swig;
public class SWIGTYPE_p_switch_channel_state_t {
private long swigCPtr;
private transient long swigCPtr;
protected SWIGTYPE_p_switch_channel_state_t(long cPtr, boolean futureUse) {
protected SWIGTYPE_p_switch_channel_state_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
swigCPtr = cPtr;
}
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,9 +9,9 @@
package org.freeswitch.swig;
public class SWIGTYPE_p_switch_channel_t {
private long swigCPtr;
private transient long swigCPtr;
protected SWIGTYPE_p_switch_channel_t(long cPtr, boolean futureUse) {
protected SWIGTYPE_p_switch_channel_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
swigCPtr = cPtr;
}
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,9 +9,9 @@
package org.freeswitch.swig;
public class SWIGTYPE_p_switch_core_session_t {
private long swigCPtr;
private transient long swigCPtr;
protected SWIGTYPE_p_switch_core_session_t(long cPtr, boolean futureUse) {
protected SWIGTYPE_p_switch_core_session_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
swigCPtr = cPtr;
}
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,9 +9,9 @@
package org.freeswitch.swig;
public class SWIGTYPE_p_switch_event_t {
private long swigCPtr;
private transient long swigCPtr;
protected SWIGTYPE_p_switch_event_t(long cPtr, boolean futureUse) {
protected SWIGTYPE_p_switch_event_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
swigCPtr = cPtr;
}
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,9 +9,9 @@
package org.freeswitch.swig;
public class SWIGTYPE_p_switch_event_types_t {
private long swigCPtr;
private transient long swigCPtr;
protected SWIGTYPE_p_switch_event_types_t(long cPtr, boolean futureUse) {
protected SWIGTYPE_p_switch_event_types_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
swigCPtr = cPtr;
}
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,9 +9,9 @@
package org.freeswitch.swig;
public class SWIGTYPE_p_switch_input_args_t {
private long swigCPtr;
private transient long swigCPtr;
protected SWIGTYPE_p_switch_input_args_t(long cPtr, boolean futureUse) {
protected SWIGTYPE_p_switch_input_args_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
swigCPtr = cPtr;
}
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,9 +9,9 @@
package org.freeswitch.swig;
public class SWIGTYPE_p_switch_input_type_t {
private long swigCPtr;
private transient long swigCPtr;
protected SWIGTYPE_p_switch_input_type_t(long cPtr, boolean futureUse) {
protected SWIGTYPE_p_switch_input_type_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
swigCPtr = cPtr;
}
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,9 +9,9 @@
package org.freeswitch.swig;
public class SWIGTYPE_p_switch_priority_t {
private long swigCPtr;
private transient long swigCPtr;
protected SWIGTYPE_p_switch_priority_t(long cPtr, boolean futureUse) {
protected SWIGTYPE_p_switch_priority_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
swigCPtr = cPtr;
}
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,9 +9,9 @@
package org.freeswitch.swig;
public class SWIGTYPE_p_switch_queue_t {
private long swigCPtr;
private transient long swigCPtr;
protected SWIGTYPE_p_switch_queue_t(long cPtr, boolean futureUse) {
protected SWIGTYPE_p_switch_queue_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
swigCPtr = cPtr;
}
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,9 +9,9 @@
package org.freeswitch.swig;
public class SWIGTYPE_p_switch_state_handler_table_t {
private long swigCPtr;
private transient long swigCPtr;
protected SWIGTYPE_p_switch_state_handler_table_t(long cPtr, boolean futureUse) {
protected SWIGTYPE_p_switch_state_handler_table_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
swigCPtr = cPtr;
}
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,9 +9,9 @@
package org.freeswitch.swig;
public class SWIGTYPE_p_switch_status_t {
private long swigCPtr;
private transient long swigCPtr;
protected SWIGTYPE_p_switch_status_t(long cPtr, boolean futureUse) {
protected SWIGTYPE_p_switch_status_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
swigCPtr = cPtr;
}
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,9 +9,9 @@
package org.freeswitch.swig;
public class SWIGTYPE_p_switch_stream_handle_t {
private long swigCPtr;
private transient long swigCPtr;
protected SWIGTYPE_p_switch_stream_handle_t(long cPtr, boolean futureUse) {
protected SWIGTYPE_p_switch_stream_handle_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
swigCPtr = cPtr;
}
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,9 +9,9 @@
package org.freeswitch.swig;
public class SWIGTYPE_p_uint32_t {
private long swigCPtr;
private transient long swigCPtr;
protected SWIGTYPE_p_uint32_t(long cPtr, boolean futureUse) {
protected SWIGTYPE_p_uint32_t(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
swigCPtr = cPtr;
}
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,9 +9,9 @@
package org.freeswitch.swig;
public class SWIGTYPE_p_void {
private long swigCPtr;
private transient long swigCPtr;
protected SWIGTYPE_p_void(long cPtr, boolean futureUse) {
protected SWIGTYPE_p_void(long cPtr, @SuppressWarnings("unused") boolean futureUse) {
swigCPtr = cPtr;
}
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,8 +9,8 @@
package org.freeswitch.swig;
public class Stream {
private long swigCPtr;
protected boolean swigCMemOwn;
private transient long swigCPtr;
protected transient boolean swigCMemOwn;
protected Stream(long cPtr, boolean cMemoryOwn) {
swigCMemOwn = cMemoryOwn;
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -9,8 +9,8 @@
package org.freeswitch.swig;
public class input_callback_state_t {
private long swigCPtr;
protected boolean swigCMemOwn;
private transient long swigCPtr;
protected transient boolean swigCMemOwn;
protected input_callback_state_t(long cPtr, boolean cMemoryOwn) {
swigCMemOwn = cMemoryOwn;
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* This file is not intended to be easily readable and contains a number of
* coding conventions designed to improve portability and efficiency. Do not make
@@ -8,7 +8,11 @@
* interface file instead.
* ----------------------------------------------------------------------------- */
#ifndef SWIGJAVA
#define SWIGJAVA
#endif
#ifdef __cplusplus
@@ -101,9 +105,11 @@ template <typename T> T SwigValueInit() {
#endif
/* exporting methods */
#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
# ifndef GCC_HASCLASSVISIBILITY
# define GCC_HASCLASSVISIBILITY
#if defined(__GNUC__)
# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
# ifndef GCC_HASCLASSVISIBILITY
# define GCC_HASCLASSVISIBILITY
# endif
# endif
#endif
@@ -142,6 +148,19 @@ template <typename T> T SwigValueInit() {
# define _SCL_SECURE_NO_DEPRECATE
#endif
/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */
#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES)
# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
#endif
/* Intel's compiler complains if a variable which was never initialised is
* cast to void, which is a common idiom which we use to indicate that we
* are aware a variable isn't used. So we just silence that warning.
* See: https://github.com/swig/swig/issues/192 for more discussion.
*/
#ifdef __INTEL_COMPILER
# pragma warning disable 592
#endif
/* Fix for jlong on some versions of gcc on Windows */
+83 -36
View File
@@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.2
* Version 3.0.10
*
* This file is not intended to be easily readable and contains a number of
* coding conventions designed to improve portability and efficiency. Do not make
@@ -8,7 +8,11 @@
* interface file instead.
* ----------------------------------------------------------------------------- */
#ifndef SWIGLUA
#define SWIGLUA
#endif
#define SWIG_LUA_TARGET SWIG_LUA_FLAVOR_LUA
#define SWIG_LUA_MODULE_GLOBAL
@@ -103,9 +107,11 @@ template <typename T> T SwigValueInit() {
#endif
/* exporting methods */
#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
# ifndef GCC_HASCLASSVISIBILITY
# define GCC_HASCLASSVISIBILITY
#if defined(__GNUC__)
# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
# ifndef GCC_HASCLASSVISIBILITY
# define GCC_HASCLASSVISIBILITY
# endif
# endif
#endif
@@ -144,6 +150,19 @@ template <typename T> T SwigValueInit() {
# define _SCL_SECURE_NO_DEPRECATE
#endif
/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */
#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES)
# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
#endif
/* Intel's compiler complains if a variable which was never initialised is
* cast to void, which is a common idiom which we use to indicate that we
* are aware a variable isn't used. So we just silence that warning.
* See: https://github.com/swig/swig/issues/192 for more discussion.
*/
#ifdef __INTEL_COMPILER
# pragma warning disable 592
#endif
/* -----------------------------------------------------------------------------
* swigrun.swg
@@ -642,16 +661,16 @@ SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
char d = *(c++);
unsigned char uu;
if ((d >= '0') && (d <= '9'))
uu = ((d - '0') << 4);
uu = (unsigned char)((d - '0') << 4);
else if ((d >= 'a') && (d <= 'f'))
uu = ((d - ('a'-10)) << 4);
uu = (unsigned char)((d - ('a'-10)) << 4);
else
return (char *) 0;
d = *(c++);
if ((d >= '0') && (d <= '9'))
uu |= (d - '0');
uu |= (unsigned char)(d - '0');
else if ((d >= 'a') && (d <= 'f'))
uu |= (d - ('a'-10));
uu |= (unsigned char)(d - ('a'-10));
else
return (char *) 0;
*u = uu;
@@ -1526,6 +1545,44 @@ SWIGINTERN int SWIG_Lua_iterate_bases(lua_State *L, swig_type_info * SWIGUNUSED
return result;
}
/* The class.get method helper, performs the lookup of class attributes.
* It returns an error code. Number of function return values is passed inside 'ret'.
* first_arg is not used in this function because function always has 2 arguments.
*/
SWIGINTERN int SWIG_Lua_class_do_get_item(lua_State *L, swig_type_info *type, int SWIGUNUSED first_arg, int *ret)
{
/* there should be 2 params passed in
(1) userdata (not the meta table)
(2) string name of the attribute
*/
int bases_search_result;
int substack_start = lua_gettop(L)-2;
assert(first_arg == substack_start+1);
lua_checkstack(L,5);
assert(lua_isuserdata(L,-2)); /* just in case */
lua_getmetatable(L,-2); /* get the meta table */
assert(lua_istable(L,-1)); /* just in case */
/* NEW: looks for the __getitem() fn
this is a user provided get fn */
SWIG_Lua_get_table(L,"__getitem"); /* find the __getitem fn */
if (lua_iscfunction(L,-1)) /* if its there */
{ /* found it so call the fn & return its value */
lua_pushvalue(L,substack_start+1); /* the userdata */
lua_pushvalue(L,substack_start+2); /* the parameter */
lua_call(L,2,1); /* 2 value in (userdata),1 out (result) */
lua_remove(L,-2); /* stack tidy, remove metatable */
if(ret) *ret = 1;
return SWIG_OK;
}
lua_pop(L,1);
/* Remove the metatable */
lua_pop(L,1);
/* Search in base classes */
bases_search_result = SWIG_Lua_iterate_bases(L,type,substack_start+1,SWIG_Lua_class_do_get_item,ret);
return bases_search_result; /* sorry not known */
}
/* The class.get method helper, performs the lookup of class attributes.
* It returns an error code. Number of function return values is passed inside 'ret'.
* first_arg is not used in this function because function always has 2 arguments.
@@ -1573,19 +1630,6 @@ SWIGINTERN int SWIG_Lua_class_do_get(lua_State *L, swig_type_info *type, int SW
return SWIG_OK;
}
lua_pop(L,1); /* remove whatever was there */
/* NEW: looks for the __getitem() fn
this is a user provided get fn */
SWIG_Lua_get_table(L,"__getitem"); /* find the __getitem fn */
if (lua_iscfunction(L,-1)) /* if its there */
{ /* found it so call the fn & return its value */
lua_pushvalue(L,substack_start+1); /* the userdata */
lua_pushvalue(L,substack_start+2); /* the parameter */
lua_call(L,2,1); /* 2 value in (userdata),1 out (result) */
lua_remove(L,-2); /* stack tidy, remove metatable */
if(ret) *ret = 1;
return SWIG_OK;
}
lua_pop(L,1);
/* Remove the metatable */
lua_pop(L,1);
/* Search in base classes */
@@ -1612,6 +1656,10 @@ SWIGINTERN int SWIG_Lua_class_get(lua_State *L)
if(result == SWIG_OK)
return ret;
result = SWIG_Lua_class_do_get_item(L,type,1,&ret);
if(result == SWIG_OK)
return ret;
return 0;
}
@@ -1881,7 +1929,7 @@ SWIGINTERN void SWIG_Lua_init_base_class(lua_State *L,swig_lua_class *clss)
#if defined(SWIG_LUA_SQUASH_BASES) && (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_LUA)
/* Merges two tables */
SWIGINTERN int SWIG_Lua_merge_tables_by_index(lua_State *L, int target, int source)
SWIGINTERN void SWIG_Lua_merge_tables_by_index(lua_State *L, int target, int source)
{
/* iterating */
lua_pushnil(L);
@@ -1897,7 +1945,7 @@ SWIGINTERN int SWIG_Lua_merge_tables_by_index(lua_State *L, int target, int sour
}
/* Merges two tables with given name. original - index of target metatable, base - index of source metatable */
SWIGINTERN int SWIG_Lua_merge_tables(lua_State *L, const char* name, int original, int base)
SWIGINTERN void SWIG_Lua_merge_tables(lua_State *L, const char* name, int original, int base)
{
/* push original[name], then base[name] */
lua_pushstring(L,name);
@@ -1912,7 +1960,7 @@ SWIGINTERN int SWIG_Lua_merge_tables(lua_State *L, const char* name, int origina
}
/* Function takes all symbols from base and adds it to derived class. It's just a helper. */
SWIGINTERN int SWIG_Lua_class_squash_base(lua_State *L, swig_lua_class *base_cls)
SWIGINTERN void SWIG_Lua_class_squash_base(lua_State *L, swig_lua_class *base_cls)
{
/* There is one parameter - original, i.e. 'derived' class metatable */
assert(lua_istable(L,-1));
@@ -1926,7 +1974,7 @@ SWIGINTERN int SWIG_Lua_class_squash_base(lua_State *L, swig_lua_class *base_cls
}
/* Function squashes all symbols from 'clss' bases into itself */
SWIGINTERN int SWIG_Lua_class_squash_bases(lua_State *L, swig_lua_class *clss)
SWIGINTERN void SWIG_Lua_class_squash_bases(lua_State *L, swig_lua_class *clss)
{
int i;
SWIG_Lua_get_class_metatable(L,clss->fqname);
@@ -2551,7 +2599,7 @@ SWIG_Lua_InstallConstants(lua_State *L, swig_lua_const_info constants[]) {
switch(constants[i].type) {
case SWIG_LUA_INT:
lua_pushstring(L,constants[i].name);
lua_pushnumber(L,(lua_Number)constants[i].lvalue);
lua_pushinteger(L,(lua_Number)constants[i].lvalue);
lua_rawset(L,-3);
break;
case SWIG_LUA_FLOAT:
@@ -2561,7 +2609,10 @@ SWIG_Lua_InstallConstants(lua_State *L, swig_lua_const_info constants[]) {
break;
case SWIG_LUA_CHAR:
lua_pushstring(L,constants[i].name);
lua_pushfstring(L,"%c",(char)constants[i].lvalue);
{
char c = constants[i].lvalue;
lua_pushlstring(L,&c,1);
}
lua_rawset(L,-3);
break;
case SWIG_LUA_STRING:
@@ -3684,7 +3735,7 @@ static int _wrap_DTMF_digit_get(lua_State* L) {
}
result = (char) ((arg1)->digit);
lua_pushfstring(L,"%c",result); SWIG_arg++;
lua_pushlstring(L, &result, 1); SWIG_arg++;
return SWIG_arg;
if(0) SWIG_fail;
@@ -9688,7 +9739,7 @@ SWIGRUNTIME void
SWIG_InitializeModule(void *clientdata) {
size_t i;
swig_module_info *module_head, *iter;
int found, init;
int init;
/* check to see if the circular list has been setup, if not, set it up */
if (swig_module.next==0) {
@@ -9707,22 +9758,18 @@ SWIG_InitializeModule(void *clientdata) {
/* This is the first module loaded for this interpreter */
/* so set the swig module into the interpreter */
SWIG_SetModule(clientdata, &swig_module);
module_head = &swig_module;
} else {
/* the interpreter has loaded a SWIG module, but has it loaded this one? */
found=0;
iter=module_head;
do {
if (iter==&swig_module) {
found=1;
break;
/* Our module is already in the list, so there's nothing more to do. */
return;
}
iter=iter->next;
} while (iter!= module_head);
/* if the is found in the list, then all is done and we may leave */
if (found) return;
/* otherwise we must add out module into the list */
/* otherwise we must add our module into the list */
swig_module.next = module_head->next;
module_head->next = &swig_module;
}
@@ -20023,10 +20023,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_switch_find_parameter(char * jarg1, char *
SWIGEXPORT int SWIGSTDCALL CSharp_switch_true(char * jarg1) {
int jresult ;
char *arg1 = (char *) 0 ;
int result;
switch_bool_t result;
arg1 = (char *)jarg1;
result = (int)switch_true((char const *)arg1);
result = (switch_bool_t)switch_true((char const *)arg1);
jresult = result;
return jresult;
}
@@ -40954,15 +40954,19 @@ SWIGEXPORT int SWIGSTDCALL CSharp_switch_ivr_find_bridged_uuid(char * jarg1, cha
}
SWIGEXPORT void SWIGSTDCALL CSharp_switch_ivr_intercept_session(void * jarg1, char * jarg2, int jarg3) {
SWIGEXPORT int SWIGSTDCALL CSharp_switch_ivr_intercept_session(void * jarg1, char * jarg2, int jarg3) {
int jresult ;
switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
char *arg2 = (char *) 0 ;
switch_bool_t arg3 ;
switch_status_t result;
arg1 = (switch_core_session_t *)jarg1;
arg2 = (char *)jarg2;
arg3 = (switch_bool_t)jarg3;
switch_ivr_intercept_session(arg1,(char const *)arg2,arg3);
result = (switch_status_t)switch_ivr_intercept_session(arg1,(char const *)arg2,arg3);
jresult = result;
return jresult;
}

Some files were not shown because too many files have changed in this diff Show More