Commit Graph

13901 Commits

Author SHA1 Message Date
abc6ccc0d7 ringtones: change default ringtones
Change-Id: I41138a9846fe4bdb250cf6be5ac532ed4da254fd
2019-09-06 11:52:01 -04:00
12769565bf build: add qt5multimedia as a dependency
Change-Id: I6428e7e5099d524601677f5ab040e0a715584f57
2019-09-06 11:43:34 -04:00
36dfd11f52 manager: add shared asio::io_context
Change-Id: Iebd54e75d9f7baaa61547dd1e18100a7d88cc807
2019-09-05 17:20:37 -04:00
331a41050b win32: wide string fix for gzopen and close stream after YAML parse
Change-Id: I30a52d3a22c46b8ff2884f0459f16e74dd4af76b
2019-09-05 15:32:46 -04:00
faa8cef700 string utils: add string_replace
Change-Id: I86a2b1564be127f70dd991b86fe0b14440cee299
2019-09-05 11:40:34 -04:00
49541d1026 sipvoiplink: remove wait for completed transactions in dtor
Change-Id: Ib78b187a8b0f094c0051a436c12e534a36ec2126
2019-09-04 14:30:43 -04:00
25068e2e4f win32: convert utf-8/utf-16 when accessing win32 apis
- any functions that get strings from windows apis, are converted
  and stored as utf8 strings internally
- anytime an internal utf8 string is passed as a parameter to a
  windows api function, it is converted to a wstring
- all of these translations apply currently to file paths
- a windows client should make sure to setlocale to utf8 because
  we use some dependencies that call mbstowcs and wcstombs instead
  of WideCharToMultiByte/MultiByteToWideChar

Change-Id: Ic13f55ace491e1088c0a3d436d3a0d02df7216c3
Reviewed-by: Sébastien Blin <sebastien.blin@savoirfairelinux.com>
2019-09-04 11:34:59 -04:00
24947c36ee doc: fix doxygen comments
Change-Id: I5e7a776221b2048692966b20ff270a2d8fea8bbf
2019-09-04 11:02:51 -04:00
79354e7c2b account: enable codecs by default
Enables Opus, H264 and VP8 for Jami accounts, and all codecs for SIP
accounts.

Change-Id: Ie7b7773d50afa52ddb2adf917eaee8c4dd6af07f
2019-08-30 15:46:13 -04:00
b145265f18 docs: rename to Jami
Change-Id: I9e683a952c2465c4059955f50557b611444759fd
2019-08-30 13:50:01 -04:00
bff74909e6 debug: add native floating point support
Change-Id: Ibfd1e7db19220d9ed255657dbb5d54ad14decb7c
2019-08-30 11:03:26 -04:00
03f6c1e1f6 file transfer: fix cancel
Change-Id: If13deebef78da9864522969c595beb5fc6a095de
Gitlab: #141
2019-08-29 22:22:02 -04:00
7043f9d371 rtcp: fix jitter convertion
Change-Id: I42b390cccfe5a849be4bffccb014534d0e75d723
2019-08-29 16:54:18 -04:00
9740a79cda accel: remove libdrm code
Change-Id: I21af38d6a5fcd36d11955b185f0858c8bb07a278
Gitlab: #135
2019-08-29 11:07:08 -04:00
bf3f83baeb contrib/ffmpeg: enable qsv mjpeg, vp9 decoding on Windows
Change-Id: I62befaa0dbce5ac063ad117463680b202f85217c
2019-08-29 00:36:03 -04:00
bd4864fcfd contrib: update ffmpeg to master
Change-Id: I9a9b37d358b55748526720eaa9c21653bc6ab8b3
2019-08-29 00:36:03 -04:00
4622f27800 encoder: better logs when parsing json
Change-Id: I96bb15b0a00e6998c32949a894698493d0e76c19
2019-08-28 15:48:03 -04:00
b8a8cd390c decoder: initialize last timestamp
When always recording, the uninitialized value could break the overlay
filter, making one of the video sources not get filtered properly.

Change-Id: I137aa175f0ba5d88a660c6bcfa54f37bd65b7c9d
2019-08-27 18:02:27 -04:00
fd30c9639d video_input: fully init decoder
Some of the decoder's settings are only set once decoding has started,
such as the pixel format.

