Commit Graph

7632 Commits

Author SHA1 Message Date
Martin Pulec
c009f9da76 Syphon: use Objective-C without C++ 2023-03-30 10:49:32 +02:00
Martin Pulec
a4680299dc DShow: fixed inverted condition
fixed commit 4fe552f2 from 24th Feb 2023
2023-03-30 10:39:54 +02:00
Martin Pulec
28431e2784 ARM CI: fixed cron schedule line
fixes commit 88d7d1eb
2023-03-29 14:54:18 +02:00
Martin Pulec
ed2aa1a6d2 pbuf: improved max_loss computation
max_loss is now not capped to 64 but consecutive loss periods from
adjacent 64 packet groups are summed together
2023-03-29 14:54:16 +02:00
Martin Pulec
31a8b30c57 pbuf: compute_longest_gap refactor
equivalent rewrite in preparation to modification
2023-03-29 14:53:57 +02:00
Martin Pulec
720fafc3d6 pbuf: use enum instead of macros
clang-tidy modernize-macro-to-enum
2023-03-29 13:39:50 +02:00
Martin Pulec
f41897410a Syphon: prevent not likely race condition
+ added documentation
2023-03-29 13:39:49 +02:00
Martin Pulec
d7f1f24c7a Syphon: properly stop mainloop
Do not call [NSApplication terminate], because main event loop is never
left but call stop. A custom event needs to be posted to execute the
event step. References:

- https://stackoverflow.com/questions/48041279/stopping-the-nsapplication-main-event-loop
- 6e6805000a
2023-03-29 13:39:49 +02:00
Martin Pulec
f4e915da9b macOS: removed remains of GLUT
This effectively reverts commit 887da08822.
2023-03-29 13:39:49 +02:00
Martin Pulec
87c82baa14 updated REPORTING-BUGS.md 2023-03-29 13:39:49 +02:00
Martin Pulec
3bccc55a6f Syphon: miscellaneous fixes 2023-03-29 13:39:49 +02:00
Martin Pulec
51835138b8 Syphon: fixes
Fixed releasing of timers (recycle onle) + remove the last one,
otherwise it will be left dangling and triggerred (and crash) when gl
display is also launched.

+ moved server discovery before creating new GL textures etc.
2023-03-29 13:39:48 +02:00
Martin Pulec
dfa724fea2 Syphon: terminate the mainloop directly
terminate the mainloop directly if run by us
2023-03-29 13:39:48 +02:00
Martin Pulec
a3daa89ef6 displays: changed api for mainloop
- removed `needs_mainloop` attribute and deduce if mainloop is needed
  from the presence of _run callback (the information is now redundant
  only displays needing/running mainloop should announce _run callback)

- run the custom mainloop (currently only Syphon!) only when display
  doesn't run its mainloop. This allows running Syphon and GL/SDL
  display because it connects to the display mainloop.
2023-03-29 13:39:48 +02:00
Martin Pulec
dd0c38b01d Revert "Allow overriding display requirement for mainloop"
It is unclear what should this parameter help with and it doesn't seem
that it is somewhere referenced (wiki, GitHub issues).

This reverts commit 2e4fac60b8.
2023-03-29 13:39:48 +02:00
Martin Pulec
3f630e5aca displays: fill video_display_info::run only if needed
Fill the `run` member only if really requesting to run display mainloop,
not to just letting UG run a worker thread.
2023-03-29 13:39:48 +02:00
Martin Pulec
265c6b3f6e Win build: CUDA 8.0 compat
Although quite old, it is very simple to add support for it and it will
allow compilation for eg. CUDA CC 2.x.
2023-03-29 13:39:32 +02:00
Martin Pulec
2fd384b08b fixed 2 Win warnings
- utils/net: unused variable
- wasapi playback: unused function prototype
2023-03-29 12:09:39 +02:00
Martin Pulec
7d5196c610 Syphon: use native GL context
get rid of direct GLUT dependency

+ mac_gl_common.m: fixed copyright + relicense (as the only author)
+ destroy_gl_context - noop for empty (zeroed, not initialized) context
+ GL: attach the context (will be useful later when running at the same
  time Syphon and GL display)
2023-03-29 12:09:38 +02:00
Martin Pulec
741eab4244 GL disp.: acquire GL context
When running aside something else (eg. Syphon), make sure that the
context is ours.
2023-03-29 12:09:38 +02:00
Martin Pulec
9ffeba2d38 lavc: allocate at least 4 KiB buf for compressed
When compressing very small video (16x16) with libx265, first frame is
2690 B, which is more than W*H*4 (1024) leading to a crash on assert.

steps to reproduce the fixed problem:

    uv -t testcard:size=16x16 -c libavcodec:encoder=libx265
