Coder Social home page Coder Social logo

mariotaku / moonlight-tv Goto Github PK

View Code? Open in Web Editor NEW
727.0 12.0 30.0 9.62 MB

Lightweight NVIDIA GameStream Client, for LG webOS TV and embedded devices like Raspberry Pi

License: GNU General Public License v3.0

CMake 5.50% C 93.00% Shell 0.53% TypeScript 0.94% Awk 0.04%
webos-tv webos sdl2 moonlight-embedded lg-webos moonlight-client raspberry-pi nvidia-gamestream webos-application webos-homebrew

moonlight-tv's Introduction

Moonlight TV

Moonlight TV is a community version of Moonlight GameStream Client, made for large screens. It works on LG webOS powered TVs, and Raspberry Pi running Raspbian.

Download Stats

Features

  • High performance streaming for webOS
  • UI optimized for large screen and remote controller
  • Supports up to 4 controllers
  • Easy to port to other OSes (Now runs on macOS, Arch, Debian, Raspbian and Windows)

Screenshots

Launcher

Settings

In-game Overlay Screenshot performed on TV has lower picture quality. Actual picture quality is better.

Download

For webOS

Easy installation with dev-manager-desktop (recommended)

Or download IPK from Latest release

For Raspbian

Download DEB from Latest release

Credits

moonlight-tv's People

Contributors

cpetry avatar exalented avatar felixonmars avatar jf-ningyuan avatar lipeduoli avatar mariotaku avatar niko2040 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

moonlight-tv's Issues

[COMPAT] OLED55CXPUA

Basic information

  • Device Model: OLED55CXPUA
  • System Version: 5.2.0-290904
  • Is Audio Working: N/A
  • Is Video Working: N/A
  • Is Input Working: N/A

The app initially works great and connects to my host PC without issue.
The app immediately crashes upon selecting a game, although it does launch the selected game on the host PC.
The app also sometimes crashes while scrolling.

OLED65B6V-Z

Basic information

  • Device Model: OLED65B6V-Z
  • System Version: 3.3.5-4323 (dreadlocks-dharug)
  • Is Audio Working: Yes
  • Is Video Working: Perfectly 1080@60, too much latency over that
  • Is Input Working: MagicRemote works, DS4v2 works

@1080p60 works with any bitrate , but any resolution over that the latency is very high

Segmentation fault when trying to run a game on Raspberry Pi 4

No problems in the frontend, but when starting a game the program exits with a segmentation fault.

Steps to reproduce:

  1. Open Moonlight TV.
  2. Click to start or resume a game.
  3. The 'Connecting' screen will be displayed briefly.
  4. The program exits.

Built and tested on a Raspberry Pi 4 (2GB), in both release and debug modes.

Here's the log, not that it's got anything useful in it.

Decoder platform: SDL (SW codec)
INFO: Video Driver: x11
Input manager init, -1 game controller mappings loaded
Controller #0 connected, sdl_id: 0
SDL_CONTROLLERDEVICEADDED
Segmentation fault

Generate SHA256 client certificate

I noticed that 4f674cf switched from creating a SHA256 client certificate with OpenSSL to a SHA1 client certificate with mbedTLS. SHA1 certificates are deprecated almost everywhere, so it would be a good idea to generate a SHA256 client certificate, especially because these certificates will be long-lived and require re-pairing with all host PCs to rotate.

Official Moonlight clients have been generating SHA256 certificates since mid-2019 when Debian Buster's specially configured OpenSSL package started blocking SHA1 certificates. I believe OpenSSL 3.0 will default to blocking SHA1 across the board, so SHA1 client certificates in the field are likely to break when Nvidia updates to OpenSSL 3.0 (once it's released, of course).

[COMPAT] OLED65BX3LB

Basic information

  • Device Model: OLED65BX3LB
  • System Version: 5.2.0-250801 (update 03.21.10)
  • Is Audio Working: No
  • Is Video Working: No
  • Is Input Working: No

Additional information:
Moonlight - Release v0.3.3
TV uses Gigabit Ethernet connection.
The application starts, pairs with my computer, and lists available games.
UI and navigation work correctly.
After starting any game, the application shows "Connecting..." and PC speakers stop playing music.
5 seconds later, a black screen is shown and the Moonlight crashes.
Relaunching the application and resuming the session crashes Moonlight again.
After stopping the session, PC speakers start playing music again.
I tested different video and audio settings, the behavior is always the same.
Streaming games from PC to iPhone and Moonlight Embedded on Raspberry Pi works correctly.