Change-Id: Ifb3cf4606d1dc02dc089bc8ca9ca11a7a3071caf
2019-08-27 13:59:10 -04:00
b10ad06ecc sipcall: fix rotation
Change-Id: I96bea87e43cf08ddf0b2805f13d35c3efa6c2db7
2019-08-27 12:22:30 -04:00
46367dfbbe ice: enable aggressive nomination to avoid latencies
As specified in RFC 5245, the aggressive negotiation uses the
candidates as soon as possibe. This avoid some possible latencies
due to the negotiation of an unique pair.

For our use case, this avoid a 30 seconds delay during the media
negotiation in some cases.

Change-Id: I155a0c5f5706908d5e86a08fb2d65e0e3b8c61e2
Gitlab: #140
2019-08-27 11:07:31 -04:00
560473e0d6 decoder: properly initialize frames
MediaFrame doesn't have a ptr_ or allocated_ fields, so casting it
to VideoFrame and calling VideoFrame::copyFrom causes an invalid read.

Change-Id: Icb1a0a20be04d212357f5eb53d09ed08ab58cde3
2019-08-27 08:52:35 -04:00
58f5a1744e contrib: bump minimum upnp version
1.8.2 causes a spurious crash, 1.8.4 doesn't.

Change-Id: I57b91759941c3f4f858d68ea59503b3320f5a8ae
2019-08-26 17:54:00 -04:00
89cf127593 pupnp: cleanup locks
* Use searchForIgd_ as an atomic flag for starting IGD search.
* Avoid locking unnecessarly in pupnp callback

Change-Id: I9a6e626945307bc9893d45ba8db0c5c9690458a8
2019-08-26 17:30:09 -04:00
0a96e391cc video_rtp_session: send key frame request when we missed a video RTP packet
Limit key frame request to one per second

Change-Id: Id32c710ac44c017bc222dffb21f79b6e61af2534
2019-08-26 13:38:24 -04:00
4c6ce964f1 media/video: clean keyframe request on decoder
Change-Id: I37aedae1cd6f128ac5bf93650bc462f0d8be0e95
2019-08-26 13:38:24 -04:00
cf4acb3f74 encoder: use avoption api
FFmpeg's AVOption API is more flexible and better suited than
AVDictionary for codec and format options.

This also allows to use strings in encoder.json, such as setting profile
to high (instead of 100).

Change-Id: I2039b2d039a87f8b3ed8ecb197dfa7b734c27950
2019-08-26 12:04:28 -04:00
b6c5ca18f9 ip utils: move includes to implementation
Change-Id: Ic7745c129827bc33062d5b428fe9e376a1b22b59
2019-08-23 18:27:11 -04:00
9b99e87974 decoder: set fpsprobesize, use default probesize
Setting probesize to 1 has negative impact on file streaming.
Libavformat exposes fpsprobesize option, so we can still keep a minimal
delay before receiving video.

Change-Id: I4121dbbf46b11ed843d78cc148306fba84c1cedc
2019-08-23 11:30:36 -04:00
c66f56d89f p2p: use one IceTransport by sub transfer
Because several devices can answer for a transfer, we must use
separate ice transport for each transfer to avoid to re-init
the transport during another transport.

Change-Id: I1ba5561bbc331e74320d9dcd6d15cca965588fec
Gitlab: #128
2019-08-22 17:41:45 -04:00
1b2b0021d4 Revert "autoadapt: enable by default"
This reverts commit 0b9dd0e616.

Change-Id: I3d42ca9673de395f8f6a36c7708e0654b638ec73
2019-08-21 15:45:09 -04:00
34a3713faf sinkclient: only transfer if hardware frame
Change-Id: I5a7764f810d39ea3f691a821a9669d549700517c
2019-08-21 15:19:52 -04:00
21f81fc6e2 sipvoiplink: cleanup
Change-Id: I7d266d9d82d76715f8f88807e4944821a04aee20
2019-08-21 14:35:40 -04:00
a427a151a6 sip_transport: avoid PJ_ENOTSUITABLE when ipv4<->ipv6
This is a bit a dirty fix, but the ICE transport can use several
sockets or even an IPv4 socket on a side and an IPv6 on the other
side. But, if it's the case, the header sent contains an IPv6
address and sip_transport will return PJ_ENOTSUITABLE because
TLS6 != TLS4.

In this patch, we just ignore the V6 extension.

