Commit Graph

343 Commits

Author SHA1 Message Date
irungentoo
5715a94061
Basic audio packet parsing code. 2014-11-09 20:21:57 -05:00
irungentoo
bbbeecbaa0
Group audio starting to take shape.
Some issues still left to solve.
2014-11-08 21:31:46 -05:00
irungentoo
d7f1f223ee
First commit of actual A/V code for group chats. 2014-11-07 21:30:26 -05:00
irungentoo_trip
9c480acecf Fixed possible threading issues. 2014-10-25 09:01:15 -07:00
irungentoo_trip
9b5aa3ff27 Merge branch 'toxav-uaf' of https://github.com/tux3/toxcore
#
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2014-10-25 08:55:42 -07:00
Tux3 / Mlkj / !Lev.uXFMLA
ea4320733f
Fix use-after-free of toxav's TimerHandler
If msi.c:timer_terminate_session frees "handler", then when msi.c:timer_poll's thread resumes, there WILL be a use after free of "handler", with a likely segfault.

This use after free causes a crash in qTox, see tux3/qTox#534
2014-10-25 12:29:10 +02:00
xor2003
837f72b39e Fix for memory leak. And add forgotten break 2014-10-24 15:53:38 +04:00
irungentoo
a2db81bb1d
Some video encoding improvements. 2014-10-17 19:54:42 -04:00
xor2003
1b60fbed56 Trying to fix TimerHandler *handler memory leak 2014-10-17 11:26:22 +04:00
sin
a46810a197 Rework toxav/rtp.c to use ntohl/htonl and ntohs/htons
Now we can also remove the helper routines from toxcore/util.[ch].
2014-09-30 13:18:28 -04:00
irungentoo
c43526be9c
Fixed memory leak. 2014-09-21 14:55:23 -04:00
Tux3 / Mlkj / !Lev.uXFMLA
35da73beff Fix exceptional leak in msi.c 2014-09-10 19:31:34 +02:00
cgar
2bb2bc4163 spelling corrections 2014-09-09 20:31:37 -04:00
irungentoo
2ef89f6ae0
memset call to zero when killing call. 2014-08-05 20:58:49 -04:00
irungentoo
aaaeac8f3d
Merge branch 'master' of https://github.com/mannol1/toxcore
Conflicts:
	toxav/toxav.c
