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

44 Commits

Author SHA1 Message Date
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
tux3
8568a6b94e More compatibility with older libavdevice
By not using avdevice_list_input_sources
2015-06-03 02:10:52 +02:00
tux3
95e4a20f05 Compatibility with older libavdevice
By not using avdevice_list_input_sources
2015-06-03 02:10:52 +02:00
tux3
d53b426750 Replace OpenCV with FFmpeg 2015-06-03 02:10:52 +02:00
tux3
2505c01cdd Invert U and V video planes back
We now correctly send YUV420P and not YV12 to keep matching uTox bug-for-bug.
2015-05-14 22:36:17 +02:00
tux3
76cbaf18f1
Fix incorrect copyright headers
The qTox Project is not associated with the Tox Project in any ways, 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-05-12 04:12:53 +02:00
sudden6
1506a9a30e Change log messages to fit new log format 2015-05-11 15:37:56 +02:00
tux3
8fed00cf55
Avoid unecessary copying of video frames
And release some more data when possible
2015-05-10 00:35:07 +02:00
tux3
e79d40e356
Merge branch 'pr1446'
Conflicts:
	src/chatlog/chatlog.cpp
	src/chatlog/content/filetransferwidget.cpp
	src/core.cpp
	src/core/coreencryption.cpp
	src/toxdns.cpp
	src/widget/form/chatform.cpp
	src/widget/form/genericchatform.cpp
	src/widget/friendwidget.cpp
	src/widget/widget.cpp
2015-05-07 22:00:50 +02:00
tux3
cdf3d9f553
Change some tabs to space for consistency 2015-04-24 23:05:44 +02:00
PKEv
55d33fbcc0 correct after CppCheck 2015-04-13 00:49:24 +03:00
Zetok Zalbavar
f95291af3e
Some style fixes
"if(" → "if ("
"for(" → "for ("
"while(" → "while ("
2015-03-20 18:38:10 +00:00
sudden6
df785e6608 Add some error handling in attempt to fix #1240
This should prevent the application from crashing, but there is still no
way to tell there is no webcam attached.
2015-03-19 13:30:19 +01:00
Tux3 / Mlkj / !Lev.uXFMLA
c32eb98e6c
CppCheck, some video perf improvements 2015-01-30 13:40:04 -06:00
Dubslow
b245fe034a
Merge branch 'pr949' 2015-01-20 03:48:37 -06:00
derMart
7d11e9192c 0x0 resolution removed
better camera initializing in av settings
2015-01-12 18:08:14 +01:00
novist
313f666a2b Including only required opencv headers. Workaround for opencv bug where partial builds would lack certain headers but opencv.hpp includes them anyway resulting in a build error. 2015-01-08 13:59:05 +02:00
Zetok Zalbavar
e0993a72f6
Style corrections
'if()' → 'if ()'
'for()' → 'for ()'
2014-12-11 18:05:52 +00:00
mannol
36d4460fef Core update 2014-11-18 00:15:54 +01:00
Tux3 / Mlkj / !Lev.uXFMLA
eb2b7d03ad
Fix uninitialized return value in createVpxImage 2014-10-26 21:22:04 +01:00
krepa098
fadbb10ebc fixup rebase 2014-10-24 16:33:44 +02:00
krepa098
7d4230095c cleanup, use chroma_shift 2014-10-24 16:04:47 +02:00
krepa098
f05e2ba9c9 refactoring 2014-10-24 16:04:47 +02:00
krepa098
20b7fb0c67 cleanup 2014-10-24 16:03:45 +02:00
krepa098
15851604cd moved video stuff to src/video 2014-10-24 16:02:55 +02:00