2023-03-29 12:08:40 +02:00
Martin Pulec
e8f4763397 recreate the rendering pipeline if size changes
If shader conversion is used, the rendering pipeline needs to be
recreated because the converted frames are initialized with the actual
size. We can perhaps recreate it always if the properties change,
although strictly taken it is not necessarily needed if there is no
conversion and only size changes.

refer to GH-303
2023-03-28 12:20:46 +02:00
Martin Pulec
d901cd719d fixed Coverity CID 315210 2023-03-24 14:06:50 +01:00
Martin Pulec
50ad3976e7 flip: moved to C 2023-03-24 14:06:50 +01:00
Martin Pulec
88d7d1eb8a CI ARM Linux: run every week on Thursday
Caches are deleted if not used for 7 days so if run every week, the
cached environment remains preserved.
2023-03-24 14:06:50 +01:00
Martin Pulec
449251ac3e get rid of global should exit variable 2023-03-24 14:06:50 +01:00
Martin Pulec
f642680f5d Syphon vidcap: do not use global should_exit 2023-03-24 14:06:50 +01:00
Martin Pulec
d1b2806f03 aja cap.: removed dep on global should_exit 2023-03-24 14:06:50 +01:00
Martin Pulec
aa132a496e video_rxtx: do not use global should_exit
use video_rxtx::m_should_exit variable instead
2023-03-24 14:06:49 +01:00
Martin Pulec
24b2cc5b91 audio mixer: do not use global should_exit 2023-03-24 14:06:49 +01:00
Martin Pulec
2074a1257e audio: do not read global should_exit 2023-03-24 14:06:47 +01:00
Martin Piatka
cbcaf16cdf testcard: Expose some options via capabilities 2023-03-24 11:02:30 +01:00
Martin Piatka
17725f9e26 capabilities: Move dev_add_opt helper declaration to types.h 2023-03-24 10:57:22 +01:00
Martin Piatka
3fde759168 GUI: populate options for all devices 2023-03-24 10:51:11 +01:00
Martin Piatka
bad2cb7a4b GUI: Remove hardcoded Display settings tab 2023-03-24 10:29:14 +01:00
Martin Piatka
eca875daf5 GUI: Generalize Display settings to device settings
Now settings will display options reported in capabilities for all
devices, not just displays. If there are no options reported for a class
of devices (e.g. audio capture) then the settings tab will not appear.
2023-03-24 10:29:14 +01:00
Martin Piatka
0966a41b54 GUI: Add device settingType to device struct 2023-03-24 10:29:14 +01:00
Martin Piatka
65e2009e41 capabilities: Fix off by one strncpy 2023-03-24 10:29:14 +01:00
Martin Piatka
bb3cc2dfd9 GUI: Fix wrong controls being cleared 2023-03-24 10:29:13 +01:00
Martin Pulec
4f1c1e8999 CI Windows: use curl in bash instead of pwsh 2023-03-23 09:31:34 +01:00
Martin Pulec
4cd7301fae CI Windows: use yaml shell directive
Use MSYS2 shell for Windows runner by default. This makes the workflow
job somehow more natural and easier.

+ `command -v windeployqt-qt6 >/dev/null` was incorrectly in $()
2023-03-23 09:30:49 +01:00
Martin Pulec
f7c0e8b138 CI Windows: update CUDA to 12.1 2023-03-22 15:51:05 +01:00
Martin Pulec
43ccb95a02 .github/scripts/environment.sh: small improvements 2023-03-21 14:02:25 +01:00
Martin Pulec
cb06790088 caca: chanded keyboard control disable
Do not evalate DISPLAY env. variable but check the driver instead -
disable keyboard control for every display but x11 (doesn't use the
terminal) and null.
2023-03-21 12:08:51 +01:00
Martin Pulec
c2329d0b52 caca: option to specify driver 2023-03-21 12:08:28 +01:00
Martin Pulec
775ee2ecef caca: do not crash if init fails
free/destroy only allocated/initialized items
2023-03-21 12:08:11 +01:00
Martin Pulec
3f12eb37f4 older mac build fix
clang 14 from macports needs the compound literal encloses parenteses
2023-03-21 08:42:40 +01:00
Martin Pulec
212c61739c updated SVT-VP9 patch 2023-03-21 08:21:17 +01:00
Martin Pulec
50e6d9a94b lavc audio: fixed wrong condition
fixes CID 405634
2023-03-20 16:54:28 +01:00
Martin Pulec
f9ad9558b8 CI Linux FFmpeg: use a mirror for nv-codec-headers
The master repo https://git.videolan.org/?p=ffmpeg/nv-codec-headers.git
is currently unresponsive. The mirror would be perhaps more reliable
since it is hosted on the GitHub, anyways.
2023-03-20 16:54:28 +01:00