2014-08-04 13:49:53 -04:00
irungentoo
d4218dcd61
Set pointer to NULL when freeing to fix issue. 2014-08-04 12:40:18 -04:00
irungentoo
9445b40fb5
Fixed threading bug. 2014-08-04 12:09:03 -04:00
irungentoo
02ed20dc39
Merge branch 'notsecure-split-video' 2014-08-04 12:08:43 -04:00
notsecure
d3e66d73a7 one decoding thread per call 2014-08-04 09:50:32 -04:00
mannol
d08d032368 Update with upstream 2014-08-04 00:15:19 +02:00
mannol
733c509582 Fix some toxav warnings 2014-08-04 00:15:00 +02:00
Jfreegman
82c40b9c8a
remove unneeded printf's/prevent stdout spam 2014-08-03 15:56:09 -04:00
irungentoo
07833b6731
Increase dequeue queue size to 16 to prevent stuttering. 2014-08-02 20:45:39 -04:00
irungentoo
0719a4296e
Merge branch 'mannol1-master' 2014-08-02 11:29:27 -04:00
mannol
6c1ac97da9 Added userdata pointer to audio/video callbacks 2014-08-02 01:09:33 +02:00
irungentoo
77df39863e
Disable decode deadline, fixed build error. 2014-08-01 13:22:32 -04:00
irungentoo
055640611f
Merge branch 'notsecure-split-video' 2014-08-01 13:21:03 -04:00
notsecure
8ee3f645b1 audio/video decoding on separate thread with a queue 2014-08-01 10:18:14 -04:00
notsecure
7e806aef06 fix initialization order 2014-07-31 15:35:59 -04:00
notsecure
95710edf40 decode video on separate thread 2014-07-31 14:56:32 -04:00
irungentoo
8be8d84686
Size parameter is now checked in toxav_send_audio().
Cleaned up code a bit.
2014-07-29 11:03:15 -04:00
irungentoo
e1158be5a6
Fixed segfault. 2014-07-28 09:58:53 -04:00
irungentoo
7bbde2d6c7
Reduced max size of queue. 2014-07-27 19:52:43 -04:00
irungentoo
8aa62cfef7
Initialize codec session with right values.
Audio decoder and encoder channel values are sepparate values, the
decoder should be set to the number of channels the other peer has
his encoder set.
2014-07-27 12:51:20 -04:00
irungentoo
ab4673e873
Merge branch 'mannol1-master' 2014-07-26 21:26:32 -04:00
mannol
ee3822f24b Fixed buffer overflow 2014-07-27 01:24:28 +02:00
mannol
fc230c8671 Fixed tests and conflicts 2014-07-27 00:26:58 +02:00
mannol
54e7d29589 Make codec settings dynamic 2014-07-26 19:29:49 +02:00
irungentoo
d052bbc3eb
Start sequence number at zero instead of one. 2014-07-25 10:39:34 -04:00
irungentoo
84c28337d2
Fixed crash. 2014-07-24 21:00:42 -04:00
irungentoo
da03feaace
Fixed some issues with queue.
disconnecting then reconnecting right away should no longer kill
audio transmission.
2014-07-24 20:56:07 -04:00
irungentoo
450c503eba
Increased default jitter buffer size by 1. 2014-07-24 20:26:36 -04:00
irungentoo
2d0c503f74
Merge branch 'master' of https://github.com/mannol1/toxcore 2014-07-24 19:50:27 -04:00
irungentoo
443abcfafe
Rewrote audio packet queue.
Audio killing itself after 20 minutes in a call should be fixed.
2014-07-24 19:45:38 -04:00
mannol
7d7cc2dad5 dark forces were very active, so to say... 2014-07-23 21:41:18 +02:00
notsecure
f6bca8e928 fix warnings 2014-07-23 13:26:55 -04:00
notsecure
fffe72bcaa fix mannol 2014-07-23 13:24:51 -04:00
irungentoo
511d197e8c
Fixed warning. 2014-07-22 11:24:47 -04:00
irungentoo
6ede3e8ad4
Merge branch 'master' of https://github.com/mannol1/toxcore 2014-07-22 11:20:55 -04:00
mannol
0cf9f27b70 This should fix test failing 2014-07-21 22:11:59 +02:00
mannol
79115259a8 Fixed conflicts 2014-07-21 04:10:05 +02:00
mannol
1aeeef58b2 Improved protocol and cleaned code a bit 2014-07-21 01:10:57 +02:00
irungentoo
d5902f1b39
Merge branch 'lllllllleeeeeeeeellllll' of https://github.com/stal888/ProjectTox-Core 2014-07-19 22:34:37 -04:00
stal
cc1466ec09
remove this too 2014-07-19 19:29:56 -07:00
stal
4e85be6a68
declare calculate_sum_sq static inline 2014-07-19 19:18:15 -07:00
irungentoo
f0a172f198
Set some functions as static, fixed warning. 2014-07-19 22:08:05 -04:00
irungentoo
72858076f5
Set a deadline in the vpx video decoder to try to solve issues on
slow hardware.
2014-07-12 23:24:47 -04:00
irungentoo
271f03a717
Call now gets terminated when other person times out. 2014-07-10 18:20:07 -04:00
irungentoo
bd4c142e38
Fixed some timer related issues. 2014-07-08 14:39:23 -04:00
irungentoo
7ce9816e40
Fixed threading bug that could cause segfaults. 2014-07-08 12:04:13 -04:00
irungentoo
9874173d71
Fixed deadlock. 2014-07-08 11:51:27 -04:00
irungentoo
95d737cb5f
Fixed segfault and other possible bugs in msi.c
toxav should no longer have weird behaviour when a dead call times out.
2014-07-07 23:19:56 -04:00
irungentoo
909db02941
Merge branch 'split-video' of https://github.com/notsecure/toxcore 2014-07-07 19:55:06 -04:00
notsecure
3d4de767fe use callbacks for a/v 2014-07-07 16:10:10 -04:00
irungentoo
dfa483ba0d
Fixed msi_session being used after being freed. 2014-07-05 21:49:47 -04:00
irungentoo
9d154029cb
Merge branch 'master' of https://github.com/mannol1/toxcore 2014-07-05 17:31:06 -04:00
irungentoo
65b4c026f4
The width and height set during the video encoder initialization is
now described as the maximum width and height of images.

