* rename namespace from ring to jami
* rename logs methods from RING_* to JAMI_*
* rename RING_VIDEO to ENABLE_VIDEO
Change-Id: Ic98498652d7059fafe58a96220d565bcdfa53658
Adds a signal that sends the linear RMS level for a given ring buffer.
The signal must be turned on via the API and can be turned off when
needed.
Adds an audio preview so the mic can be read. Call startAudioDevice and
stopAudioDevice to initialize and stop the audio layer.
Change-Id: I6a71ef87ee805a6d4bfa824fa901dd638e8cbd65
Preemptively adds signal for hardware encoding so version won't have to
be bumped again.
Change-Id: Ie3b828671fab3628853b85a2a8259200e9a809c0
Gitlab: #55
Add -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 to CFLAGS and CXXFLAGS
on Linux platforms, except on Android.
Makes the build not fail in 32-bit linux.
Change-Id: I31358b69b2bf0a99b03d148fbc9f0a3a235d9741
(It would probably be enough to just include config.h, but now the
intention is clearer)
Change-Id: Ia427d940b5b9e94b6ba174fc38e9d638d507ae45
Reviewed-by: Philippe Gorley <philippe.gorley@savoirfairelinux.com>
If the archive is not updated before exporting it, contacts can be
missing (because the file is only updated when a new device is
added for now).
Change-Id: Ie1068af26826b2a9acd1aa2c76123cff43eb6836
Gitlab: #65
Removes refrences to project name in logs and comments where it doesn't
matter whether or not the name is specified.
Change-Id: I17f99390226929ee620bc479b203825389bb3d4d
Adds ability to retrieve the shm renderer info from a call id, in case
the client is launched mid call (else it can't show the call).
SinkClient now keeps track of its width and height.
Change-Id: Ie43c196c60de5e22825fc71ff404e99bbfbe9402
Gitlab: #59
Reviewed-by: Sebastien Blin <sebastien.blin@savoirfairelinux.com>
There is currently no distinction between the "peer busy" and "we
replied busy after timeout" states, since both end in the BUSY state.
Add a new PEER_BUSY state allowing such a distinction:
* PEER_BUSY is set when peer replied busy
* BUSY is set when we replied busy to an incoming call
Bump daemon API number to major 7.0.0 since this is breaking the
current API. In fact, these changes should not break anything in
any well implemented client because unknown states should be properly
handled, but better check.
Change-Id: Id83f6db3d4524a91951b9945797f5fd2c019ff2f
Reviewed-by: Sebastien Blin <sebastien.blin@savoirfairelinux.com>
Makes use of AVFrame's reference counting if possible instead of copying
the data.
Only bumps minor version because MediaFrame et al weren't in the ABI
until now.
Change-Id: I692e76230ed057c1ad4e46ab59ea5cfd163fb98d
Changes default visibility of symbols to hidden and makes only the API
public. This patch aims to provide not only a stable API, but a stable
ABI as well to any users of libring.
This decreases the number of exported symbols significantly, benefitting
dynamic linking time. Also decreases the chances of a symbol collision,
and enables compiler optimizations.
Bumps version to 6.0.0; clients must be recompiled.
Change-Id: I5b639a6c0933af3021e40369b2e80d9a0b825e89
- provides registerSignalHandlers to replace registerCallHandlers,
registerConfHandlers, registerDataXferHandlers,
registerPresHandlers, and registerVideoHandlers which are now
deprecated and forward to registerSignalHandlers
- this patch bumps the daemon API to 5.2.0 and is backwards
compatible
Change-Id: Ie9479610114a474b4748614988c3ea0156dce6a9
Reviewed-by: Sebastien Blin <sebastien.blin@savoirfairelinux.com>
Using MediaFilter would make the resampling time longer and more
unpredictable than directly using libswresample.
Adds libswresample as a dependency.
Simplifies Resampler class.
Resampler detects changes in input and output formats automatically.
Changes Audiofile to use Resampler instead of MediaFilter.
Change-Id: I24919e8fa514dbb4a38408e338016976e7424136
Removes unused/deprecated audiorecord/audiorecorder
Allows any file to be used as a ringtone (mp3, ogg, etc)
Change-Id: I9ce33ec3d5f083caf098266befa597e78a95d7d6
FFmpeg's RTP muxer does not support GSM, while Ubuntu does not package
iLBC. Removes the old configure switches.
Removes package detection from contrib. Keeps contrib rules in case GSM
is later readded.
Change-Id: I705a521e2baf34c757c22a72e04cdf27233b5a7b
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>
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>
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>
Linking Argon2 shouldn't be needed as Argon2
is a private OpenDHT dependency.
Change-Id: Id46aee27cb09a8af36912b59f74d62dbec0839aa
Reviewed-by: Philippe Gorley <philippe.gorley@savoirfairelinux.com>
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>
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>
* 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
* 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
- 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
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>
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
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>
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>
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
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>
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>
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>
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
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>
changed in place of deprecated one on lists.savoirfairelinux.net
Change-Id: Ide7420dda65e838a856c2245a956967a7383f869
Reviewed-by: Nicolas Jäger <nicolas.jager@savoirfairelinux.com>