1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00
Commit Graph

3881 Commits

Author SHA1 Message Date
tux3
d1565188ac
Fix #2527 2015-11-08 02:28:24 +01:00
tux3
523e419adf
Fix theoritical A/V deadlock
Could only be hit by pausing at a key point in a debugger until the call timed-out.

Having one thread going up the call stack and acquiring locks (toxcore callbacks), while another thread goes down taking locks in the other order (CoreAV calling toxav functions) creates some pretty freezy situations.

The deadlock was caused by the GUI thread calling the CoreAV thread, acquiring the CoreAV callback, then right before calling a toxav function, not schedule the thread until the call times out. At this point the toxcore thread fires its state callback to tell us the call is over, locking internal toxcore/toxav mutexes, it reaches our callback function which tries to switch to the CoreAV thread to clean up the call data structures, but has to wait since the CoreAV thread holds its own lock. At this point if we resume the CoreAV thread, it'll be busy calling into a toxav function, which tries to acquire internal toxav locks, those locks are held by the toxcore callback so we deadlock.

Our solution is that when getting a toxcore callback, we immediately switch to a temporary thread, allowing toxcore to release the locks it held, and that temporary thread tries to switch to do work on call data structures. Meanwhile if the CoreAV thread needs internal toxcore locks, it can get them.
2015-11-08 00:32:32 +01:00
tux3
cf52ff314f
Don't play sound without an output
And avoid the division by 0 when getting garbage info about nonexistent output sources
2015-11-07 22:24:17 +01:00
tux3
c6220545c9
Fix spurious audio i/o changed signal 2015-11-07 22:24:17 +01:00
Zetok Zalbavar
ad5578e44e
Make list of languages listed vertically in source 2015-11-07 18:49:53 +00:00
TheNain38
d716e9bc61 Add "None" translation 2015-11-07 18:56:07 +01:00
tux3
bf8bdaf619
Improve perf of opening/closing AV tab
Should help with #2424
2015-11-07 18:30:09 +01:00
tux3
5c8dc1d7c9
Add None audio I/O devices
Can be changed in the middle of a call without problem
2015-11-07 18:23:10 +01:00
Nikolas
021049cfa7
Update el.ts 2015-11-07 16:39:33 +01:00
nikolas-n
c76e59380d
Added Greek translation 2015-11-07 16:39:33 +01:00
nikolas-n
2da384468d
Added Greek translation 2015-11-07 16:39:33 +01:00
TheNain38
22848ae6d2 Update French translation 2015-11-07 11:58:54 +01:00
agilob
cc723c728a
Merge remote-tracking branch 'czaks/simple-make-fedora' 2015-11-07 10:30:31 +00:00
agilob
cbbce195d7
Merge remote-tracking branch 'antis81/logout-icon' 2015-11-07 10:27:17 +00:00
Nils Fenner
a83e7c160d
adjust coloring and border of logout icon to better match qTox style 2015-11-07 11:06:58 +01:00
Marcin Łabanowski
4b3963b6ee simple_make: add libsodium to fedora dependencies 2015-11-07 09:34:33 +01:00
tux3
71e26fb15b
List video devices using v4l2 directly, not ffmpeg
Turns out, FFmpeg is annoyingly unreliable when it comes to this. It ignores uvcvideo devices for example
2015-11-07 01:34:07 +01:00
tux3
73c7f2bd36
Fix #2512 2015-11-07 01:01:32 +01:00
tux3
09a9b160ca
Merge branch 'pr2455'
Login window: do not focus buttons when clicking
fix #2446
2015-11-06 23:27:46 +01:00
tux3
a709ed4a8c
Merge branch 'pr2511'
Update French translation
2015-11-06 23:26:32 +01:00
TheNain38
bf76be8238 Update French translation 2015-11-06 23:23:34 +01:00
tux3
6a3b9f76d7
Merge branch 'pr2510'
Add static icons for tray menu logout and quit

antis made us an icon for logout action and I reused cancel call icon
as quit action in tray menu

Refactored methods to change way how icons are loaded in widget.cpp
to make the methods more flexible

This should permanently fix #2491
2015-11-06 23:17:22 +01:00
tux3
7dc608818c
Automatic AV bitrate management
Makes progress on #2134
2015-11-06 23:05:51 +01:00
agilob
78ac29cb15
Add static icons for tray menu logout and quit
antis made us an icon for logout action and I reused cancel call icon
as quit action in tray menu

Refactored methods to change way how icons are loaded in widget.cpp
to make the methods more flexible