This is to work around what appears to be a bug in libvpx where the
resolution of the stream can be decreased but increasing it above
its originally set value introduces memory corruption.
2014-07-05 14:36:19 -04:00
mannol
77c7a3e103 Check if call is active after getting mutex handle 2014-07-05 19:27:31 +02:00
irungentoo
a51f6bbd69
Merge branch 'mannol1-master' 2014-07-05 12:25:30 -04:00
mannol
9af7c335e7 This might be causing problems 2014-07-05 17:36:12 +02:00
mannol
ebdc236d51 Fixed conflicts 2014-07-05 15:13:55 +02:00
mannol
8b9d3992a4 Make rtp & codec actions thread-safe 2014-07-05 15:11:25 +02:00
irungentoo
7f1e5ff720
This seems to fix the crash that happens when changing the resolution
of the desktop stream to something higher than the initial one in utox.
2014-07-04 20:20:47 -04:00
irungentoo
83b9fbc1dc
Fixed out of bounds read.
payload_type seems to be completely useless and should be removed.
2014-07-04 19:09:50 -04:00
irungentoo
9f164b4563
Resolution of video can now be changed during call by passing it
frames with a different resolution.

Added function to change bitrate of video for later use.
2014-07-04 17:41:02 -04:00
irungentoo
705fceb2e0
Merge branch 'mannol1-master' 2014-07-04 13:28:47 -04:00
mannol
a8fa360547 Merge upstream 2014-07-04 18:17:24 +02:00
mannol
94b9dfdfbf Added getter for current call status 2014-07-04 18:16:53 +02:00
irungentoo
2a70d29440
Merge branch 'master' of https://github.com/mannol1/toxcore 2014-07-03 12:13:03 -04:00
mannol
db88e7de61 Fix removed missing include 2014-07-03 17:56:55 +02:00
irungentoo
aa1194ab3e
Merge branch 'mannol1-master' 2014-07-03 11:13:11 -04:00
mannol
f8a2a865dc Resolved conflicts when merging upstream 2014-07-03 17:08:38 +02:00
mannol
d3560a3a77 Removed redundant code and fixed toxav codec actions being called when call inactive 2014-07-03 16:58:00 +02:00
irungentoo
c4f0650ae3
Fixed const related warnings. 2014-07-02 16:04:41 -04:00
irungentoo
bc5eafac20
Fixed video in call sometimes freezing.
This should not happen anymore.
2014-06-30 15:41:52 -04:00
irungentoo
bd6f8a2186
Merge branch 'mannol1-master' 2014-06-28 22:29:39 -04:00
mannol
aeaf997ca5 Removed redundant encryption and asserts 2014-06-28 04:13:38 +02:00
irungentoo
0d98869f3c
Fixed calling msi_reject more than once possibly causing issues. 2014-06-26 17:52:42 -04:00
irungentoo
ac4def6cd8
Fixed possible bug if more than one ringing msi packet was sent to us. 2014-06-26 17:42:37 -04:00
irungentoo
2735b4a8de
Fixed segfault that happened because calls could be hanged up more
than once.
2014-06-26 17:05:13 -04:00
irungentoo
3063f09f2b
Lowered video bitrate to 500kb/s and lowered audio buffer size. 2014-06-26 12:36:44 -04:00
irungentoo
b1a15b197f
Some video tweaks. 2014-06-24 18:07:31 -04:00
irungentoo
a7c55409fc
Fixed video bitrate being set way higher than it should.
Video bitrate is set in kb/s not b/s.
2014-06-24 09:32:46 -04:00
Jfreegman
610af9f196
only allow call cancel during a pending invite 2014-06-23 20:55:15 -04:00
irungentoo
1fd0f92959
Merge branch 'notsecure-split-video' 2014-06-23 16:34:06 -04:00
notsecure
644135183f dont rely on undefined behaviour 2014-06-23 15:58:20 -04:00
notsecure
97c548bc80 unrelated: got rid of some warnings 2014-06-23 15:17:28 -04:00
notsecure
3303b29da1 used define instead of constant.. removed unecessary value from packet 2014-06-23 15:16:31 -04:00
notsecure
4e7593a09c basic packet splitting for video frames 2014-06-23 14:48:30 -04:00
irungentoo
139cfa7aeb
Merge branch 'master' of https://github.com/mannol1/toxcore 2014-06-22 19:54:40 -04:00
mannol
6f46dd5afd Removed hamful code 2014-06-23 00:22:01 +02:00
irungentoo
87be366f79
Merge branch 'master' of https://github.com/mannol1/toxcore 2014-06-22 08:39:26 -04:00
mannol
77150081ba Merged upstream 2014-06-22 02:41:32 +02:00
mannol
5c0b6c8117 Added tolerance to VAD and lowered Jitter buffer default value 2014-06-21 19:04:00 +02:00
irungentoo
bc62510a76
Merge branch 'tux3-cppcheck-style' 2014-06-20 22:36:16 -04:00
mannol
d413fef66f Started with VAD 2014-06-21 01:58:55 +02:00
Tux3 / Mlkj / !Lev.uXFMLA
3044bd8101 Fix CppCheck style errors
#if 0 the content of toxav/msi.c : int stringify_message(MSIMessage
*msg, char *dest)
This function has no effect and does not seem to be used for actively
waiting.

