383 Commits

Author SHA1 Message Date
b59f5cb6ec autoconf: fix typo
Change-Id: I35eaa5a339d5b4b6cb25fb7b12d6006cbf3202a5
2018-07-04 12:50:42 -04:00
d22bed2591 Revert "Revert "media: add filters""
Filters were reverted for the release so the binaries wouldn't include
libavfilter (which wasn't yet used).

This reverts commit 1e6a471687.

Change-Id: Ib9790a544b442066265b3fe1ea96313be35eff62
Reviewed-by: Sebastien Blin <sebastien.blin@savoirfairelinux.com>
2018-05-28 13:07:57 -04:00
1e6a471687 Revert "media: add filters"
This reverts commit ea2933d4ac.

Change-Id: I624c07255f60186a0d1e6610a58956775f91b342
2018-05-09 14:38:14 -04:00
ea2933d4ac media: add filters
Adds dependency to libavfilter, which provides many useful utilities
such as hardware encoding, mixing audio or rotating video.

Access to libavfilter is done through the MediaFilter class, which takes
a filter graph string and AVFrames as input and outputs filtered
AVFrames.

Adds unit tests for MediaFilter.

Change-Id: I0bf3869a9f19ad9cbbe1fc5e2d37eb83ece66ccc
Reviewed-by: Sebastien Blin <sebastien.blin@savoirfairelinux.com>
2018-05-08 14:55:03 -05:00
0eae0449fd namedirectory: use https instead of plain http requests
Add libressl dependency to compile restbed with ssl support. Also,
this patch removes a unused file.
Bump asio to works with libressl instead of openssl.

Change-Id: I5a90dba97693ccda58899f69080e545bdea926d9
Signed-off-by: Sébastien Blin <sebastien.blin@savoirfairelinux.com>
2018-03-29 10:54:00 -04:00
73ef02ac2b build: don't link argon2
Linking Argon2 shouldn't be needed as Argon2
is a private OpenDHT dependency.

Change-Id: Id46aee27cb09a8af36912b59f74d62dbec0839aa
Reviewed-by: Philippe Gorley <philippe.gorley@savoirfairelinux.com>
2018-03-19 17:26:34 -04:00
7f14e58c53 ringaccount: add the ability to copy the account archive
Add a method for exporting the account's archive in a
file.

This patch updates configurationmanager interfaces and
fix an error with exportOnDHT for nodejs.

Change-Id: I9fdfcd20b66854ca768166e5198b8ae428192305
Reviewed-by: Philippe Gorley <philippe.gorley@savoirfairelinux.com>
2018-02-28 12:16:46 -05:00
19dbc12486 datatransfer: API changes to not throw
GTK client uses D-Bus, so is unable to forward exceptions.
This causes crashes of daemon (unhandled exception).

This patch changes DataTransfer API to not throw (noexcept).
This is an important changes, not backware compatible,
so the API version has been modified consequently.

Change-Id: I9f2a2fe1732b2622ace16225b6e792dc15383ba1
Reviewed-by: Anthony Léonard <anthony.leonard@savoirfairelinux.com>
2018-02-19 15:24:40 -05:00
6261e2db06 dring: add AccountDetailsChanged signal
Change-Id: I538d3a777380d8c8c55c0999705a957a522a4a86
Reviewed-by: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
2018-02-12 11:42:58 -05:00
14f5475015 build in non-debug mode by default
* declare NDEBUG for library and contrib
* activate pjsip extra checks as all PJ_ASSERT's are deactivated

Side effect: pjsip does not call abort() due to disabled assertions.

If debug is required:
* contrib: call bootstrap with --enable-debug
* libring: call configure with --enable-debug

Change-Id: I47b104c0f32352f0503457a9d419c4ed5db4e126
2018-02-05 14:17:25 -05:00
5627621796 opendht: bump to 1.6.0rc1
OpenDHT 1.6.0 unifies its API so users don't need to use
extra build flags.

Change-Id: Iea965def553a1a059cc9c41d3ff15ab96b2a8f31
2018-02-01 12:12:09 -05:00
c5e74abe53 Ringaccount: add support for DHT proxy and push notifications
* Bump restbed for OpenDHT, update patch and add patch to react
  to timeout and socket closed in restbed.
* Bump OpenDHT to support push notifications
* Add DRing APIs to support setting a client push notification token
  and to retransmit push notifications to dring
* Implement proxy support in RingAccount

Change-Id: I8d3a02cf54a9666a94ab992ee3fa2958e82aa7ad
2018-01-31 11:20:53 -05:00
1aa7759f8f 2018 copyright date update
Change-Id: I1ef88bc640f79790aad2b5285ea2c776aa8cd366
2018-01-23 17:26:34 -05:00
cbff7d98f0 ios: add video implementation
- adds a slightly altered version of the android video implementation,
  as a swift AVFoundation implementation will be used in the ios client
  to enumerate the video input devices.

Change-Id: I7c16fc39c5d22e54fb146881150b6cbcfddb7806
2018-01-12 17:37:58 -05:00
755347dd6b data transfer: first implementation
First implementation of Reliable Data Transfer feature in Ring.

This implementation is a draft, comes with a Python script
tools/dringctrl/sendfile.py to play with and doesn't
implement all the API as described into "datatransfer: API proposal"
commit.
This version uses TLS over TCP-TURN sockets to encrypt data.

Transfers require a TURN server with TCP peer connections
as described by the RFC-6062.

Testing: Currently only sendFile API is implemented and data are
saved into a temporary file saved in "/tmp/ring_XXXXXX",
where XXXXXX are replace by mkstemp() command.

Change-Id: I5b8f48432edd58df5046e368a99f58ea44046dcd
Reviewed-by: Olivier Soldano <olivier.soldano@savoirfairelinux.com>
2018-01-05 11:18:35 -04:00
94a48eb994 fix build on debian testing
Debian Testing doesn't use the contribs, so bump down the FFmpeg
requirements in the configure.ac as well as making RING_ACCEL dependant
on a certain version of libavutil.

Reviewed-by: Alexandre Viau <alexandre.viau@savoirfairelinux.com>
Change-Id: I1f9d0de44e5f9d0bbb69b20d73a396de7e5d64b4
2017-12-30 21:22:42 -04:00
64322318dc osx: bump ffmpeg
Bumps FFmpeg to match the other platforms. Modifies the acceleration
code to work under the new API.

Enables bitstream filters, as some of libavcodec's components, such as
VideoToolbox, use them.

Change-Id: I3a6cee2cf06881bba4602c0ed635ff45908e7b85
Reviewed-by: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
2017-12-21 18:18:00 -04:00
c8c0c7e2a7 new placeCall API, bump daemon API to 4.1.0
Add a new placeCall API with possibility to gives call details.
This permits to give information like media preferences before
to start the call.

This changes force a daemon API bump to 4.1.0

Change-Id: I95d3b5480e194ece4a3cdb03436b2e1625eae016
Reviewed-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
2017-12-04 11:21:21 -05:00
5066a44f95 contrib: bump ffmpeg
A non exhautive list of what this bump brings:
- Direct 3D 11 hardware decoding (UWP)
- Uniform API for vaapi, vdpau, videotoolbox, dxva2 and d3d11va
- 32 bit MediaCodec fix (Android hardware decoding)
- Non X screen capture on Linux (Wayland support)
- Better VP9 support
- Various bug fixes and optimizations

Due to problems with the VideoToolbox acceleration, the bump for MacOS
is postponed.

Change-Id: Id05a1d789c90ea1321f10e801a036c47b6f76d88
2017-10-19 06:29:41 -04:00
2cc09ccc12 configure: remove accel build options
The --disable-[accel name] switches of the configure script are a
nightmare to maintain. They break with every bump of FFmpeg, and don't
work right half the time.

Keep only global switch --disable-accel.

Change-Id: I6b645f7102abb3903c27d7dac7d70f7f15a5e728
Reviewed-by: Olivier Soldano <olivier.soldano@savoirfairelinux.com>
2017-10-05 10:03:14 -04:00
f1819432b5 add pjnath TurnTransport class
TurnTransport class is a C++ wrapper on PJNATH turn socket API.
Bring an easy to use socket connected to a TURN server.
Support TCP (even with peer) and UDP connection types.

Requires rfc6062 support into pjproject 2.6, given by patch:
88c820ee60 / contrib: implement rfc6062 in pjnath

Include fonctional tests working with turn.ring.cx.
Run tests as usual with "make check" command.

Change-Id: Idf14c2ea192cab2fccf99b142492086284920a6b
Reviewed-by: Olivier Soldano <olivier.soldano@savoirfairelinux.com>
2017-10-04 11:49:00 -04:00
58fd779117 require C++14
Move build requirements from C++11 to C++14, for contrib and core.

[GR: ci msg + contrib support + m4 update]

Change-Id: I22793ba1ca06ea7c45d237c882a92d20a008f76f
Reviewed-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
Signed-off-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
2017-10-03 09:33:58 -04:00
44c61afc72 eth: bump sources, remove dependency to boost, cryptopp
Update "eth" to latest version from
https://github.com/ethereum/cpp-ethereum

This new version makes use of secp256k1 instead of custom
code and cryptopp to handle EC generation, and reduces its dependency
to boost to use more of the C++11 STL.

This allows to trim the code to completely remove the boost and
cryptopp dependencies.

Change-Id: I19118d3b833a9425cddbeabf6d0b6e07d5a4b15e
2017-10-03 02:14:01 -04:00
26743109a7 accel: remove vda
VDA is deprecated by Apple and replaced by VideoToolbox starting with
OSX 10.8+. FFmpeg is also deprecating VDA, as it was not ported to the
new hwaccel API.

Change-Id: I3cef3e98e31a8ba2497bebeeb6c72046a7552610
Reviewed-by: Anthony Léonard <anthony.leonard@savoirfairelinux.com>
2017-09-27 20:24:31 -04:00
dc73af8379 add -Wformat=2 check to debug build
Change-Id: Ie7e526c5c7c9e5bafd6fd44003b4a24ffee2eaa2
2017-08-30 10:54:56 -04:00
fbdd6ecb2c use ring gnu.org ML
changed in place of deprecated one on lists.savoirfairelinux.net

Change-Id: Ide7420dda65e838a856c2245a956967a7383f869
Reviewed-by: Nicolas Jäger <nicolas.jager@savoirfairelinux.com>
2017-08-24 11:02:04 -04:00
bcbc6fcc60 test: refactoring test files
* moved unit-tests into the dedicated directory unitTest
* removed no-more-used files
* common code style for test and usage of test_runner.h everywhere
* imported video_input changes by Olivier Grégoire (GSoC-2017)

Change-Id: Ifbb5585caaa2618c4ab943681814c9afbfc76311
Reviewed-by: Olivier Soldano <olivier.soldano@savoirfairelinux.com>
2017-08-23 13:53:38 -04:00
86b8fbecca build: match ffmpeg version with contrib
Change-Id: Iece6177887b8f412ffdee393278e4d9761cc3745
Reviewed-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
2017-08-10 11:40:36 -04:00
c178b8bc87 refactor accel configuration
Makes the configuration of hardware acceleration more legible and
removes unused symbols.

Change-Id: I8d585ba4e26bdfdedaeb9e2f7ce17a2283f3c763
2017-07-31 16:18:43 -04:00
975dc054e1 bump ring daemon to version 4.0.0
Specifies that the daemon is in version 4.0.0 and not Ring as a whole

Change-Id: Idb2ee245d474516a3ef8c6f8b2d4ce14d26cbcbb
Reviewed-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
2017-07-19 17:27:21 -04:00
c4d03c6dbf nodejs: add initial module
Change-Id: I12310bd4a5826e5658e5b7fe72a8a5ae6efe82d0
2017-07-14 16:50:39 -04:00
e116a77296 test: add sip and base64 tests
sip
* testMultipleOutgoingIpCall()
* testHoldIpCall()
* testSIPURI()
* testSimpleIncomingIpCall()
* testMultipleIncomingIpCall() wip

*base64
*test_video_input
tests done by Florian Wiesweg
https://gerrit-ring.savoirfairelinux.com/#/c/6652/

Change-Id: I748318cfade68ac1c42050f6a1d734a029b5128c
Reviewed-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
2017-07-12 09:09:57 -04:00
36558a6d75 tests: add sipp test
Original tests taken from the 1.4.0 version.
Modified to keep only a working base.

[guillaume: ci msg modified for clarifications]
[guillaume: fix configure.ac bad insertion]

Change-Id: I0d7f848ccbbd3a7a0d832cead6d8e01b01e91b24
Reviewed-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
2017-06-20 21:17:41 -04:00
bd02113e92 video: mac hardware acceleration
Adds VideoToolbox and VDA hardware accelerations. VideoToolbox
supports H.264, H.263 and MPEG4, while VDA only supports H.264.

VDA is implemented in case libav is used instead of FFmpeg, as
only the latter implements VideoToolbox. This being said, Ring
will prefer VideoToolbox.

VideoToolbox is OSX 10.8+ and iOS 8+. VDA is OSX 10.6.3+.

Both have their respective configure switches.

Change-Id: I588fcbb92809a9d6a56bb9b6a7ac3a59874c0186
Tuleap: #1090
Reviewed-by: Anthony Léonard <anthony.leonard@savoirfairelinux.com>
2017-06-05 13:35:33 -04:00
45faaa25d6 video: add vdpau acceleration support
Adds the VDPAU acceleration for GNU/Linux systems and
enable it by devault. Can be disabled using ./configure --disable-vdpau

Support for H.264, H.263 and MPEG4, as long as the hardware supports
them.

Requires libvdpau and ffmpeg 3.3 (contrib bump included by this patch)

[guillaume roguez: re-word ci msg to be more explicit]

Change-Id: I7479f4d7e3d51caf702be8c85284a4fca01605b3
Reviewed-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
2017-05-17 19:41:10 -04:00
c8557c75b6 contrib: add argon2 library as daemon dependency
This patch fixes osx build that not correctly link with Argon2.

Change-Id: I2f71179a163643667cac5caaa9517aed5a0de3fc
Reviewed-by: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
2017-05-09 16:32:02 -04:00
af5fd26359 fix a build error when X11 environment is available but not libva
Change-Id: I3d89ad75c7134ba0da277bdaf8b079e638e0ccb7
Reviewed-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
2017-05-09 12:58:41 -04:00
a5ded29b99 update copyright date to 2017
Change-Id: I6dbc51dd41c1f44d1446fe7365026af037bc86d9
Reviewed-by: Stepan Salenikovich <stepan.salenikovich@savoirfairelinux.com>
2017-01-05 16:41:02 -05:00
13b56d4347 build: remove warnings about unknown pragma
Unknown pragma is not a big issue for us.
That's only happen in alien code.
But gives ton of noisy warnings for nothing.
Desactivated

Change-Id: I87dedfd54c3090c796855654fe53768c1ecec105
Reviewed-by: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
2016-11-30 21:21:01 -05:00
4b5f8b5981 hardware acceleration refactoring
Refactors the hardware acceleration mechanism by making AVCodecContext
a class member in HardwareAccel, wrapping extractData in a base
method to avoid duplicating boilerplate code, making the AccelID
enum and AccelInfo struct visible only to the makeHardwareAccel
function and adds more flexibility in the compilation of Ring's
hardware acceleration.

Change-Id: Ibfb4324e2f84b4d08bb5dd1e4b22873255aeb196
2016-11-30 17:16:50 -05:00
5c78be1054 config: wrap accel and video prefs in ifdef
Correctly wraps video preferences and hardware acceleration
in ifdef preprocessor statements (RING_VIDEO and RING_ACCEL,
respectively). This fixes cases where Ring would not compile without
video or video acceleration. Video acceleration is now dependant on
the presence of video (--disable-video disables acceleration).

Change-Id: I087cc1dc794d0f19daa68cdaec09e126542147f9
2016-11-22 11:05:36 -05:00
9a7ba8d0b5 namedirectory: optional use of old restbed API
Reviewed-by: Alexandre Viau <alexandre@alexandreviau.net>
Change-Id: I9b95dd1e061717f390e4fd5d5209b2aebe18dc9c
2016-11-01 16:50:38 -04:00
ca5ecfa0ee daemon v3.0.0
Change-Id: I53502e1bbd898f46d1a5b65e9615308159bd69d8
Reviewed-by: Stepan Salenikovich <stepan.salenikovich@savoirfairelinux.com>
2016-11-01 14:46:55 -04:00
f062220cd2 nameservice: add name directory
Change-Id: I89c26b87c29d8c9dd541583f67dd13dbdc3ff37a
Tuleap: #938
2016-10-27 11:51:54 -04:00
18533eb24f build: fix daemon build for mingw32 when restbed is needed.
Fix compilations options problem when building
for mingw32.
 * configure.ac: Removed some LDFLAGS preventing test for
   librestbed to work. Also added -lws2_32 as restbed needs
   it.
 * src/Makefile.am: LDFLAGS removed from configure.ac are
   included here.

Change-Id: Ie6256663778eb1376d4ae7930cbc94e7a240c714
2016-10-18 19:31:04 +00:00
5cb81afa27 ringdht: add ethereum source
* import ethereum source subset from https://github.com/ethereum/cpp-ethereum

Change-Id: I57b46a49d7cb1307a3455374bb340cc69d872605
Tuleap: #682
2016-10-07 12:06:06 -04:00
6f57f00258 contrib: add boost, cryptopp
Change-Id: Ia972ca8b3ae99f382ca7d7433071e4c3dd07a6ee
Tuleap: #682
2016-09-23 17:56:30 -04:00
921146f553 video: hardware acceleration
Contains code common to all hardware accelerations to be implemented.

Enables the VAAPI acceleration for intel linux systems, with support
for H.264, H.263 and MPEG4.

To use VAAPI, you need libva, libva-x11 and libva-drm.

Hardware acceleration is enabled by default, and can be disabled with
"./configure --disable-accel".

Change-Id: Id0696465b785de0735bbce9750932ac38efe0713
Reviewed-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
2016-09-23 16:36:52 -04:00
7ea2e35277 fix portaudio compilation on gnu/linux
Change-Id: I6befc194929f0b4b601371d7ef4a0880108a2ce4
Tuleap: #1000
2016-09-12 13:26:41 -04:00
c4d7748ec8 update copyright date
- add "alone" files in update-copyright tool
- make a pass of this last tool to fix dates

Change-Id: I1f276a132c0d5468b81400bbb50889e80823f45c
Signed-off-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
Reviewed-by: Stepan Salenikovich <stepan.salenikovich@savoirfairelinux.com>
2016-09-07 16:16:42 -04:00