Commit Graph

4277 Commits

Author SHA1 Message Date
xhe
0becafd272
Split bit_rate_set(), one for audio, one for video.
Fixes #572.

As discussed in the issue, there's a risk that toxcore may not hold the
maximum bitrates libvpx supports, if toxcore insists on using integer
type. I initially proposed to have another flag in set(), so that we can
use unsigned type instead. iphydf came up with a better solution, that is
splitting the original functions, one for audio, one for video. Now, we
could safely replace int32_t with uint32_t.

Also: clean video_bit_rate_invalid()

Though this is not a part of issue #572, as it's used in the
toxav_bit_rate_set(), i cleaned the code. As mannol said, there should be
a check. Uint32_t is large enough to hold the maximum bitrates libvpx
supports, but user may pass a value larger than uint while smaller than
uint32_t. Thanks to the reminding from nurupo, it's no longer a stub
function.

Bitrate error enums are shared for both audio and video
https://github.com/TokTok/c-toxcore/pull/578#issuecomment-360095609, just
as iphydf said.
2018-01-25 14:29:01 +00:00
iphydf
cd8080f6d1
Rename some rtp header struct members to be clearer.
These are the names used in the next PR, in RTPHeaderV3, so here we
rename the old struct members already.
2018-01-25 09:42:01 +00:00
iphydf
a640ed106a
Remove dead return statement.
Turning this code:
```c
if (cond) { ... return 0; }
if (!cond) { ... return 0; }
return -1;
```
into:
```c
if (cond) { ... return 0; }
else { ... return 0; }
```

The `return -1` in the first variant can never happen.
2018-01-25 09:22:19 +00:00
iphydf
67cf395163
Disable the autotools build in PR builds.
We will only build this during the nightly build. It's very rare for the
autotools build to break when the cmake build does not.
2018-01-25 02:52:13 +00:00
iphydf
42636861d8
Publish a single public BUILD target for c-toxcore. 2018-01-22 21:18:24 +00:00
iphydf
8f1bbcf83e
Use <stdlib.h> for alloca on FreeBSD.
https://www.freebsd.org/cgi/man.cgi?alloca

