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
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!
And properly handle toxav happily delivering things out of order,
like firing a video frame callback right after a callback setting the bitrate to 0,
when the peer sent these commands in the right order
A race condition would result in trying to remove an element that didn't exist, and thus erasing end (undefined behavior) instead of erasing [end, end) (no-op)
Dmytro Shynkevych (10):
statusnotifier: fixed pointer type
settings: fixed check on an uninitialized value
systemtrayicon: fixed multiple gdk_pixbuf memory leaks
cameradevice: fixed a major leak: avformat_context not always freed
profileform: fixed leaky toxId field
systemtrayicon: fixed multiple small leaks
cameradevice: fixed a regression
cameradevice: fixed a double free
systemtrayicon: optimized QImage <-> GdkPixbuf conversion
systemtrayicon: switched to manual memory management for pixmap data
agilob (9):
use Qt backend of KDE5
fix icon scaling on gnome3 by scaling icons down
remove dependency injection from systemtrayicon
core review changes - formatting
add quit role to quit action in trayicon
add logout action to tray menu
use plaintext label for username and status in header
remove unused code, better logging for systray, removed KDE5 from enum
change default quit icon in tray menu
tux3 (3):
Merge branch 'pr2343'
Fix qTox on OSX, closes#2447
Merge branch 'pr2132' into unsigned
commit fixes problem with usage of GTK3 fallback menu action used on KDE5, probably to a bug in status notifier
- allows using Qt backend on KDE5 and other plasma related env.
- icon in tray menu and tray icon are loaded from svg, their size is not limited to 50px now
- plasma adds extra actionmenu to tray so quit was renamed to exit
- exit action usues system-default icon for quit and system default keyboard shourtcut to close qtox