Commit graph

237 commits

Author SHA1 Message Date
Sergey Stepanov
85cef0dfec Convert colors in C 2023-09-22 18:46:08 +03:00
Sergey Stepanov
8dd9e9c9be Use buffered file writer 2023-09-22 18:46:08 +03:00
Sergey Stepanov
196930281b Add the initial caged apps abstraction
In the current version of the application, we have strictly hardcoded the captured runtime application (FFI Libretro frontend) as well as the streaming transport (WebRTC). This commit makes it possible to choose these components at runtime.

In this commit, we no longer manage initially connected users separately from the rooms, and instead, we treat all users as abstract app sessions, rather than hardcoded WebRTC connections. These sessions may contain all the transport specifics, such as WebRTC and so on.

Rooms, instead of having the hardcoded emulator app and WebRTC media encoders, now have these components decoupled. In theory, it is possible to add new transports (e.g., WebTransport) and streaming apps (e.g., wrapped into an ffmpeg desktop app).
2023-09-16 20:12:24 +03:00
Sergey Stepanov
878d7fe298 API cleanup 2023-09-16 20:12:24 +03:00
Sergey Stepanov
cccb3dce84 Fix some test on Arch 2023-09-16 20:12:24 +03:00
Sergey Stepanov
d7e7112e25 Update dependencies 2023-09-16 20:12:24 +03:00
Sergey Stepanov
3b06905e15 Skip peer connection state error due to DTLS spam 2023-09-16 20:12:24 +03:00
Sergey Stepanov
c27c88c0fa
Disable canvas pool with recording enabled for now 2023-08-24 00:14:25 +03:00
Sergey Stepanov
ddc841e8c6
Fold vpx/h264 struct options 2023-08-01 22:36:25 +03:00
Sergey Stepanov
49cb752b5c
Use implicit cast of app/game structs
That will make the code a bit tidier.
2023-08-01 22:27:21 +03:00
Sergey Stepanov
7fe3a893f6
Remove service package 2023-08-01 22:27:08 +03:00
Sergey Stepanov
7c0a2051d4
Disable mDNS for ICE 2023-08-01 22:26:37 +03:00
Sergey Stepanov
b7fb079243
Derace the frontend when parallel testing 2023-08-01 22:25:55 +03:00
Sergey Stepanov
f9a5ce0e68
Make embedded conf reentrant 2023-08-01 22:25:43 +03:00
Sergey Stepanov
d278ab6e3d
Remove cache when loading YAML configs for mem 2023-08-01 22:22:32 +03:00
Sergey Stepanov
4a627a30f2
Use alt pcsx-rearmed build for prod 2023-07-08 23:07:38 +03:00
Sergey Stepanov
d7e8ca5ace
Remove SSL from the monitoring routes 2023-07-07 15:28:50 +03:00
Sergey Stepanov
be83b1c287
Skip HTTPS redirect for monitoring 2023-07-06 15:31:55 +03:00
Sergey Stepanov
8fef57aa8d
Use TLS with the monitoring / profiling routes 2023-07-06 00:04:05 +03:00
Sergey Stepanov
65b6e3208f
Fix lint warnings 2023-06-27 23:45:57 +03:00
Sergey Stepanov
d5bb271469
Add core hacks options 2023-06-23 18:39:36 +03:00
Sergey Stepanov
2e1c837643 Show systems in the interface 2023-06-16 14:12:41 +03:00
Sergey Stepanov
860c8b9d45 Add system param into the library 2023-06-16 14:12:41 +03:00
Sergey Stepanov
1f7b5139c6 Remove session from lib 2023-06-16 14:12:41 +03:00
Sergey Stepanov
e5ac43a59e Use faster lib scan 2023-06-16 14:12:41 +03:00
Sergey Stepanov
a6bcf5cd94
Fix scale option (it is slow) 2023-05-27 17:36:57 +03:00
sergystepanov
7668ef7bd8
Refactor media (#401)
* Encapsulate media
* Write audio by 4 bytes instead 2
* Update deps
2023-05-27 17:34:35 +03:00
Sergey Stepanov
2ed6e8724f
Add Alwa's Awakening (Demo) NES ROM 2023-05-22 18:34:58 +03:00
Sergey Stepanov
a4f47396e5
Remove unused 404 handler 2023-05-21 18:45:46 +03:00
Sergey Stepanov
5b4f74e2b7
Notify users when there are no gaming slots 2023-05-21 13:54:21 +03:00
Sergey Stepanov
624eecd4e8
Show errors when ICE fails 2023-05-17 08:57:16 +03:00
Sergey Stepanov
75e41e4fd0
Fix static x264 static link on Windows 2023-05-14 01:47:58 +03:00
Sergey Stepanov
0aeaa5580c
Don't scan the lib with errored dirs 2023-05-14 01:47:02 +03:00
Sergey Stepanov
1dc0cabc2b Add special Dockerfile for tiny coordinator (<10Mib) and worker (<150Mib) containers 2023-05-12 14:31:21 +03:00
Sergey Stepanov
b227260060 Embed config.yaml into both apps 2023-05-12 14:31:21 +03:00
Sergey Stepanov
9231120a55 Add base path for games in workers 2023-05-12 14:31:21 +03:00
Sergey Stepanov
63e3a7f6bd
Read YAML keys in lowercase internally 2023-05-10 22:22:31 +03:00
Sergey Stepanov
3815e18027
Remove the hack involving the /static route 2023-05-03 11:11:08 +03:00
Sergey Stepanov
62fc68e88b
Add optional static linking with vpx, x264, opus 2023-04-24 00:16:00 +03:00
Sergey Stepanov
ece1efad16
Add optional static linking with vpx, x264, opus 2023-04-23 23:51:38 +03:00
Sergey Stepanov
8893e1e5bf Update config manager 2023-04-22 17:05:28 +03:00
Sergey Stepanov
c13099c56a Remove hackish way of adding ICE servers
Use config files instead (k8s ConfigMap or something).
2023-04-22 17:05:28 +03:00
Sergey Stepanov
eda90d74e6
Rename C.stop (it crashes PCSX on Ubuntu) wtf omegalol 2023-04-21 00:26:41 +03:00
Sergey Stepanov
ee58af488d
Advance 1 frame only with Mupen 2023-04-20 22:54:35 +03:00
Sergey Stepanov
c8eb672ecd
Fix missing return 2023-04-20 22:54:12 +03:00
Sergey Stepanov
f00c27a226
Clean nanoarch 2023-04-20 14:18:57 +03:00
Sergey Stepanov
853c7a6f81 Fix save/load for Mupen64
By passing function arguments into the synchronized un-libco loop, we can now save and restore Mupen game states without segfaults.
2023-04-16 13:24:28 +03:00
Sergey Stepanov
b48a6c92f6 Refactor nanoarch names 2023-04-16 13:24:28 +03:00
Sergey Stepanov
5034f86667 Save/Load without malloc 2023-04-16 13:24:28 +03:00
Sergey Stepanov
d830821ceb Move last frame time init fn to the end 2023-04-16 13:24:28 +03:00