If stdlib.h does not define alloca, and we're using GCC (or Clang), we
define the macro ourselves in terms of a GCC builtin.
2018-01-22 21:05:30 +00:00
iphydf
e6c04ef028
Use self-built portaudio instead of system-provided. 2018-01-22 00:44:19 +00:00
iphydf
033965b8cc
Make the monolith test a C++ binary.
This way, developers compile toxcore, toxav, and toxencryptsave as C++ at
least once at home, reducing the likelyhood of running into travis
failures where we compile as C++ in the windows build.
2018-01-21 20:56:30 +00:00
iphydf
52778aed93
Make BUILD files more finely-grained.
This allows us to precisely see which libraries depend on which and lets
us split them up more, if necessary.
2018-01-21 19:44:09 +00:00
iphydf
6c98791563
Add comment from #629 in ring_buffer.c. 2018-01-21 17:42:19 +00:00
iphydf
1cecb6c87a
Add BUILD files for all the little tools in the repo.
Also, fix av_test.c, since I broke it last time.
2018-01-21 01:31:11 +00:00
iphydf
822dd2fac2
Don't allocate or dereference Tox_Options in tests.
This struct will soon become opaque.
2018-01-21 00:14:43 +00:00
iphydf
98febe0589
Add testing/*.c (except av_test) to bazel build. 2018-01-20 19:32:12 +00:00
iphydf
d7583a719a
Remove nTox from the repo.
It's a maintenance burden nobody uses. Let's make toxic the official
console client, instead.
2018-01-20 19:05:53 +00:00
Diadlo
c5976e37ea
Add correction support for conference
Fix #704
2018-01-20 14:10:48 +00:00
iphydf
b030b4d8c0
Fix log message in simple_conference_test: invite -> message. 2018-01-20 13:25:58 +00:00
iphydf
7c2e4dd403
Add a simple conference test with 3 friends.
This tests that a message from tox1 is relayed via tox2 to tox3 when tox1
and tox3 are not friends.
2018-01-20 12:22:52 +00:00
zoff99
32a5d25ccb update to astyle 2.04 on circleCI to get the correct result 2018-01-20 00:31:28 +01:00
iphydf
da4ba1731a
Add astyle to Circle CI build. 2018-01-19 22:39:42 +00:00
iphydf
656040027d
Add some explanatory comments to the toxav audio code.
By @zoff99.
2018-01-19 22:27:04 +00:00
iphydf
1a4e56397b
Use more descriptive names in bwcontroller. 2018-01-19 21:03:48 +00:00
iphydf
f1d726a3a8
Extract named constants from magic numbers in toxav/audio.c.
By @zoff99.
2018-01-19 20:20:36 +00:00
iphydf
25d3001556
Use larger arrays in crypto timing tests.
Increasing from 256K to 1M and increasing the number of iterations from
1000 to 2000. This makes the test more accurate and less flaky.
2018-01-19 18:15:17 +00:00
iphydf
0a5be3cbc5
Use C99 standard in bazel builds. 2018-01-18 21:52:31 +00:00
iphydf
18a33169b8
Add bazel build scripts for c-toxcore.
This allows us and users to reproducibly build verified versions of the
library with checksums. It will power the toktok-stack continuous build
with checked-in checksums at specific git revisions.
2018-01-18 16:11:52 +00:00
iphydf
643eea60bb
Make DHT a module-private type. 2018-01-16 20:06:07 +00:00
iphydf
22db2b9fe5
Make Net_Crypto a module-private type. 2018-01-16 15:46:13 +00:00
iphydf
bc58c6ea2f
Make libcheck optional for windows builds. 2018-01-16 14:41:52 +00:00
iphydf
0b13936ce8
Use apidsl to generate LAN_discovery.h. 2018-01-16 14:17:05 +00:00
iphydf
b3ec05543a
Make pack/unpack_ip_port public DHT functions.
These will be needed for new group chats.
2018-01-16 10:43:18 +00:00
romik-g
6fc0be5142
Add Alpine Linux Dockerfile 2018-01-16 10:17:16 +00:00
iphydf
ae6250c7af
Sort monolith.h according to ls(1): uppercase first. 2018-01-16 09:50:01 +00:00
Maxim Biro
daf4dc0571 Don't install packages needlessly on Travis 2018-01-15 19:10:16 -05:00
iphydf
7110f138e9
Run fewer Travis jobs during Pull Requests.
Still run all the jobs during cron and regular push to branch. We
disabled build for push to branch, so cron is the only place where all
builds are run. This also means we need to worry less about spending time
in nightly builds, because they occur only once a day.

See https://github.com/travis-ci/travis-ci/issues/9071
2018-01-15 23:07:54 +00:00
iphydf
cec5fea71b
Remove hstox test for now.
This isn't adding value. We're going to redo the whole rpc test framework
in the future, after a lot of refactoring that the hstox test currently
just stands in the way of.
2018-01-15 11:29:51 +00:00
Smoked Cheese
402664f58d
update rpm spec and use variables in cmake instead of hardcoded paths (#624) 2018-01-15 14:23:33 +03:00
Diadlo
e16d3894c5 Add correction message type 2018-01-15 08:48:22 +00:00
iphydf
da739a9438
Add random_u16 function and rename the others to match. 2018-01-14 21:08:02 +00:00
iphydf
d79b15c52d
Use apidsl to generate ping.h.
The ping.api.h file looks rather ugly, but it works. This is an exercise
in finding the complete set of use cases needed from apidsl for toxcore.
We'll try to make things work as much as possible, and then make apidsl
better and make the .api.h files pretty.
2018-01-14 19:30:05 +00:00
iphydf
1eea3f0ab6
Fix some memory or file descriptor leaks in test code.
Also some missing return value checks for `fopen`.
2018-01-14 19:15:28 +00:00
iphydf
bacd74c4dd
Make TCP_Client_Connection a module-private type. 2018-01-14 19:13:32 +00:00
iphydf
7aca413e32
Move TCP_Secure_Connection from .h to .c file. 2018-01-14 19:12:55 +00:00
iphydf
eda6470f0e
Make Friend_Connections a module-private type. 2018-01-14 19:12:28 +00:00
iphydf
c28d362dd2
Make Onion_Client a module-private type. 2018-01-14 16:20:43 +00:00
iphydf
d8fcac5b4f
Make Friend_Requests a module-private type. 2018-01-14 16:16:30 +00:00
iphydf
4b54d14d9c
Make Onion_Announce a module-private type. 2018-01-14 14:20:20 +00:00
SkyzohKey
1e258a1915
Add projects link to Readme. 2018-01-14 11:14:57 +00:00
iphydf
c38d3de604
Filter out annoying log statements in unit tests.
These may be useful when debugging toxcore locally, but are not useful in
unit tests.
2018-01-14 10:52:13 +00:00
iphydf
e775b5533b
Make Ping_Array a module-private type. 2018-01-13 23:55:08 +00:00
Yuri
1e1efec34a
pkg-config .pc files: added .private versions of Libs and Required
To prevent top-level linking of all libraries.

Problem: ```pkg-config --libs toxcore``` returns all libraries that are
required by all libtox*.so libraries. This is wrong because for a
dynamically linked executable only top-level libraries need to be
supplied. ```pkg-config --libs --static toxcore``` should return all
libraries for the statically linked executable.

For example, the ToxBot https://github.com/JFreegman/ToxBot executable
uses pkg-config and is linked with the opus library, which is wrong.

Based on #533.
2018-01-13 23:04:23 +00:00