Update:
Sometimes, in low-resolution modes and with checked "Use SDL to play audio" I'm able to hear music for 2 seconds, then the TV freezes and restarts.

[COMPAT] 49UN7100PSA

Basic information

  • Device Model: 49UN7100PSA
  • System Version: 3.4
  • Is Audio Working: Yes (but with a little delay)
  • Is Video Working: 1080/60fps 200mb Internet and Gtx750ti
  • Is Input Working: Gamepad Xbox Controller USB

[COMPAT] 55NANO916NA

Basic information

  • Device Model: 55NANO916NA
  • System Version: 5.2.1
  • Is Audio Working: Yes
  • Is Video Working: Yes (with HW acceleration since v0.6.0)
  • Is Input Working: Partially* (see below)

UPDATE 2: new version 0.6.0 has working HW Acceleration!!
photo_2021-04-08_13-48-37

It works great with the stock bitrate, if I go anything more than 50Mbps, Moonlight crashes.

UPDATE: new version 0.5.2 works!!!
photo_2021-03-21_20-05-30

It also works and pairs succesfully, although I'm warned that there's no HW decoding available:
photo_2021-03-21_20-04-45 (2)

And, as warned, anything above 720p gets absolutely slow and stutters a lot. I'm using LAN, not wireless, but I guess this is the best the TV can handle without HW decoding:
photo_2021-03-21_20-04-45

Anyway, this is a big improvement!! I'm so happy to see this working!! Keep up the good work! :-)

**INPUT TEST:
Mouse works as intended both in-app and in-stream. Could not test Xbox One controller, i'll give it a go as soon as possible.

[COMPAT] 32LK540BPSA webOS 4.3.0 (05.30.11) - Video not working

Basic information

  • Device Model: 32LK540BPSA
  • System Version: 05.30.11
  • Is Audio Working: Yes
  • Is Video Working: No
  • Is Input Working: Remote control, wired mouse and keyboard, LG app through android phone

Tested on Wifi 2.4Ghz and Ethernet. Image appears showing 1 frame of the PC (static image). Input works as I click on many elements in the static image and on the PC things work (like clicking start menu or runing programs) but the picture on the LG TV keeps like a static image. Sound works well, and the app statistics shows up to 10ms delay over wifi 2.4Ghz and no frames dropped. Tried with different bitrates but no success. TV is able to stream very large movies (2K/60) through LAN or wifi without problem. WebOS version is 4.0 (2018)

[BUG] Release not compatible with 3.22 Geforce Experience

Describe the bug
Incoming Geforce Experience 3.22 (Now no beta) is not compatible. Latest Moonlight releases have been updated to support it.

To Reproduce
Steps to reproduce the behavior:

  1. Install latest BETA GFE 3.22.xx on your PC
  2. Pair your TV with GFE
  3. Select a game
  4. See error 500 Handshake

Additional context
Moonlight main project has updated PC client to support GFE 3.22.xx (see here and here.)

Gamepad not detected

Tested with Xbox One X and Xbox One controllers - using USB cable.
LG 55SM9000 Webos 4.5 shows 'Unknown device connected' and Moonlight SDL doesn't get their input (when trying out a game).
Tried also with TP-Link UB400 Bluetooth dongle.

Am I not connecting the controllers correctly? Thank you!

Oled65E6

Basic information

  • Device Model: OLED65E6
  • System Version: 05.30.95
  • Is Audio Working: Yes
  • Is Video Working: 4K 60Fps
  • Is Input Working: F710 Working

Using gamepad disables magic remote cursor.

Webos 6 support

Is your feature request related to a problem? Please describe.
I saw in the comments of #32 that you're working on supporting version 5. Do you think version 6 will be much different? I've read somewhere that the biggest difference is the UI for that release. But we don't know if the internals had a major overhaul ofcourse.

Describe the solution you'd like
I would love to see support for the 2021 models. Personally I've bought a 55C1 model and would love to play games on there using moonlight ๐Ÿ˜

Describe alternatives you've considered
N/A

Additional context
The TV has been sitting in a box here for a couple of weeks (still moving) but when I have it set up I can help out testing if you want. Maybe provide some logs / filedumps etc.

[BUG] 0.1.5

Describe the bug
If SDL is unchecked when leaving settings it closes moonlight and settings aren't saved.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Settings
  2. Amend your settings.
  3. Leave SDL unchecked
  4. Click the X to exit.

LG webOS TV (please complete the following information):

  • Model: [43UH668V-ZA]
  • webOS version [3.3.4-4220]

Compatibility info

MODEL: 43UH668V-ZA
VERSION: 3.3.4-4220

