Commit Graph

411 Commits

Author SHA1 Message Date
irungentoo
87c9ac242b
Merge branch 'Opus-Codec-Settings' of https://github.com/JasonLocklin/toxcore 2015-07-31 23:36:19 -04:00
Jason Locklin
f05fdae055 added documentation 2015-07-31 11:11:32 -04:00
Jason Locklin
ef086a5897 Set packet loss percentage
Make the Codec resistant to up to 10% packet loss (default 0) at the expense of some bandwidth.  10% is aggressive (1-5% should be typical for voip systems, but can be higher when users are on WiFi connections. This could also be adjusted on the fly, rather than hard-coded, with feedback from the receiving client.
2015-07-31 11:08:51 -04:00
Jason Locklin
bcb864af4a Enable in-band FEC
In-band FEC can be used with OPUS_APPLICATION_VOIP to improve Codec robustness to packet loss and corruption. It is disabled by default:

http://opus-codec.org/docs/html_api-1.0.1/group__opus__encoderctls.html#ga5b67dc832aa46c1c2f35752c46380545
2015-07-31 11:01:32 -04:00
Jason Locklin
06c72f83d7 OPUS_APPLICATION_VOIP should be used
See: http://opus-codec.org/docs/html_api-1.0.1/group__opus__encoder.html#gaa89264fd93c9da70362a0c9b96b9ca88

"VOIP" rather than "AUDIO":
> gives best quality at a given bitrate for voice signals. It enhances the input signal by high-pass filtering and emphasizing formants and harmonics. Optionally it includes in-band forward error correction to protect against packet loss. Use this mode for typical VoIP applications.
2015-07-31 10:50:37 -04:00
irungentoo
553f3ea513
Fixed some strange build issues. 2015-07-20 22:21:53 -04:00
mannol
7d5de68364 Fixed CALL_STATE naming 2015-07-10 16:54:53 +02:00
mannol
10e0209f2a Merge branch 'new_api' of github.com:mannol/toxcore into new_api 2015-07-09 03:41:28 +02:00
mannol
dd0880af38 Fixed documentation. 2015-07-09 03:40:47 +02:00
GrayHatter
ce9003d432 send_message() is too global to be non-static 2015-07-08 15:09:19 -07:00
mannol
4bc2413c44 Fixed missing include toxav_old.h 2015-07-01 22:50:06 +02:00
mannol
6c126e34e6 Implement handling capability change on rtp level 2015-06-30 01:41:38 +02:00
mannol
13148d7d7c Added support for old groupchats 2015-06-27 19:20:52 +02:00
mannol
2ecb71bb1e Renamed TOXAV_CALL_STATE to TOXAV_FRIEND_CALL_STATE 2015-06-27 17:28:07 +02:00
mannol
1ba55d0ca7 Added explanation about how audio callback works 2015-06-27 16:12:33 +02:00
mannol
08bc4eb0e0 Added payload turning off by setting bit rate to 0 2015-06-27 01:55:28 +02:00
mannol
9aba4ec273 Random fixes 2015-06-25 01:04:31 +02:00
mannol
a3132feddb Fixed sample size in callback and other stuff 2015-06-13 15:00:34 +02:00
mannol
979d7730aa Forgot about this 2015-06-05 22:18:21 +02:00
mannol
d694839d60 Rebased on master and removed alpha channel (again) 2015-06-05 22:14:37 +02:00
mannol
3100042a2b Updated with master 2015-05-22 23:22:31 +02:00
mannol
64037017cc Fix bug 2015-05-12 22:16:00 +02:00
irungentoo
b2350f2e26
Check if call supports video encoding before encoding frame. 2015-05-09 16:09:48 -04:00
mannol
73fbc22961 Fixed inconsistencies 2015-05-07 23:14:03 +02:00
irungentoo
048d793021
Toxav fix.
Use stored image width instead of displayed image width.
2015-05-05 16:12:09 -04:00
mannol
eb6e8aa290 Fixed* api comments and some bugs 2015-05-01 22:29:25 +02:00
mannol
5c4f275686 Merge branch 'new_api' of github.com:mannol/toxcore into new_api 2015-04-30 00:40:53 +02:00
mannol
b2b11f0fba Added many test and fixed various warnings 2015-04-30 00:40:30 +02:00
krobelus
45c45841cf Fixed typo 2015-04-29 09:21:28 +02:00
mannol
9bba7a0434 Done 2015-04-29 01:01:25 +02:00
mannol
e4a020333d working av new api 2015-04-28 00:55:57 +02:00
mannol
27e0254a98 Almooooooost 2015-04-27 00:15:57 +02:00
mannol
144fc94d69 Almost done 2015-04-26 00:31:03 +02:00
mannol
1bfd93e64a Finished refactoring 2015-04-22 02:09:37 +02:00
mannol
3fd0ee5f08 Final touchups 2015-04-21 02:31:12 +02:00
mannol
cbb8fdd4ea Add extern "C" 2015-04-20 11:21:55 +02:00
mannol
3a12a3b329 Update comment 2015-04-18 19:15:46 +02:00
mannol
eb9f4ad592 Fix toxav callback 2015-04-18 19:08:18 +02:00
mannol
d1fd3e36a6 Updated with upstream 2015-04-17 19:19:58 +02:00
mannol
969367b72a Update latest 2015-04-17 15:55:02 +02:00
mannol
da6c17222f The pretty basic adaptive bitrate is *working* 2015-04-16 02:00:34 +02:00
mannol
2465f486ac Started custom RTCP 2015-04-13 01:45:53 +02:00
mannol
b2d88a4544 Random fixes 2015-04-11 02:07:54 +02:00
mannol
4fa31d14cf Make it possible to decode mono audio with stereo decoder 2015-04-09 02:43:13 +02:00
mannol
9c003c9dd2 Video works now 2015-04-08 01:00:19 +02:00
mannol
bf9f7e2ae8 Video works but there is one deadlock left and video replay is slow 2015-04-07 01:24:36 +02:00
mannol
62c4fd7409 Video preview works (lmao) 2015-04-02 02:04:45 +02:00
mannol
fdaad0b7c0 A little CS cleanup 2015-03-29 01:10:34 +01:00
mannol
e65efc8936 Improvement in test and removed some bloat from CS 2015-03-28 03:36:31 +01:00
mannol
9bd20e8741 Merge branch 'new_api' of github.com:mannol/toxcore into new_api 2015-03-25 23:31:04 +01:00
Dubslow
56e5373a11
Consistency with core api 2015-03-25 14:55:42 -05:00
mannol
c1aa5bac4f Current progress of video testing 2015-03-24 23:59:01 +01:00
mannol
96ca88a0d6 Make it possible to change channels/sample rate of the decoder 2015-03-23 23:38:04 +01:00
mannol
995bddbc26 Audio works in test 2015-03-23 22:22:17 +01:00
mannol
62af82705a Some progress 2015-03-22 23:50:43 +01:00
mannol
a4fae8ffd4 Started testing transfer 2015-03-22 00:22:40 +01:00
mannol
4f76a8c89e Updating with master 2015-03-20 19:07:23 +01:00
irungentoo
8c18dd42a7
Fix build warning. 2015-03-19 18:17:27 -04:00
irungentoo
2b2c9f37a6
Fixed group audio issues when getting an old audio packet. 2015-03-19 18:02:46 -04:00
mannol
45e8807c1e Make toxav thread safe 2015-03-01 18:45:04 +01:00
irungentoo
e5791ed9ef
Added different error codes for custom packet functions in Messenger. 2015-02-26 13:13:26 -05:00
irungentoo
33370edee6
Changes to custom packet functions in Messenger.
Added function for rtp A/V packets, modified functions to behave
correctly for the new api.
2015-02-26 08:05:57 -05:00
irungentoo
ca997bda70
toxav new api fixes. 2015-02-25 20:51:37 -05:00
mannol
9e65cd5337 Implement pausing 2015-02-24 23:27:20 +01:00
mannol
29601feb76 New msi protocol 2015-02-21 01:07:22 +01:00
mannol
efe31ec92f Removed extra msi header and started testing 2015-02-20 00:23:38 +01:00
mannol
6e259d5fcb Msi should be done; toxav.c need a cleanup and adjustments 2015-02-18 23:23:46 +01:00
mannol
483a6ffa32 Added 2 new headers into msi for buffer control 2015-02-17 23:34:40 +01:00
irungentoo
c6a59e64b7
Updated types in Messenger callbacks to fit with the ones in the new api.
Friend number changed from int32_t to uint32_t.
Some lengths changed to size_t.
2015-02-17 15:49:22 -05:00
mannol
7329f3b3d4 Fixed header protectors and cleaning up the msi 2015-02-16 23:30:20 +01:00
mannol
8c245affb1 Started adjusting msi backend to new api 2015-02-15 22:41:10 +01:00
mannol
aad857527c Control part of new api already kind of works 2015-02-14 23:37:52 +01:00
irungentoo
ee3adf2641
Fixed memory leak. 2015-02-08 16:23:05 -05:00
irungentoo
01b4ad7a8a Fixed memory leak. 2015-02-06 15:16:07 -05:00
irungentoo
7e7b7f6c33
Fixed memory leak. 2015-02-06 15:13:36 -05:00
irungentoo
1302981d55
Removed useless misleading define. 2015-02-04 20:54:08 -05:00
mannol
39680f31d0 Progress 2015-02-01 23:43:54 +01:00
mannol
1450c22d01 Current progress 2015-01-24 23:29:54 +01:00
mannol
e57fb8c12e Progress 2015-01-17 18:22:20 +01:00
Tux3 / Mlkj / !Lev.uXFMLA
4f4967a45e toxav_prepare_transmission: More descriptive error
When trying to prepare an already active call, return av_ErrorAlreadyInCallWithPeer not av_ErrorNoCall
2015-01-04 18:35:50 +01:00
irungentoo
ffa7a726b2
Use same jbuf size for group as for one on one chats.
Use define instead of constant.
2014-12-28 15:45:27 -05:00
irungentoo
9da75d009f
Cut one on one default audio bitrate by half. 2014-12-17 20:52:39 -05:00
irungentoo
ecba631493
Fixed some A/V threading issues.
Audio dropping on video calls issue should no longer happen.
2014-12-16 16:10:48 -05:00
irungentoo
82ba83e526
cs_set_video_encoder_resolution improvements. 2014-12-16 13:10:28 -05:00
irungentoo
7d4489b872
Merge branch 'mem-leak-fix' of https://github.com/nurupo/InsertProjectNameHere 2014-12-12 20:56:19 -05:00
irungentoo
4e1e3150d3
Fixed memory leaks. 2014-12-12 20:55:43 -05:00
Maxim Biro
05cc7df031 Fixed a memory leak 2014-12-12 20:41:27 -05:00
irungentoo
129f620fa5
Increase video quality and distance between keyframes. 2014-12-12 19:55:47 -05:00
irungentoo
39cc14ccea
Make the maximum size of the jbuf at least 4 times the capacity.
Should prevent issues that might occur because a different thread is
reading it.
2014-12-12 18:39:39 -05:00
irungentoo
71527c436c
Having two buffers for audio isn't really good. 2014-12-12 18:35:52 -05:00
irungentoo
12f396fcc2
Fixed video packet assembling.
Video should look better now.
2014-12-12 17:47:57 -05:00
irungentoo
7d27893f1a
Merge branch 'more_consistent_custom_packet_handlers' of https://github.com/wrouesnel/toxcore 2014-12-09 16:39:52 -05:00
Will Rouesnel
8a56cb3b58 Change prototype for custom_packet_handler functions
Change the custom_packet_handler callback function interface to be
consistent with other callback interfaces.

The new interface takes the Messenger object calling as the first
parameter, and moves the user data object to be the last parameter. 

This makes it comparable to the callbacks for file transfer and the
like, and should simplify building interfaces.

The new prototype is: int (*)(Messenger *m, int32_t friendnumber, const
uint8_t *data, uint32_t len, void *object)
2014-12-09 07:51:49 +11:00
irungentoo
af0d6c0695
Fixed possible issue with wrong size being passed to opus_decode(). 2014-12-07 18:23:55 -05:00
irungentoo
f6b3e6e8fe
Fixed possible threading issues. 2014-12-03 14:41:01 -05:00
irungentoo
be9c6f88d3
Fixed possible threading issue. 2014-12-03 13:52:18 -05:00
irungentoo
1c3f88758d
Jbuff fixes. 2014-11-29 16:13:50 -05:00
irungentoo
e254c4fe3e
Fixed bug where video didn't work anymore.
Some other cleanups.
2014-11-29 16:09:50 -05:00
irungentoo
8deb032b2d
Merge branch 'mutex-1' of https://github.com/mannol/toxcore 2014-11-29 16:09:24 -05:00
mannol
e62ded3a6d More av cleanup 2014-11-29 13:42:19 +01:00
irungentoo
db68c6eff6
Fixed toxav issues. 2014-11-28 13:10:27 -05:00
irungentoo
d6f733c7e6
Actually fixed build issue. 2014-11-26 16:17:29 -05:00
irungentoo
ed80c43e49
Fixed build issue. 2014-11-26 16:03:22 -05:00
Imperative
6cff9ecf73 Forgot to replace this 2014-11-26 00:26:03 +01:00
Imperative
580c4a60df Fixed some fatal spelling mistakes 2014-11-26 00:19:57 +01:00
irungentoo
6e361a52fb
Fixed integer rollover bug in toxav. 2014-11-25 17:22:44 -05:00
irungentoo
28ffa035cb
Fixed possible issue. 2014-11-25 15:31:21 -05:00
irungentoo
279c33c01a
Merge branch 'master' of https://github.com/mannol/toxcore 2014-11-24 20:24:59 -05:00
irungentoo
49f4583bc1
Enable use of lower sample rates for group chats. 2014-11-22 16:40:25 -05:00
irungentoo
1ef2092bcc
Fixed small issue where group audio would jumble up sometimes at start of stream. 2014-11-20 18:05:52 -05:00
mannol
386c9748d4 av refactor 2014-11-18 00:46:46 +01:00
irungentoo
4e6f993e7d
Cut bitrate by half for 1 channel audio. 2014-11-17 17:16:51 -05:00
irungentoo
7fee48b148 Increased audio packet queue size by 2. 2014-11-15 14:08:10 -05:00
irungentoo
3b10a248dc
Cleaned up some code, made group av clean up properly after itself
when the group is killed.
2014-11-11 15:01:36 -05:00
irungentoo
8c0225b27f
2 channel audio can now be sent to groupchats.
Some cleanups and added comments.
2014-11-11 14:39:25 -05:00
irungentoo
a8f670bd68
Added comments. 2014-11-11 09:48:52 -05:00
irungentoo
f0f68efee8
Audio group chats still have some small issues. 2014-11-10 20:23:48 -05:00
irungentoo
94ac524374
Group audio might work now but I have not tested anything yet. 2014-11-10 17:59:14 -05:00
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