Add support for ICE/STUN/TURN in res_rtp_asterisk and chan_sip.
[asterisk/asterisk.git] / res / pjproject / pjlib / src / pj / types.c
1 /* $Id$ */
2 /* 
3  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
4  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
19  */
20 #include <pj/types.h>
21 #include <pj/os.h>
22
23 PJ_DEF(void) pj_time_val_normalize(pj_time_val *t)
24 {
25     PJ_CHECK_STACK();
26
27     if (t->msec >= 1000) {
28         t->sec += (t->msec / 1000);
29         t->msec = (t->msec % 1000);
30     }
31     else if (t->msec <= -1000) {
32         do {
33             t->sec--;
34             t->msec += 1000;
35         } while (t->msec <= -1000);
36     }
37
38     if (t->sec >= 1 && t->msec < 0) {
39         t->sec--;
40         t->msec += 1000;
41
42     } else if (t->sec < 0 && t->msec > 0) {
43         t->sec++;
44         t->msec -= 1000;
45     }
46 }