Fix various other style errors, reduce scope when possible, avoid
redundant writes, clarify operator priorities, etc.
2014-06-20 21:43:21 +02:00
irungentoo
aba37b0f71
Merge branch 'mannol1-master' 2014-06-20 10:01:27 -04:00
mannol
88a131a2e8 Fixed bug when adjusting queue size 2014-06-20 00:23:05 +02:00
irungentoo
db724df189
Merge branch 'av-fix' of https://github.com/nurupo/InsertProjectNameHere into nurupo-av-fix 2014-06-18 19:46:39 -04:00
irungentoo
a82cbfff6a
Preparation work to make onion packets go through TCP. 2014-06-18 19:44:49 -04:00
Maxim Biro
741ad009e0 Removed IRC references 2014-06-18 17:58:01 -04:00
Maxim Biro
9d78e74d4d Made av public header C++-enabled 2014-06-18 17:52:34 -04:00
Tux3 / Mlkj / !Lev.uXFMLA
78bd8b3f17 Fix possible nullptr dereferences in toxav/msi.c 2014-06-18 21:33:11 +02:00
irungentoo
750c75a47d
Astyled code. 2014-06-15 10:36:57 -04:00
irungentoo
890472886c
Removed None becouse it conflicted with the None defined in other
headers.
2014-06-10 09:49:59 -04:00
mannol
11ca389e38 Fixed bug when passing invalid call index 2014-06-05 01:36:01 +02:00
irungentoo
edd5ab3215
This might fix the issue that someone reported about tox no longer
cross compiling for windows.
2014-06-02 20:19:40 -04:00
irungentoo
7c1b801bd0
Fixed typo.
This typo doesn't actually cause any side effects unless you are like
stqism and have a C library that doesn't have mempcpy().
2014-06-01 18:33:10 -04:00
irungentoo
9684339ab9
Merge branch 'mannol1-master' 2014-05-31 15:36:37 -04:00
mannol
fa203aa1ad We gon let it burn burn burn 2014-05-31 21:02:50 +02:00
mannol
d7c1157375 Fixed byte order and removed log functions from misc_tools 2014-05-31 17:27:22 +02:00
irungentoo
ab44440f37
Merge branch 'master' of https://github.com/mannol1/ProjectTox-Core into mannol1-master 2014-05-30 19:11:28 -04:00
mannol
2ebefb85b7 Fixed potential memleaks 2014-05-31 00:29:43 +02:00
mannol
e0ed51b2dc Apparently i forgot the most important thing... 2014-05-30 00:02:47 +02:00
mannol
08ddce44d8 Rearranged mutex actions. Now allow calling av actions from callbacks 2014-05-29 23:57:58 +02:00
mannol
20ab02cf4b Double-free on timeout fix 2014-05-29 22:51:45 +02:00
irungentoo
82e38883a2
Merge branch 'mannol1-Multicalls' into multi-av 2014-05-25 12:27:48 -04:00
mannol
08ca08dcd9 Small fix 2014-05-24 16:40:17 +02:00
mannol
565e95301f Tests works and some fixes 2014-05-24 16:02:01 +02:00
irungentoo
a54d098f6f
Changed lossy packet function names to better ones.
Fixed rtp checking the wrong return value for one.
2014-05-22 10:18:22 -04:00
Maxim Biro
d9f5e01bd7 Fixed memory allocation type inconsistency 2014-05-21 23:00:48 -04:00
mannol
9db41e7582 Merge remote-tracking branch 'upstream/master' into Multicalls-patch 2014-05-22 00:08:19 +02:00
irungentoo
f818c1a197
Added functions to send and receive lossy encrypted packets over
the Tox connection.