Tested at 1080p and 4K 60 FPS OK!

1440p is not working.
16109943909157288758077558585672

[BUG] Build Failed on Raspberry Pi 4

To Reproduce
Steps to reproduce the behavior:

  1. Run cmake .. -DTARGET_RASPI=ON. This completes successfully.
  2. Run make.
  3. The build fails partway through. The build log can be viewed below.

Expected behavior
The build completes and creates an executable.

Build Log

[  0%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/aes.c.o
[  0%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/aesni.c.o
[  0%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/arc4.c.o
[  0%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/aria.c.o
[  1%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/asn1parse.c.o
[  1%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/asn1write.c.o
[  1%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/base64.c.o
[  1%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/bignum.c.o
[  1%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/blowfish.c.o
[  1%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/camellia.c.o
[  2%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/ccm.c.o
[  2%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/chacha20.c.o
[  2%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/chachapoly.c.o
[  2%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/cipher.c.o
[  2%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/cipher_wrap.c.o
[  2%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/cmac.c.o
[  3%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/ctr_drbg.c.o
[  3%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/des.c.o
[  3%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/dhm.c.o
[  3%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/ecdh.c.o
[  3%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/ecdsa.c.o
[  3%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/ecjpake.c.o
[  4%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/ecp.c.o
[  4%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/ecp_curves.c.o
[  4%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/entropy.c.o
[  4%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/entropy_poll.c.o
[  4%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/error.c.o
[  4%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/gcm.c.o
[  5%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/havege.c.o
[  5%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/hkdf.c.o
[  5%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/hmac_drbg.c.o
[  5%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/md.c.o
[  5%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/md2.c.o
[  5%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/md4.c.o
[  5%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/md5.c.o
[  6%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/memory_buffer_alloc.c.o
[  6%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/nist_kw.c.o
[  6%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/oid.c.o
[  6%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/padlock.c.o
[  6%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/pem.c.o
[  6%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/pk.c.o
[  7%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/pk_wrap.c.o
[  7%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/pkcs12.c.o
[  7%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/pkcs5.c.o
[  7%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/pkparse.c.o
[  7%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/pkwrite.c.o
[  7%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/platform.c.o
[  8%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/platform_util.c.o
[  8%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/poly1305.c.o
[  8%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/psa_crypto.c.o
[  8%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/psa_crypto_client.c.o
[  8%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/psa_crypto_driver_wrappers.c.o
[  8%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/psa_crypto_ecp.c.o
[  9%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/psa_crypto_rsa.c.o
[  9%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/psa_crypto_se.c.o
[  9%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/psa_crypto_slot_management.c.o
[  9%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/psa_crypto_storage.c.o
[  9%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/psa_its_file.c.o
[  9%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/ripemd160.c.o
[ 10%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/rsa.c.o
[ 10%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/rsa_internal.c.o
[ 10%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/sha1.c.o
[ 10%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/sha256.c.o
[ 10%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/sha512.c.o
[ 10%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/threading.c.o
[ 10%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/timing.c.o
[ 11%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/version.c.o
[ 11%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/version_features.c.o
[ 11%] Building C object third_party/mbedtls/library/CMakeFiles/mbedcrypto.dir/xtea.c.o
[ 11%] Linking C static library libmbedcrypto.a
[ 11%] Built target mbedcrypto
[ 11%] Building C object third_party/mbedtls/library/CMakeFiles/mbedx509.dir/certs.c.o
[ 11%] Building C object third_party/mbedtls/library/CMakeFiles/mbedx509.dir/pkcs11.c.o
[ 11%] Building C object third_party/mbedtls/library/CMakeFiles/mbedx509.dir/x509.c.o
[ 11%] Building C object third_party/mbedtls/library/CMakeFiles/mbedx509.dir/x509_create.c.o
[ 12%] Building C object third_party/mbedtls/library/CMakeFiles/mbedx509.dir/x509_crl.c.o
[ 12%] Building C object third_party/mbedtls/library/CMakeFiles/mbedx509.dir/x509_crt.c.o
[ 12%] Building C object third_party/mbedtls/library/CMakeFiles/mbedx509.dir/x509_csr.c.o
[ 12%] Building C object third_party/mbedtls/library/CMakeFiles/mbedx509.dir/x509write_crt.c.o
[ 12%] Building C object third_party/mbedtls/library/CMakeFiles/mbedx509.dir/x509write_csr.c.o
[ 12%] Linking C static library libmbedx509.a
[ 12%] Built target mbedx509
[ 12%] Building C object third_party/mbedtls/library/CMakeFiles/mbedtls.dir/debug.c.o
[ 12%] Building C object third_party/mbedtls/library/CMakeFiles/mbedtls.dir/net_sockets.c.o
[ 13%] Building C object third_party/mbedtls/library/CMakeFiles/mbedtls.dir/ssl_cache.c.o
[ 13%] Building C object third_party/mbedtls/library/CMakeFiles/mbedtls.dir/ssl_ciphersuites.c.o
[ 13%] Building C object third_party/mbedtls/library/CMakeFiles/mbedtls.dir/ssl_cli.c.o
[ 13%] Building C object third_party/mbedtls/library/CMakeFiles/mbedtls.dir/ssl_cookie.c.o
[ 13%] Building C object third_party/mbedtls/library/CMakeFiles/mbedtls.dir/ssl_msg.c.o
[ 13%] Building C object third_party/mbedtls/library/CMakeFiles/mbedtls.dir/ssl_srv.c.o
[ 14%] Building C object third_party/mbedtls/library/CMakeFiles/mbedtls.dir/ssl_ticket.c.o
[ 14%] Building C object third_party/mbedtls/library/CMakeFiles/mbedtls.dir/ssl_tls.c.o
[ 14%] Building C object third_party/mbedtls/library/CMakeFiles/mbedtls.dir/ssl_tls13_keys.c.o
[ 14%] Linking C static library libmbedtls.a
[ 14%] Built target mbedtls
[ 15%] Building C object core/moonlight-common-c/mbed-openssl-compat/CMakeFiles/mbed-openssl-compat.dir/src/rand_impl.c.o
[ 15%] Building C object core/moonlight-common-c/mbed-openssl-compat/CMakeFiles/mbed-openssl-compat.dir/src/evp_impl.c.o
[ 15%] Linking C static library libmbed-openssl-compat.a
[ 15%] Built target mbed-openssl-compat
[ 15%] Building C object third_party/h264bitstream/CMakeFiles/h264bitstream.dir/h264_nal.c.o
[ 15%] Building C object third_party/h264bitstream/CMakeFiles/h264bitstream.dir/h264_sei.c.o
[ 15%] Building C object third_party/h264bitstream/CMakeFiles/h264bitstream.dir/h264_stream.c.o
[ 16%] Linking C static library libh264bitstream.a
[ 16%] Built target h264bitstream
[ 16%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/enet/callbacks.c.o
[ 17%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/enet/compress.c.o
[ 17%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/enet/host.c.o
[ 17%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/enet/list.c.o
[ 17%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/enet/packet.c.o
[ 17%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/enet/peer.c.o
[ 17%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/enet/protocol.c.o
[ 18%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/enet/unix.c.o
[ 18%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/enet/win32.c.o
[ 18%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/reedsolomon/rs.c.o
[ 18%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/src/AudioStream.c.o
[ 18%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/src/ByteBuffer.c.o
[ 18%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/src/Connection.c.o
[ 19%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/src/ConnectionTester.c.o
[ 19%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/src/ControlStream.c.o
[ 19%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/src/FakeCallbacks.c.o
[ 19%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/src/InputStream.c.o
[ 19%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/src/LinkedBlockingQueue.c.o
[ 19%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/src/Misc.c.o
[ 20%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/src/Platform.c.o
[ 20%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/src/PlatformSockets.c.o
[ 20%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/src/RtpFecQueue.c.o
[ 20%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/src/RtpReorderQueue.c.o
[ 20%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/src/RtspConnection.c.o
[ 20%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/src/RtspParser.c.o
[ 20%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/src/SdpGenerator.c.o
[ 21%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/src/SimpleStun.c.o
[ 21%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/src/VideoDepacketizer.c.o
[ 21%] Building C object core/moonlight-common-c/CMakeFiles/moonlight-common-c.dir/moonlight-common-c/src/VideoStream.c.o
[ 21%] Linking C static library libmoonlight-common-c.a
[ 21%] Built target moonlight-common-c
[ 22%] Building C object core/libgamestream/CMakeFiles/gamestream.dir/src/client.c.o
[ 22%] Building C object core/libgamestream/CMakeFiles/gamestream.dir/src/http.c.o
[ 22%] Building C object core/libgamestream/CMakeFiles/gamestream.dir/src/mkcert.c.o
[ 22%] Building C object core/libgamestream/CMakeFiles/gamestream.dir/src/xml.c.o
[ 22%] Building C object core/libgamestream/CMakeFiles/gamestream.dir/src/sps.c.o
[ 22%] Linking C static library libgamestream.a
[ 22%] Built target gamestream
[ 22%] Building C object third_party/ilclient/CMakeFiles/ilclient.dir/ilclient.c.o
[ 22%] Building C object third_party/ilclient/CMakeFiles/ilclient.dir/ilcore.c.o
[ 22%] Linking C static library libilclient.a
[ 22%] Built target ilclient
[ 22%] Building C object CMakeFiles/moonlight.dir/app/main.c.o
[ 22%] Building C object CMakeFiles/moonlight.dir/app/backend/backend_root.c.o
[ 22%] Building C object CMakeFiles/moonlight.dir/app/backend/computer_manager.c.o
[ 22%] Building C object CMakeFiles/moonlight.dir/app/backend/pcmanager/pairing.c.o
[ 23%] Building C object CMakeFiles/moonlight.dir/app/backend/pcmanager/discovery.c.o
[ 23%] Building C object CMakeFiles/moonlight.dir/app/backend/pcmanager/wol.c.o
[ 23%] Building C object CMakeFiles/moonlight.dir/app/backend/application_manager.c.o
[ 23%] Building C object CMakeFiles/moonlight.dir/app/backend/coverloader.c.o
[ 23%] Building C object CMakeFiles/moonlight.dir/app/backend/error_manager.c.o
[ 23%] Building C object CMakeFiles/moonlight.dir/app/backend/types_impl.c.o
[ 24%] Building C object CMakeFiles/moonlight.dir/app/stream/platform.c.o
[ 24%] Building C object CMakeFiles/moonlight.dir/app/stream/session.c.o
[ 24%] Building C object CMakeFiles/moonlight.dir/app/stream/connection.c.o
[ 24%] Building C object CMakeFiles/moonlight.dir/app/stream/settings.c.o
[ 24%] Building C object CMakeFiles/moonlight.dir/app/ui/root.c.o
/home/pi/projects/moonlight-tv/app/ui/root.c: In function \u2018ui_render_background\u2019:
/home/pi/projects/moonlight-tv/app/ui/root.c:105:13: warning: implicit declaration of function \u2018renderer_draw\u2019 [-Wimplicit-function-declaration]
             renderer_draw();
             ^~~~~~~~~~~~~
[ 24%] Building C object CMakeFiles/moonlight.dir/app/ui/fonts.c.o
[ 25%] Building C object CMakeFiles/moonlight.dir/app/ui/launcher/window.c.o
[ 25%] Building C object CMakeFiles/moonlight.dir/app/ui/launcher/pclist.c.o
[ 25%] Building C object CMakeFiles/moonlight.dir/app/ui/launcher/pcempty.c.o
[ 25%] Building C object CMakeFiles/moonlight.dir/app/ui/launcher/applist.c.o
[ 25%] Building C object CMakeFiles/moonlight.dir/app/ui/launcher/statbar.c.o
[ 25%] Building C object CMakeFiles/moonlight.dir/app/ui/launcher/modals.c.o
[ 25%] Building C object CMakeFiles/moonlight.dir/app/ui/launcher/pairing.c.o
[ 26%] Building C object CMakeFiles/moonlight.dir/app/ui/streaming/overlay.c.o
[ 26%] Building C object CMakeFiles/moonlight.dir/app/ui/streaming/bottombar.c.o
[ 26%] Building C object CMakeFiles/moonlight.dir/app/stream/video/dummy.c.o
[ 26%] Building C object CMakeFiles/moonlight.dir/app/ui/settings/window.c.o
[ 26%] Building C object CMakeFiles/moonlight.dir/app/ui/settings/pane_basic.c.o
[ 26%] Building C object CMakeFiles/moonlight.dir/app/ui/settings/pane_host.c.o
[ 27%] Building C object CMakeFiles/moonlight.dir/app/ui/settings/pane_mouse.c.o
[ 27%] Building C object CMakeFiles/moonlight.dir/app/ui/settings/pane_about.c.o
[ 27%] Building C object CMakeFiles/moonlight.dir/app/ui/settings/statbar.c.o
[ 27%] Building C object CMakeFiles/moonlight.dir/app/platform/webos/sprites_webos.c.o
[ 27%] Building C object CMakeFiles/moonlight.dir/app/util/lruc.c.o
[ 27%] Building C object CMakeFiles/moonlight.dir/app/util/path.c.o
[ 28%] Building C object CMakeFiles/moonlight.dir/app/util/navkey.c.o
[ 28%] Building C object CMakeFiles/moonlight.dir/app/util/debugprint.c.o
[ 28%] Building C object CMakeFiles/moonlight.dir/app/nuklear/nkimage_sdl.c.o
[ 28%] Building C object CMakeFiles/moonlight.dir/app/app_sdl.c.o
[ 28%] Building C object CMakeFiles/moonlight.dir/app/backend/pcmanager/sdl_impl.c.o
[ 28%] Building C object CMakeFiles/moonlight.dir/app/stream/input/sdlinput.c.o
[ 29%] Building C object CMakeFiles/moonlight.dir/app/stream/input/sdl/keyboard.c.o
[ 29%] Building C object CMakeFiles/moonlight.dir/app/stream/input/sdl/gamepad.c.o
[ 29%] Building C object CMakeFiles/moonlight.dir/app/stream/input/sdl/mouse.c.o
[ 29%] Building C object CMakeFiles/moonlight.dir/app/platform/sdl/bus.c.o
[ 29%] Building C object CMakeFiles/moonlight.dir/app/platform/sdl/input_manager.c.o
[ 29%] Building C object CMakeFiles/moonlight.dir/app/platform/sdl/navkey_sdl.c.o
[ 30%] Building C object CMakeFiles/moonlight.dir/app/stream/audio/sdl.c.o
[ 30%] Building C object CMakeFiles/moonlight.dir/app/stream/video/delegate.c.o
[ 30%] Building C object CMakeFiles/moonlight.dir/app/platform/sdl/path_sdl.c.o
[ 30%] Building C object CMakeFiles/moonlight.dir/app/ui/sdl_renderer.c.o
/home/pi/projects/moonlight-tv/app/ui/sdl_renderer.c:28:55: error: \u2018res_vertex_source_data\u2019 undeclared here (not in a function); did you mean \u2018res_default_cover_data\u2019?
 static const char *shader_sources[2] = {(const char *)res_vertex_source_data, (const char *)res_fragment_source_data};
                                                       ^~~~~~~~~~~~~~~~~~~~~~
                                                       res_default_cover_data
/home/pi/projects/moonlight-tv/app/ui/sdl_renderer.c:28:93: error: \u2018res_fragment_source_data\u2019 undeclared here (not in a function); did you mean \u2018res_default_cover_data\u2019?
 static const char *shader_sources[2] = {(const char *)res_vertex_source_data, (const char *)res_fragment_source_data};
                                                                                             ^~~~~~~~~~~~~~~~~~~~~~~~
                                                                                             res_default_cover_data
/home/pi/projects/moonlight-tv/app/ui/sdl_renderer.c: In function \u2018renderer_setup\u2019:
/home/pi/projects/moonlight-tv/app/ui/sdl_renderer.c:59:72: error: \u2018res_vertex_source_size\u2019 undeclared (first use in this function); did you mean \u2018res_default_cover_size\u2019?
     glShaderSource(vertex_shader, 1, &shader_sources[0], (const int *)&res_vertex_source_size);
                                                                        ^~~~~~~~~~~~~~~~~~~~~~
                                                                        res_default_cover_size
/home/pi/projects/moonlight-tv/app/ui/sdl_renderer.c:59:72: note: each undeclared identifier is reported only once for each function it appears in
/home/pi/projects/moonlight-tv/app/ui/sdl_renderer.c:72:74: error: \u2018res_fragment_source_size\u2019 undeclared (first use in this function); did you mean \u2018res_default_cover_size\u2019?
     glShaderSource(fragment_shader, 1, &shader_sources[1], (const int *)&res_fragment_source_size);
                                                                          ^~~~~~~~~~~~~~~~~~~~~~~~
                                                                          res_default_cover_size
make[2]: *** [CMakeFiles/moonlight.dir/build.make:713: CMakeFiles/moonlight.dir/app/ui/sdl_renderer.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:831: CMakeFiles/moonlight.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

[BUG] Release v0.6.3-v0.6.6 crashes on load

Describe the bug
I've updated to release v0.6.3 & v0.6.6 and now Moonlight won't even open. Releases v0.6.1 and below work. I've tried to fully erase moonlight and install it again, but i have the same effect.

To Reproduce
Steps to reproduce the behavior:

  1. Install v0.6.3/v0.6.6 via webOS Tv Cli
  2. Back on the TV, select and open Moonlight
  3. The app shows its grey screen for a second, then closes itself again.

LG webOS TV (please complete the following information):

  • Model: 55NANO916NA
  • webOS version: 5.2.1

[COMPAT] OLED55C9PLA

Basic information

  • Device Model: OLED55C9PLA
  • System Version: 4.9.0
  • Is Audio Working: Yes
  • Is Video Working: Yes, 1080p 60fps, 4K60fps
  • Is Input Working: Magic remote working, XBOX 360 Wireless dongle + Wireless gamepad working

Ethernet connection used. Works great.

Better navigation of menus with arrow buttons on LG remote

Is your feature request related to a problem? Please describe.
I'd like to be able to use the remote arrow buttons to navigate up to the computer selection menu and the settings menu. Similarly, when pressing back button to bring up that menu, it would be great to be able to use arrow keys to navigate the various selectable buttons.

Describe the solution you'd like
See above. Be able to use arrow keys to navigate to all selectable buttons instead of relying on the LG remote cursor.

Describe alternatives you've considered
Currently we can use the LG remote cursor, which is nice, but it's more annoying to use than simply moving the focused UI element to the menu using the arrow buttons and selecting it.

I do see that I can press the yellow button to change PC as well, but intuitively i feel like i should be able to navigate from the game list to both menu items at the top of the screen

Additional context
Add any other context or screenshots about the feature request here.

Black screen[BUG]

Describe the bug
When I start a stream it's connecting, after a few seconds I get a black screen. UI works perfect.
Tried different resolutions and bitrates. When I have a black screen and press exit on the remote it shows 0 network loss and the fps that's configured 30/60.

**LG webOS TV

  • Model: 75uk6200
  • webOS version 4.3.0

Additional context
Moonlight tv version 0.6.0
Decoder: webOS SMP
Panel resolution 3840 * 2160

Gamepad triggers stop responding after first press

Tested this with an Xbox One S and DS4 controller, WebOS 3 - both controllers exhibit the exact same behaviour when connected via 8Bitdo Bluetooth adapter.

The first press on each trigger is recognised and then instantly becomes toggled on, i.e. if I'm firing a weapon, it continues to fire. Once it stops (after pressing many buttons), it will no longer then recognise any further inputs.

Confirmed that this behaviour is the same using a wired DS4 controller.

43LM6300 working well

Basic information

  • Device Model: 43LM6300
  • System Version: 04.72.10
  • Is Audio Working: Yes
  • Is Video Working: Yes
  • Is Input Working: Remote control, wired mouse and keyboard, LG app through android phone

Tested on Wifi 2.4Ghz and Ethernet. Runs as it should with up to 10ms of delay over 2.4Ghz Wifi. WebOS Version is 4.5 (2019)

Better host management

  • Ensure thread safety
  • Make mDNS discovery run when in launcher
  • Update instead of insert when duplicated node discovered
  • Stop mDNS discovery while in game
  • Add offline status in server_list
  • Remember last selected machine?
  • Support adding server manually

HEVC support

Hook DILE_VDEC_DIRECT_Open to replace fourcc to HEVC (0x43564548) This approach is not working.

Compatibility info - OLED55GX6LA

Module webOS version Audio Video Max Resolution Note
OLED55GX6LA 5.2.0-290904 Working Working Tested 4k@60fps Will test 4k@120hz with new monitor later.

[COMPAT]OLED65C9PUA

Basic information

  • Device Model: OLED65C9PUA
  • System Version: 05.00.03
  • Is Audio Working: Yes
  • Is Video Working: 4K60fps, 50000 bitrate
  • Is Input Working: Remote (also tested DS4 with 8bitdo in a previous version, which worked)

Video is slightly desaturated compared to direct HDMI input on the same TV. I tested this by switching back and forth between my PC's HDMI input to TV and the Moonlight webOS app.

UI for TV

  • Correct element size
  • Gamepad/Remote navigation
    • Press back to quit in game
    • Press back to close settings
    • Press back to quit app
      • Handle cases when dialog/popup opened
    • Button focusing for dialog
    • Better games list navigation
      • DPAD select
      • Better highlight
      • Scroll the list when item selected
    • Menu button to open computers list
      • Simulate mouse click on combo
      • DPAD to select computer

Surround sound

Moonlight is almost able to handle it, but hard to test yet.

[COMPAT] 65SM8600PUA

  • Device Model: 65SM8600PUA
  • System Version: 4.9.0-53804
  • moonlight-tv Version: v0.6.2
  • Is Audio Working: Yes (Stereo)
  • Is Video Working: 1080p60fps
  • Is Input Working: Magic Remote is working, Wired Xbox 360 is working

Wired in to gigabit LAN, and things seem pretty smooth at 1080p60fps. Not quite as smooth with 4k, but I'm pretty sure the issue is with my old GTX 970, and not with moonlight-tv. Xbox One controller wired & wireless dongles do not work (unknown device). Just ordered 8bitdo adapter to try wireless Xbox One controller again later (will try to follow up once received and tested). Occasional crashing/clunkiness when launching games/Steam, but able to relaunch Moonlight and get smooth streaming from there when this does happen. Consistently crashes when launching a game after changing streaming settings (settings save, and games run on re-launch of moonlight-tv)

Not sure if surround sound is expected to be working at this point (I only heard stereo while testing, but didn't mess with any settings anywhere yet). Would be great to have that working too if not already implemented.

Thanks for all the hard work @mariotaku, this is looking fantastic!

[COMPAT] OLED55BX6LB

Basic information

  • Device Model: OLED55BX6LB
  • System Version: 5.2.1
  • Is Audio Working: Yes
  • Is Video Working: Yes (very slow)
  • Is Input Working: Remote works, gamepad untested.

Appears to work overall, but there is no hardware acceleration. Therefore, performance is mostly bad.

[COMPAT] OLED55C8PLA

Version WebOS: 05.30.10
Video: Doesn't Work [Black screen, also SOPS not supported @4k 60FPS]
Audio: Works
Remote: Works
Controller: Not tested

[COMPAT] 65NANO90UNA

Basic information

  • Device Model: 65NANO90UNA
  • System Version: 5.2.1-2522
  • Is Audio Working: Yes (SDL Audio)
  • Is Video Working: Yes (webOS is decoding x265/hevc 10bit!)
  • Is Input Working: Yes

Issues with this particular TV

  • Successful 'failed pairing'
  • unbinding an unknown host will crash the app
  • Backgrounding the app will either crash or error.
  • When navigating the UI the app will sometimes crash.
  • Sometimes launching a game or app will crash the client, but successfully launch it on the server. A workaround for now I've found is to resume a session launched from say an Android client. Seems to work as intended, but your bitrate and resolution are then limited by what you set when you first launched the app.
  • client doesn't stay paired/listed after the app is closed (constantly having to retype the ip is quite cumbersome).

[COMPAT] 49UM7000PLA

Basic information

  • Device Model: 49UM7000PLA
  • System Version: 5.00.15
  • Is Audio Working: yes
  • Is Video Working: yes [720p]
  • Is Input Working: TV Remote yes/Gamepad not tested

Using ethernet connection, and runs very smoothly. Thanks for the effort. Hope there is a way to keep it installed soon.

Only draw a border around the currently focused game in the game library

Is your feature request related to a problem? Please describe.
It is currently pretty difficult to see which game is currently in focus. I suggest only drawing the border around the game currently in focus, and possibly even making the border a brighter color so it is more visible against the dark gray background.

This is what Moonlight-qt does.

Describe the solution you'd like
Only see a border around the currently focused game.

Describe alternatives you've considered
The focused game icon becomes larger when focused, even potentially partially obscuring other game elements in the view. This is how it looks (by default for "collection views") on tvOS.

Additional context
Add any other context or screenshots about the feature request here.

In game overlay

An in-game overlay while in streaming providing following features:

  • Streaming performance statistics
    • FPS
    • Receive time
    • Decode time
  • Controller status

[BUG] Release 0.6.0 & webOS 3.8 crash on startup

Describe the bug
moonlight-tv crashes on startup since version 0.6.0. Release 0.5.2 seems to launch fine.

To Reproduce
Steps to reproduce the behavior:

  1. Install application
  2. Launch from home screen
  3. TV returns to last active input (app crashes)

Expected behavior
I would expect an app to launch properly.

LG webOS TV (please complete the following information):

  • Model: 43UJ6307-ZA
  • webOS version 3.8.0-61312

To check version, go to Settings > Quick Settings > General > About this TV > webOS TV Version

Additional context
Log of manual start:
https://gist.github.com/Informatic/801f219ad8a348db3ec00d5c56035483

Refresh game library page every few seconds similar to official Moonlight clients

Is your feature request related to a problem? Please describe.
The game library page does not appear to ever refresh itself in order to update the status of games. For example, say I am using Moonlight on another client, and I open Moonlight webOS. I see the "resume" and "exit" buttons on the game in question. I now quit Moonlight on that other client.

This also means that while I am in this state, if I try to launch a different game from Moonlight webOS, nothing happens. There's also no warning dialog about the fact that only one game can be played at a time, which is what I would expect to happen if the client thinks a game is being played (of course, there is no game actually being played, which is the underlying issue here).

Describe the solution you'd like
I would expect to see Moonlight webOS refresh itself after a short delay and reflect the fact that now, no games are currently running on the host.

Describe alternatives you've considered
I see there is currently a refresh button next to the computer list which appears to manually refresh the game status. I feel this should be automatic.

Additional context
Add any other context or screenshots about the feature request here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.