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

74 Commits

Author SHA1 Message Date
tux3
8ebf07762f
VideoSurface: Release null frames 2015-10-24 03:30:42 +02:00
tux3
aaf04a80db
Remove some debug output 2015-10-24 02:46:34 +02:00
tux3
51ffd94e68
Fix possible nullptr deref in ~CameraSource 2015-10-23 20:30:22 +02:00
tux3
6dc91b156a Use actual mutexes for CameraSource
That homemade spinlock thing was insane, VTune says we were spending 1.5s spinning for no reason when openning a device for example
2015-10-23 17:52:46 +02:00
tux3
f45256baf1 Implement group calls 2015-10-23 17:52:45 +02:00
tux3
69b8a90277 Implement video calls 2015-10-23 17:39:08 +02:00
tux3
512dc8de2d Implement basic call logic
We can now make New AV calls, but without any audio/video. Just opening a link.
2015-10-23 17:09:53 +02:00
tux3
dbbc702c60 Strip out old AV code 2015-10-23 17:02:01 +02:00
tux3
1f61534841 Merge branch 'pr2343' 2015-10-23 15:20:58 +02:00
agilob
ecbda91764
Merge remote-tracking branch 'bitok/fix_performance_issues' 2015-10-21 19:12:15 +01:00
Nils Fenner
1fc703c281
fix warnings 2015-10-18 22:20:16 +02:00
Zetok Zalbavar
d60cfe07b6
Remove an empty line and unneeded slash 2015-10-18 17:04:49 +01:00
agilob
cde9721600
qunused on event 2015-10-18 10:18:13 +01:00
agilob
d2e09ead7a
one more line to remove 2015-10-18 10:18:13 +01:00
agilob
d875221e53
remove unused code, removed unused checks 2015-10-18 10:18:06 +01:00
bitok
d6ff67893f Fix performance issues detected with static analyze 2015-10-13 23:21:20 +03:00
agilob
7c6ac40d21
add debugging messages to camerasource, code reformatting to make it more readable and ogranized better 2015-10-11 07:38:44 +01:00
agilob
266c0fb989
Merge branch TheSpiritXIII:video 2015-10-10 13:49:30 +01:00
Dmytro Shynkevych
901befb270 cameradevice: fixed a double free
Introduced by c491f79077
2015-10-09 19:10:43 -04:00
Dmytro Shynkevych
c491f79077 cameradevice: fixed a regression
Memory would sometimes not be freed.
Caused by 8776682d44
2015-10-05 21:21:12 -04:00
Dmytro Shynkevych
8776682d44 cameradevice: fixed a major leak: avformat_context not always freed 2015-10-04 17:21:52 -04:00
Zetok Zalbavar
6998c2c757
Make 'None' and 'Desktop' camera device names translatable
fixes #2252
2015-09-18 19:12:10 +01:00
TheSpiritXIII
7f5a95a599 Video: Cleanup 2015-08-19 19:13:45 -04:00
TheSpiritXIII
7886fdcb69 Video: resizable group avatar, synchronize avatar 2015-08-19 12:42:54 -04:00
TheSpiritXIII
50041a3140 Video: Initial video when call starts 2015-08-18 17:44:34 -04:00
TheSpiritXIII
814bd922ca Video: Group audio view avatars 2015-08-18 13:40:11 -04:00
TheSpiritXIII
1522d3848c Video: Show avatar, clean ups 2015-08-13 09:31:15 -04:00
TheSpiritXIII
9d12c295be Keep aspect ratio of inner video 2015-08-11 14:01:49 -04:00
TheSpiritXIII
cd90d8d34b Video: Add collapse/expand button, expand all the way, better self video output location 2015-07-22 14:50:39 -04:00
TheSpiritXIII
4c493b85a0 Video: View self video during video call 2015-07-21 14:38:43 -04:00
TheSpiritXIII
1b10672179 Video: Embed video into chat 2015-07-20 17:57:46 -04:00
Yuri
0895b89794 Prevent crashed when default video format not found. 2015-07-15 01:46:23 -07:00
tux3
9e55c77849
Better freeing of CameraSource 2015-06-26 19:04:53 +02:00
tux3
2ab55568f2
Make the video code a singleton, fix multithreading bugs
There can now only be one CameraSource running.

Video frames are decoded in their own thread, and then converted by users in the user's threads.
The CameraSource API is entirely thread-safe and controls the video decoding thread.

The video device only stays open as long as there are users subscribed to the CameraSource.

We use a dangerous combination of spinlocks and memory fences to keep things synchronized.
2015-06-26 18:34:48 +02:00
tux3
9c87d5ed2e
Add 'None' video device
Fixes #1825
2015-06-22 14:59:55 +02:00
tux3
36fcb5cb62
Add final/override specifiers
We get more compile time checking, and it's always good for performance to help the compiler
2015-06-08 20:08:24 +02:00
Zetok Zalbavar
67e9aeec63
Fix incorrect copyright headers
The qTox Project is not associated with the Tox Project in any way, with the
exception of "qTox" using the Tox Projet's "toxcore" collection of libraries.
In particular, the Tox Projet does not own copyright over the qTox Project's
"qTox" collection of software, source code, and assets.
The qTox Project's assets are under the sole copyright of the qTox
contributors, and no partiular rights are granted to the Tox Project.
2015-06-06 14:51:28 +01:00
tux3
20f254651d
Reorganize files 2015-06-06 01:44:47 +02:00
tux3
31f7ded768
Fix #1794 2015-06-05 03:07:42 +02:00
tux3
e3dd2dc9e1
Limit desktop streamins FPS
Otherwise we get overwhelmed and start dropping frames
2015-06-04 23:34:17 +02:00
tux3
862ad154fc
Fix crash if avdevice_list_devices fails 2015-06-04 17:22:58 +02:00
Tux3 / Mlkj / !Lev.uXFMLA
44628373cd
Windows desktop capture (gdigrab) 2015-06-03 11:47:19 +02:00
tux3
37a3a8d9d6 Properly set desktop capture region
We now capture the full screen by default, with code to handle modesetting, instead of always the FFmpeg default region of 1024x768
2015-06-03 02:10:53 +02:00
tux3
8ad0f6c573 X11 dekstop streaming 2015-06-03 02:10:53 +02:00
tux3
fe4838bb83 Video modesetting for v4l2 2015-06-03 02:10:53 +02:00
tux3
bf3b9239b5 Never resize frames with Qt, use sws_scale
If we're going to convert between pixel formats with sws_scale, we might as well do the rescaling in the same step.
Giving a potentially hueg fram to Qt and having it rescale in a separate step is wasted cycles.
2015-06-03 02:10:52 +02:00
tux3
db7d86ae50 Ifdef some dshow code on win only 2015-06-03 02:10:52 +02:00
Tux3 / Mlkj / !Lev.uXFMLA
27bb71f195 Implement video modesetting for dshow 2015-06-03 02:10:52 +02:00
Tux3 / Mlkj / !Lev.uXFMLA
b463028536 Released frames are out of the freelist
So they shouldn't call the freelistCallback. VideoFrame now forgets
about the callback when it is being released.
2015-06-03 02:10:52 +02:00
Tux3 / Mlkj / !Lev.uXFMLA
f0f069114c Implement DirectShow video dev listing
We can now get the list of video devices with the dshow ffmpeg device
(so, on Windows). Most of this patch is adapted from libavdevice's dshow
private internal interface, which retrieves useful info but is only
designed to log it to stdout. We reimplement that to get an actual list
of devices names/descriptions, that we can then open with ffmpeg the
refular way.
2015-06-03 02:10:52 +02:00