A/V should now work over TCP.
2014-05-21 15:28:14 -04:00
mannol
0620d1f064 GOGOGO 2014-05-20 00:48:53 +02:00
mannol
c9f1c6882d Merge upstream fo real now? 2014-05-20 00:27:02 +02:00
mannol
a1f2a18ae4 Merge upstream and other stuff 2014-05-20 00:10:40 +02:00
mannol
ea96c1758a Fixed this 2014-05-17 23:15:54 +02:00
mannol
843171fbc8 This works. 2014-05-16 19:56:40 +02:00
mannol
9bb910a370 This should work 2014-05-10 18:00:49 +02:00
irungentoo
a26ced5fcb
Merge branch 'master' into TCP 2014-05-08 18:26:01 -04:00
irungentoo
8369ac98b0
Updated A/V to new time function. 2014-05-04 20:33:08 -04:00
mannol
0fa03b9240 Bunch of random changes 2014-05-03 01:46:03 +02:00
mannol
42b25a4d3e Yeah many calls 2014-04-27 19:21:26 +02:00
irungentoo
45d122e2cb
Fixed building with NaCl. 2014-04-25 11:17:20 -04:00
irungentoo
9c6a8432ce Crypto related cleanups.
Moved Bunch of functions from net_crypto to crypto_core.

decrypt_data_fast and decrypt_data_symmetric were the same thing
therefore, removed decrypt_data_fast.

Replaced all the crypto_secretbox_* defines with the equivalent
crypto_box_* one.

New define: crypto_box_KEYBYTES that is equal to
crypto_box_BEFORENMBYTES.
2014-04-21 16:51:36 -04:00
Carlos E. Garcia
cf33c2f9ad multiple spelling fixes 2014-04-16 12:14:44 -04:00
Steven Noonan
20336c0076 media.h: include 'opus.h' instead of 'opus/opus.h'
The current 'opus/opus.h' works if your opus.h is in /usr/include/opus, as
/usr/include is already in the header search path. If your opus header search
path is found via pkg-config, however, you will get something like this:

  $ pkg-config --cflags opus
  -I/usr/local/Cellar/opus/1.1/include/opus

Since this is pointing directly to include/opus, the 'opus/' prefix on the
header include directive will break.

Since 'opus.h' should work in both cases (as in both cases it will be
discovered via pkg-config), just use the simpler 'opus.h'.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>
2014-04-13 20:56:29 -07:00
Steven Noonan
1808c88c79 toxav/Makefile.inc: add LIBSODIUM_* variables to flags
These are needed if libsodium paths are discovered by 'configure'. Most systems
don't need this just because libsodium is already on the header/library search
paths, but on e.g. Mac OS X this is required.