This should permanently fix #2491
2015-11-06 20:53:26 +00:00
tux3
46fa4def20
Don't spam log dropped audio frames
Fixes #2507
2015-11-06 20:56:00 +01:00
tux3
d41a578735
Fix crash on audio -> video call promotion
We just ignore it and not show the received video for now.
Fixes #2505
2015-11-06 20:47:42 +01:00
Nils Fenner
43e8ebd055
Merge pull request #2461 from TheNain38/patch-1 2015-11-06 17:44:20 +01:00
Zetok Zalbavar
89f3010bf9
Merge pull request #2442 from kehugter:install-instructions
kehugter (5):
      Update Debian 8 dependencies, fix 'Debian 10' mentions
      Split Debian/Ubuntu14/Ubuntu15 instructions, remove support for Debian <8
      Swap filter_audio/toxcore dependencies order, minor formatting changes
      Removed last Debian 10 mention
      Remove unneeded packagen in Debian instrucitons
2015-11-06 08:44:21 +00:00
Zetok Zalbavar
537a6e3436
Merge pull request #2464 from alexeysvrv:master
Update Russian translate
2015-11-06 08:32:43 +00:00
Zetok Zalbavar
8b948b010b
Merge pull request #2488 from ovalseven8:update-translations
Update German translation file
2015-11-06 08:25:14 +00:00
Zetok Zalbavar
ae86db8891
Merge pull request #2466 from ovalseven8:ovalseven8-patch-3
domain.com -> example.com
2015-11-06 08:09:12 +00:00
tux3
5b036cca0f
Merge branch 'newav_final_for_realsies'
Implements the new toxav API.
2015-11-06 01:52:40 +01:00
tux3
b4754c6ac2
Fix inconsistent noexcept in toxcall.cpp 2015-11-06 01:49:54 +01:00
Nils Fenner
c568a4db05
Merge pull request #2494 from branch agilob/logout_action 2015-11-02 22:24:34 +01:00
agilob
3675428c65
Simplify hardcoding qt version in settings 2015-11-02 19:44:17 +00:00
agilob
e44d08fa8e
Change logout icon to dialog type icon
icon of type Browser doesnt scale on some environments
closes #2491
2015-11-02 19:11:17 +00:00
agilob
0b6fc751cb
Show compiletime Qt version in aboutsettings 2015-11-02 18:56:30 +00:00
kehugter
47246bdfb5 Remove unneeded packagen in Debian instrucitons 2015-11-01 21:07:04 +01:00
ovalseven8
37d12923b1 Update German translation file 2015-10-31 19:42:57 +01:00
Alexey
651c641ebf Update Russian Translate 2015-10-26 23:46:03 +03:00
tux3
a853d51f5b
Show video button when making outgoing video call 2015-10-25 16:16:42 +01:00
tux3
f107858252
Properly exit CoreAV thread 2015-10-25 13:53:04 +01:00
ovalseven8
41ba2bc69d domain.com -> example.com
@zetok
2015-10-25 09:51:13 +01:00
Alexey
c182b645a1 Update Russian translate 2015-10-25 10:53:21 +03:00
tux3
c902543ae4
Fix call race leading to deadlock and memory leak
A call cancel/accepted race was locking up both UI and AV threads, while the stream thread was shoveling more and more video frames on the AV thread's event queue
2015-10-25 00:17:45 +02:00
tux3
f85aec6c95
Re-enable call buttons if video call fails 2015-10-24 22:55:18 +02:00
tux3
3a3be50c64
Link to experimental OS X downloads
Thanks to @RowenStipe !
2015-10-24 21:45:24 +02:00
tux3
a776579732
Don't assert if a call dies while we answer it
This error condition only happens when a peer cancels its outgoing call in the middle of us answering it. We can simply ignore the error and things should nicely fall back into place. Since this race should be pretty rare in normal usage, it's nice to leave a log message, as it might mean we're being fuzzed.

We can prograssively replace more of those asserts by fallbacks and log messages now that everything has been shown to work fine, and the race conditions are harmless.

I feel like writing a novel today. Good thing nobody looks at these!
2015-10-24 21:41:19 +02:00
TheNain38
035fbc95b3 Fix #2460 Light Icon setting disabled but should not 2015-10-24 18:55:24 +02:00
tux3
37e2d2e75f
CoreAV: Fix BlockingQueued connections deadlock
Having a deadlock problem? The solution is more locks!
2015-10-24 15:35:08 +02:00