In the previous version of the code, the conference was only
supporting 2 video inputs and one audio source.
For multistream, this is not correct and should be as generic as
possible.
https://git.jami.net/savoirfairelinux/jami-project/-/issues/1429
Change-Id: I7f7f7a2547209844a15f734bea3a62d92e456fde
With the previous code, the video mixer only supports 2 inputs via
switchInput and switchSecondaryInputs. Both of those methods are
deprecated in favor of requestMediaChange.
Now, instead of two separate variables to manage, the video mixer
manages a vector of video inputs for the host. This will allow
the conference to have a better management of inputs via
requestMediaChange().
https://git.jami.net/savoirfairelinux/jami-project/-/issues/1429
Change-Id: Ia65b35707bddf979154527c856e0574d96bbe519
Videos in the videoMixer_ were not easy to identify, moreover,
"sinkId" in the participants informations was the concatenation
of the confId and a URI, which is a problem if several devices
from the same account was present in the conference. Finally,
the active stream logic was dirty, with two different variables
used to identify the active stream in the mixer.
This patch introduces a streamId which is (callId_type_idx, e.g.
ca111412_video_0, ca111412_audio_2), so every video shown in the
conference are identified via a unique ID.
Active stream in the video mixer is identified by this ID, not
by the callId or pointer.
This should not change any behaviour, but prepare for multistream.
https://git.jami.net/savoirfairelinux/jami-project/-/issues/1429
Change-Id: I250dd31ad1ea92ed1fd1e94bec2f5abd311d2128
The plugins add translations files to theirs resources,
so now daemon can get the preferences values accordingly
to the system language. In the future we might add a way
to follow the client-qt language which can differ from the
system.
Change-Id: I4caf49b45261a256e422c2f772ea37f1f2e9548c
This fix testInviteFromMessageAfterRemoved (hasHandler was
not correct in checkConversationsEvents because the task was not
cancelled anymore).
Fix ut_scheduler's build
Change-Id: I4dbf3b31180c43fb7fa11061f3ffacb492d925c3
Following the new conference protocol and because a user can
join a conference with several devices, the hand raised is per
device and not per account.
This doesn't change any current behaviour, but is more flexible
for multi-devices support in conference and continue the
implementation of the new conference's protocol.
https://git.jami.net/savoirfairelinux/jami-project/-/issues/1429
Change-Id: Idab49d8d9efd73eda57706c7a77836689d07ddd7
For complete execution context, the executor has now a name associated with it
and filename/linum must be passed along with the jobs.
Change-Id: I91e872d6c0710dc3c90352974daba5d559d930c9
Since we're not building Jami statically anymore, agent.exe is
generated under test/agent/.libs and the script `agent' is a wrapper
around it. Thus, change agent.exe for `agent' for compilation of
scheme.
Change-Id: I8766ca6470ba1a9136d8eb6cb2d45b278fd85456
The agent requires Jami's bindings to correctly run scenario. This
can only be done if Guile can find the correct scripts. Thus, the
pre-inst-env script can be used to setup the correct environment for
running the agent before its installation.
Change-Id: I474ef204bb33fd2098eee44b5b99c00f120c4536
if a shutdown is called while we are waiting for channel to be ready
we must remove the pending callback attached.
Change-Id: Ibe1d2a6517b5f1035d4031bf08bab294ce5111d7
The current design got some limitations. It's not possible to
control informations per shared media. This means that we can't
got several active sinks for example.
The goal of this patch here is to update the conferences orders
to be able to control the state of each sink individually and for
the client to be able to handle conferences with accounts connected
via several devices with several medias per devices.
So each orders is sent with a different level (account/device/media)
For example, we will be able to send a moderator order for an account,
to hangup a device or to set a media active.
To support those orders, both sides MUST be patched. Else, the old
protocol will be used. The version of the protocol supported is sent
in the conferences informations to notify the peer what version to use.
Finally, this patch changes some APIs to support multisteam:
+ Some APIs now takes the deviceId or the sinkId when necessary
https://git.jami.net/savoirfairelinux/jami-project/-/issues/1429
Doc: https://git.jami.net/savoirfairelinux/jami-project/-/wikis/technical/6.1.-Conference-Protocol
Change-Id: Ieedd6055fd43b2a09b2cc8b253dcd6a3bf260a39
In some cases, the infos were not correctly refreshed, causing some
pending callbacks to never be called.
Also, split getInfo() in two methods to improve readability.
Change-Id: I1b60f2cf2ac5bf97c9a44a53794b56906d314e6a
GitLab: #TODO
iceMutex_ was used before because icest_ could change asynchronously. This is
not the case anymore, since icest_ is initialized synchronously by
IceTransport::initIceInstance().
Furthermore, signaling of the iceCV_ condition variable is now done under the
group lock of the ICE transport, since it's under this lock that the state of
the session is changed.
Change-Id: I3f2b4b4141777b950c916553b45da880dd7056b6
The two tracepoints are used to delimit the beginning and the end of the
execution of a task by a scheduler. The beginning tracepoint contains all the
meta information related to the the execution context of the task and an unique
cookie. This cookie is then reused in the end tracepoint to match the pair of
begin/end without duplication of information.
Change-Id: Ibbf64fe49325e7cb72c60aa6c9d8d8d1ab074f2a
Merge's commits were'nt checked, while comitting and while pulling.
This means that the author could be incorrect. Add a check before
doing a merge commit and when validating it.
This avoid incorrect repository in case a merge commit is generated
after a migration.
Misc: fix incorrect test
GitLab: #738
Change-Id: Id9748eb7d3dd5db023dd2ab4a30261c31af5d514
Any exception other than YAML::Exception was not caught when
loading the account map. We should catch other types of exceptions
as well to prevent a malformed YAML config from preventing daemon
initialization.
Change-Id: If7491fbe97eb8f988edce334a20ddc14e0a0a5fd
Gitlab: #735
Instances of std::shared_ptr are not thread-safe, even if the control block is.
Since AVBufer already has a refcounting system, use a unique_ptr instead,
and add a mutex to protect access during copy.
In practice, the mutex should almost never block since it's locked for
the minimum scope.
Change-Id: I5122e76dadb5da6c3738f8dc711698744b52315b