Signed-off-by: Steven Noonan <steven@uplinklabs.net>
2014-04-13 20:56:29 -07:00
AZ Huang
416a079134 Fix memory leak. 2014-04-10 06:15:40 +08:00
AZ Huang
e4a5c0ca09 Fix phone.c 2014-04-09 21:43:19 +08:00
Dmitrij D. Czarkoff
6c47b4773a Drop typedef redeclarations
C99 doesn't permit redeclaring typedefs in the same scope.
2014-04-08 11:32:23 +02:00
mannol
6e1a3b5af7 Bug fix 2014-04-07 21:52:32 +02:00
mannol
3f0d6b5778 Codec settings 2014-04-06 23:59:18 +02:00
mannol
9b476ad94f Added test 2014-04-05 17:09:44 +02:00
Maks Naumov
5c49f7d2b9 fix RTPHeader filling by zeros underflow
regression from 6a78e2e71c
2014-03-28 00:29:18 +02:00
irungentoo
07078f731f Merge pull request #817 from mannol1/master
Fixed cancel and added handling of the glare case
2014-03-23 18:09:05 -04:00
mannol
05ddf40f99 Remove header 2014-03-23 22:49:53 +01:00
mannol
6c76aacbbb Why do it even care 2014-03-23 22:48:12 +01:00
mannol
88f286e607 Clare case fix
Wot fix
2014-03-22 19:42:05 +01:00
mannol
6b6dbc15e2 Well this seems to be working 2014-03-22 19:33:56 +01:00
irungentoo
5770a0e29a Merge branch 'api-fix'
Main changes:
1. Strings no longer need to be NULL terminated.
2. tox_get_friend_id is now named tox_get_friend_number.
3. The friend request callback function is now (Tox *tox, uint8_t *,
uint8_t *, uint16_t, void *), the Tox object pointer has been added to
it.
2014-03-18 20:02:50 -04:00
irungentoo
5babb281c0 Friend request callback now contains the Tox object. 2014-03-16 13:24:39 -04:00
mannol
6a63605501 Comment fix 2014-03-15 02:11:25 +01:00
mannol
e990f05817 Added new callback 2014-03-14 23:10:10 +01:00
mannol
dbc4314bda Invoke callback via invoke_callback func 2014-03-12 00:38:20 +01:00
mannol
9ba7cb7e76 Removed logging to stderr and fixed timeout handling 2014-03-12 00:22:49 +01:00
mannol
54b1dafb0b Changed msi callbacks 2014-03-11 22:59:20 +01:00
mannol
d1fbbae5e9 Added custom callback data and capability identifier 2014-03-11 00:36:47 +01:00
mannol
6a78e2e71c Fixed several bugs and added some features 2014-03-07 03:13:04 +01:00
AZ Huang
7f3e1aec52 Fix libtoxav link error. 2014-03-05 20:04:19 +08:00
mannol
4888d916d0 pkg-config and av 2014-02-23 23:13:38 +01:00
mannol
4f80d2995f Fixed pointer position 2014-02-19 23:15:33 +01:00
mannol
efb070df9f Removed user agent header from msi and updated travis build stuff 2014-02-19 23:12:36 +01:00
irungentoo
354a392d69 Added better documentation to the api, move some defines, fixed a possible issue. 2014-02-19 08:08:55 -05:00
irungentoo
a3904932bf crypto_secretbox_NONCEBYTES is the one to use for the symmetric encryption.
Not currently a big deal since they are the same size, but...
2014-02-19 07:34:44 -05:00
irungentoo
baa4a2f11d Astyled av code. 2014-02-16 20:01:30 -05:00
mannol
f79b327fd6 Fixed build 'error' 2014-02-16 19:11:55 -05:00
mannol
272ed7e6db Moved event to toxav 2014-02-16 19:11:55 -05:00
mannol
b47ae4f595 Try this fix 2014-02-16 19:11:55 -05:00
mannol
3ae37315e1 Added comments... 2014-02-16 19:11:55 -05:00
mannol
393433ce99 Public header ready to go 2014-02-16 19:11:55 -05:00
mannol
292708c336 Started adding public API 2014-02-16 19:11:55 -05:00
mannol
b30b98aa0b Fixed _all_ the issues 2014-02-16 19:11:55 -05:00
mannol
32284546bf Whoops 2014-02-16 19:11:55 -05:00
mannol
82a9d1ddd0 Fixed bug 2014-02-16 19:11:55 -05:00
mannol
faaaa05206 Fixed audio bug and added reason when terminating call 2014-02-16 19:11:55 -05:00
mannol
0a91084011 Added some fixes for payload calculation 2014-02-16 19:11:55 -05:00
Martijnvdc
172f18b5e8 Added fixes to rtp and updated phone 2014-02-01 06:52:48 -05:00
mannol
88f97078a2 Small fix 2014-01-26 21:02:11 +01:00
mannol
142340aa63 Added build system 2014-01-25 14:41:04 +01:00
mannol
81097ffe25 Minor fix 2014-01-25 02:03:24 +01:00
mannol
65d320e31d Done with encryption and core adaptations. 2014-01-25 01:32:33 +01:00