Change-Id: I3ded796dd6ee95a08ec54656dc2ad8107f0e62e3
Gitlab: #134
2019-08-21 14:24:29 -04:00
e4db62948b rfc6544: use one rx buffer by active sock
This mainly solve the "TLS decryption failed" error happening when
auto-answer is enabled. Because we only used only one buffer for
rx datas, if two sockets answered at the same time, the buffer was
mixing both answer into one packet.

Now, each active sock has a independant rx_buffer to separate
incoming packets.

Change-Id: I95320a10804b00a0f2558a1a26a1f219b377ddbf
Gitlab: #138
2019-08-21 14:24:29 -04:00
65a412b7f6 contrib/libmfx: add intel hardware acceleration support (windows)
Add media-sdk contrib folder. Includes fetch_and_patch.bat and
SHA512SUMS files.

Modify ffmpeg contrib build to link with libmfx and enable qsv
encoders/decoders.

Change-Id: I50d4e479d4619922f98377d3588424331d12aec2
2019-08-21 11:39:33 -04:00
494b399691 sips_transport_ice: shutdown on End Of File
Change-Id: I23bc4b136f6c546d58ba5771d3a9336d90fff5a8
2019-08-20 21:24:18 -04:00
04373b890a sips_transport_ice: wait for longer
Avoid needless wakeups by waiting for 10 s instead of 100 ms.
Thread is always woken up when necessary anyway.

Change-Id: I75078a56c13a649aa81c224a2fa20defd4297b78
2019-08-20 21:24:18 -04:00
1f835edc80 tls_session: notify observer of TLS state change
When setting the state directly, state change callbacks are not called.

State is now always set by the TLS handler thread, which will call state
callbacks.

Change-Id: Iffd03a2b20a3bf0527aa404914728ed1d889288b
2019-08-20 21:24:18 -04:00
de87ae9089 sips_transport_ice: start thread when connected
Change-Id: I5d6c119143c6eec64724226b3a2d5ebe279e0406
2019-08-20 21:24:18 -04:00
58b784491d peer channel: properly notify clean shutdown
Change-Id: Ic1381e5f00b386f9af801e138c86d0cee1af6abb
2019-08-20 21:24:18 -04:00
0f22a36f63 videomanger: modify the switchInput method to allow previewing in the setting
- now, audio only call can be allowed to enable the previewing in the setting
- in LRC, call start startpreview

Change-Id: I671841ee663fdf50790d772ce6298d1d5bd88900
2019-08-20 16:01:55 -04:00
510b5a1709 pupnp: don't fallback on init fail
Change-Id: I8a219f22bf6dc119f2c89c38b75b0093f0622d7b
2019-08-20 10:40:17 -04:00
a2589498c6 pupnp: don't block on futures on connectivity change
Change-Id: I4e05d780481c340e288fcbb56898f30fb40bf90c
2019-08-20 10:40:17 -04:00
24bbdc5749 ffmpeg: change rtcp ratio
1 rtcp packet every 5 rtp packets instead of a percentage of byte sent

Change-Id: I6baf4672840ae80031b03e3bc995221aa92f0191
2019-08-20 08:58:53 -04:00
a20db61e18 video_rtp_session: skip packets on sender restart
When using nvenc and the media sender gets restarted, the peer's srtp
decryption breaks and only gets set up correctly again after a pause and
play.

This issue was traced back to the RTP sequence numbers. Skipping a few
numbers before reinitializing the sender works.

Change-Id: Ic93f1368fc7eb01b3c57341f31d3832c9f2f2c1f
2019-08-16 16:14:18 -04:00
a538de38da video_rtp_session: prevent nullptr dereference
Also removes log message.

Change-Id: I5fc4dff440641f604f7f522d8319523715f4ef89
2019-08-16 15:46:35 -04:00
197e3adf63 contrib/gnutls: add gmp dependency
Change-Id: Ib925c5d60c1d4700e8ba2e06d2469daff2350072
2019-08-16 15:09:55 -04:00
8f0969f3c8 autoadapt: change autoadapt parameters
reduce drop threshold and diminution rate

Change-Id: I651e3f730b638c1e94fca3882ef69f2f9e0e7732
2019-08-16 11:36:11 -04:00
5187156d09 media/video: change minimum bitrate
220 kbit/s to 600 kbit/s

Change-Id: Ib6a1fb9c84f5da7a8fd2b83d113621a131d48f00
2019-08-15 11:12:17 -04:00