Commit graph

613 commits

Author SHA1 Message Date
sergystepanov
ff562503f1
Delete not used font-awesome.css 2021-07-30 12:22:59 +03:00
sergystepanov
3abb1d4818
Use orientation-based video / canvas stretching (#335) 2021-07-28 02:13:03 +03:00
sergystepanov
3079751758
Update dependencies (#331) 2021-07-17 12:23:07 +03:00
Sergey Stepanov
69f18d19e4
Pass version number as gh env when pushing Docker images 2021-07-16 18:32:17 +03:00
Sergey Stepanov
dc151f6a0b
Pass version when pushing Docker images 2021-07-16 18:22:52 +03:00
sergystepanov
30d104ee98
Add version info into the apps (#330)
Both worker and coordinator display version number in the console during startup. Coordinator displays its version number in the top right corner of the index.html page.
2021-07-16 18:13:20 +03:00
sergystepanov
cbabe69f30
Track connected user count of workers. (#328)
If a worker (game) is shared, then without tracking players it's impossible to tell when it becomes available for a new game which leads to emulator share and crashes.
2021-07-05 19:11:12 +03:00
Silver Zhang
35ee35d730
Remove port binding for docker config (#326)
Docker-compose does not support host mode along with the port
binding anymore. Additionally there is no necessity for using
port binding under current configuration since it takes no effect.
2021-07-03 21:20:38 +03:00
sergystepanov
2378288a5b
Fix player select with touch controls (#325) 2021-07-02 13:34:12 +03:00
Sergey Stepanov
875673c661
Remove mingw-w64-x86_64-pkg-config and mingw-w64-x86_64-pkgconf conflict in MSYS2 2021-06-26 22:41:28 +03:00
Sergey Stepanov
867990e62a
(Re)Add MAME (FinalBurn Neo) core record into the default config file 2021-06-26 22:34:13 +03:00
Sergey Stepanov
fffe4813c4
Use OS aware file path concat with ROMs 2021-06-26 22:32:23 +03:00
giongto35
c3c3351feb
Update README.md 2021-06-05 09:46:32 +08:00
giongto35
4935997c82
CD Flow to redeploy after push (#320)
* Add redeploy.sh to redeploy

* Add redeploy to workflow

* Update redeploy script

* Redeploy script

* Test

* run after checkout

* Update path

* checkout ssh

* Update build

* remove unnecesary

* Update placeholder

* Update domain

* Retrigger

* Update docker login

* Update config

* deploy with config

* Update sync config

* Redeploy

* Update redeploy.sh

* Redeploy specific

* redeploy.sh

* redeploy specific.sh

* add more server

* Update redeploy

* Update docker publish

* Redeploy

* Update port

* Update redeploy.sh

* test build

* Remove test with build.yaml

* Clean up

* Clean up
2021-05-28 03:51:25 +08:00
Sergey Stepanov
27e8a792fd
Publish Docker images from the stable/unstable code.
v-tagged push -> v-tagged stable image with stable tag also
master push -> dev tagged image
2021-05-26 22:23:47 +03:00
giongto35
eb10e203c9
Cd flow (#319)
* Add redeploy.sh to redeploy

* Add redeploy to workflow
2021-05-27 03:05:40 +08:00
giongto35
e3e05bc460
Add redeploy.sh to redeploy (#318) 2021-05-27 02:49:34 +08:00
sergystepanov
53e49c3634
Publish Docker images with the latest tag 2021-05-24 17:01:53 +03:00
giongto35
bc6027bf2b
Fix override env flag (#316) 2021-05-23 23:52:59 +08:00
sergystepanov
eddbf42ea7
Update STREAMING.md 2021-05-20 20:53:55 +03:00
sergystepanov
f7f9190875
Update STREAMING.md 2021-05-20 20:53:29 +03:00
giongto35
46d2ca5a62
Update README.md 2021-05-13 03:09:20 +08:00
sergystepanov
d2dfeb0cc8
Create STREAMING.md 2021-05-09 18:59:00 +03:00
Sergey Stepanov
ae5260fb47
Handle recover in VPX tests 2021-05-07 13:09:47 +03:00
sergystepanov
3e2a650b14
Fix the main save file path
Broken file check by just room name without the .dat extension always fails.
2021-04-22 20:09:24 +03:00
Sergey Stepanov
a7d8e53dac
Add video encoder tests 2021-04-17 12:55:54 +03:00
Sergey Stepanov
2a1bdbb3c9
Use passive touchstart events
Due to possible scroll blocking.
2021-04-14 11:53:31 +03:00
Sergey Stepanov
efd8679de3
Fix some mistakes 2021-04-14 11:37:43 +03:00
Sergey Stepanov
763859283a
Use default Go file extension for builds 2021-04-09 20:59:15 +03:00
sergystepanov
65dcaf7820
Enable release builds with v-tags (#310)
Re-enable release builds push into Github releases page when new v-prefixed tags are pushed (i.e. v2.4.2).
2021-04-07 18:50:34 +03:00
sergystepanov
602b9ea47c
Make executables ready for static linking (#307)
* Disable CGO (C libs) for coordinator

Needed for static linking.

* Fix "error strings should not be capitalized (ST1005)"

* Fix SA1015

Using time.Tick leaks the underlying ticker, consider using it only in endless functions, tests and the main package, and use time.NewTicker here (SA1015)

* Fix SA9004

Only the first constant in this group has an explicit type (SA9004).

* Remove unused code in the webrtc package

* Fix S1000

Should use a simple channel send/receive instead of select with a single case (S1000).

* Force dir creation/check for core downloader

* Update Makefile release script

* Disable ASLR for worker builds

* Remove WORKER_BUILD_PARAMS flag from the CI

* Don't force recompilation in release

* Add Debian packages installer script

* Build worker app without libopusfile

* Test worker app without libopusfile

* Add opus wrapper without opusfile

* Make install.sh executable

* Add opus lib in Win builds

* Make insecure HTTPS requests when downloading libs

* Add ca-certificates for Docker build stage

go mod download works only with SSL certificates installed.

* Move libx264 wrapper into the repo

That way we can get rid of a lot of not needed external Go dependencies.

* Update the dependencies
2021-04-06 18:16:52 +03:00
sergystepanov
d778a7e084
Allow to disable default Pion interceptors (#306)
For performance reasons.
2021-03-30 21:57:46 +03:00
sergystepanov
cbab5a1c71
Add deprecation note for libx264 < v160 (#301)
Deprecation due to libx264 version below v160 shouldn't work properly, and it's hard to support both v155, v160 in Golang.
2021-03-26 18:51:10 +03:00
sergystepanov
7ebd945344
Remove jQuery (#299)
* Remove jQuery

* Remove browser (vendor) prefixes for some CSS properties

* Use simple device orientation test

* Realign D-pad pointers

* Make GameBoy text unselectable

* Cleanup console.log

* Keep 90% size on mobile browsers due to gh-ribbon overlap

* Remove legacy `unselectable="on"` attributes

* Align UI buttons

* Remove not used UI elements

* Change Options button

* Don't show player change message when not in a game

* Add click/touch handler for circle-pad
2021-03-26 11:07:49 +03:00
sergystepanov
c7e67d5c3e
Use just one video/audio RTP codec (#298)
Negate exact matches with multiple video codecs when a negotiated list of codecs will be stripped of partially matched ones.
As an example, if we want to use the h264 codec along with vp8 then in some browsers we'll have the exact match on vp8 and some partial matches on h264 (different browsers have different SDP Fmtp) which leads to the forced use of vp8 when the app is streaming h264.
As a workaround, we should add only one codec (vp8 or h264) into the list.
2021-03-19 17:25:48 +03:00
sergystepanov
f1613eaa7b
Use identical core images for build/target stages in the main Docker file. (#296)
It is possible that the official Golang Docker image used in the build stage may produce an executable file dynamically linked with some old libs that may not be present in the target OS image therefore use of identical Docker images is the better option.
2021-03-18 00:17:09 +03:00
sergystepanov
ccf082e46b
Set controller types explicitly (#295) 2021-03-17 18:27:13 +03:00
sergystepanov
a779353569
Reduce coordinator dependencies tree (#292)
* Reduce coordinator dependencies tree

* Parallelize build/check

* Update dependencies
2021-03-15 13:08:15 +03:00
sergystepanov
d5780acc75
Fix Pion WebRTC codecs (#289)
Since Pion's webrtc v3.0.13 and this fix if both peers have some fmtp set then codecs should match exactly. By default Pion defines a list of supported codecs with fmtp set but different browsers set their own fmtp values by default as well therefore they may not match.
To fix this we can define our own list of codecs on the server with empty fmtp so it will match any client codecs.

See: e5c8c659ca/rtpcodec.go (L99)
2021-03-08 17:22:43 +03:00
sergystepanov
f4c3a8cfef
Add new YUV converter with avg color calc (#287)
Add new YUV converter with 2x2 pixel matrix YUV color estimation.

The new YUV color converter, as opposed to the original one, uses more precise color calculations based on four neighboring pixels' average color values which helps a great deal with image aliasing / shimmering artifacts.
By default, it runs in the multithreaded mode with the game frames sliced between 2*(CPU cores) goroutines.
In case if this estimation mode doesn't work as expected it is possible to switch back to the original mode.

The default encoder is switched to x264 since it's faster now.
2021-03-07 18:17:52 +03:00
sergystepanov
fa28197390
Refactor and update VPX codec (#285)
* Refactor and update VPX codec

* Add VPX codec options support

* Add generic video encoding pipe

* Tweak in/out channels for the pipe

* Update YUV encoder

* Clean VP8 encoder
2021-02-27 18:09:55 +03:00
sergystepanov
4c883cf8e4
Fix x264 build trash (#282)
* Check x264 lib version with some conditional hacks for versions < 159
2021-02-21 21:41:10 +03:00
Sergey Stepanov
98ca6e7ace
Skip normal ErrServerClosed errors 2021-02-21 16:13:29 +03:00
Sergey Stepanov
0f54e0fb15
Fix copy-by-value of sync.Lock in the monitoring server struct 2021-02-21 15:52:01 +03:00
sergystepanov
bd701f10fc
Use modified x264 lib (#275)
* Use modified x264 lib

* Add x264 system lib

* Set x264 version 155 for Debian (Buster)

* Add h264 config params

* Set vp8 codec
2021-02-21 13:51:44 +03:00
sergystepanov
b56069c96e
Fix stream freeze (#279)
* Fix D-pad key and overlay

* Add Video element error reporting

* Terminate clientside ws ping on the connection terminate
2021-02-20 18:45:43 +03:00
Sergey Stepanov
c37c2c3004
Fix D-pad key and overlay 2021-02-20 00:12:05 +03:00
sergystepanov
92d0dd76f4
Refactor input for safe concurrency (#278)
* Extract input stuff

* Move d-pad option into the main screen

* Add mutex lock on the whole input user sessions struct
2021-02-19 20:33:58 +03:00
sergystepanov
55208e59d3
Update the Go version to 1.16 in the CI 2021-02-17 13:58:38 +03:00
giongto35
5de666d4af
Fix small bug, to not response on Empty Packet 2021-02-16 22:30:43 +08:00