These informations contains the participants in a conference and their
position in the rendered frame. The description of the conference is
sent via a SIP message with "application/confInfo+json" for mimetype.
Gitlab: #241
Change-Id: I5a3ad81d1d1b8ba9c9ce84e57745a59a747b8e6c
This patch aims to improve the conference management for the host.
Now, the host is able to switch between 3 conferences layout:
1. The grid view (actual one) where all participants are shown
at the same height/width
2. The One big/Other in small which show one participant bigger than
the others
3. One participant in big
The daemon's API got two new methods:
+ setConferenceLayout() to switch between these layouts
+ setActiveParticipant() used in the 2 last layouts.
Change-Id: I3c16569e24d1b63331ffe9d79e35790a6ac47a0c
fix preferences set in first plugin loading
small logic changes in libraries loading
related to: https://review.jami.net/c/ring-project/+/14433
Change-Id: I4730f279ee38d337e3ef94dd9562a5dfc1a63c32
- adds signal <AccountAvatarReceived> for <account_id> with base64
<photo>
- handles incoming avatar during account authorization response in
on success callback by emitting <AccountAvatarReceived>
Change-Id: I8b6b9685691e1335b895a12c35ea14b53ec6260c
This patch adds API for manage video player.
During player initialization it opens file, initialize video
and audio input, starts audio stream if needed.
Initial player state is paused.
It is up to client unpause player, get first frame and pause again
to get image for preview.
Current player functionality is
- play/pause
- seeking
- mute audio
Change-Id: I8cba50e1ab424d5acde9c38214af2cfe51064607
Adds whether or not the local video feed should be overlaid on the
remote video feed. Adds a quality setting for the recorder.
Change-Id: I60bd80c6441c7d516120680bebb1acdeb3824c49
Update libupnp to version 1.8.4.
For windows, the IPV6 preprocessor must be undefined. Or else
libupnp won't initialize. Added visual studio 2017 support
via one patch for windows that also combines previous windows
patches.
UPnPController: Class that the jami classes use to control the
opening and closing of ports. Every service has it's own upnp
controller. The controller does it's actions by using the upnp
context class. Also refactored the functions used to add
mappings. Instead of using two different functions with
different types of parameters, we now use one function with
parameters that have default values. The logic stays the same
but the function call is more clear.
UPnPContext: Class that holds a (linked) list of discovered IGDs
and their corresponding protocols (which discovered them).
Whenever the controller wants to add or remove a mapping, the
context picks a valid IGD in it's list and uses the correct
protocol to complete the required action. This class also has
the ability to swap protocols for an IGD that was discovered
by more then one protocol.
UPnPProtocol: Virtual base class that defines the functions
needed by the context to use the corresponding protocol.
PUPnP: UPnPProtocol derived class that represents a upnp client
that uses the portable upnp library (libupnp). Every time the
client discovers a new IGD it uses a callback to add it to the
context's main IGD linked list. It also has an internal list of
IGDs that it discovered. Added features to this class include:
- IGD event subscription.
- Use UpnpInit2 function instead of deprecated UpnpInit
function. It's also supposed to support IPv6.
NatPmp: UPnPProtocol derived class that represents a upnp client
that uses the NAT-PMP library (libnatpmp). Unlike libupnp,
libnatpmp only supports discovering one IGD. Also uses callbacks
to add the IGD it finds to the context's main IGD class.
Also inclided debug warning prints whenever a controller opens
and closes the ports. That way we can keep track of whenever
the application opens and closes ports on the internet
gateway device.
Gitlab: #96
Change-Id: I199271edac2c6d93dc60c24e2e2aefe36de7950c
* 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>