- 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>
When always recording, the uninitialized value could break the overlay
filter, making one of the video sources not get filtered properly.
Change-Id: I137aa175f0ba5d88a660c6bcfa54f37bd65b7c9d
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
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
* Use searchForIgd_ as an atomic flag for starting IGD search.
* Avoid locking unnecessarly in pupnp callback
Change-Id: I9a6e626945307bc9893d45ba8db0c5c9690458a8
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
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
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
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
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
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
Avoid needless wakeups by waiting for 10 s instead of 100 ms.
Thread is always woken up when necessary anyway.
Change-Id: I75078a56c13a649aa81c224a2fa20defd4297b78
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
- now, audio only call can be allowed to enable the previewing in the setting
- in LRC, call start startpreview
Change-Id: I671841ee663fdf50790d772ce6298d1d5bd88900
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