Release Moonlight


ptitSeb

Serial Porter
Joined
Aug 15, 2012
Messages
9,306
Age
51
Location
France, near Lyon
Here is Moonlight, an open source implementation of the NVidia GameStream Streaming Protocol.

preview1.png


A video on Moonlight (embedded) running FEZ

With it, and using an NVidia equiped PC, you can stream your PC Games to your Pandora.

Problem is that the Pandora power and Wifi make it slow to render the PC Screen, and add some lag, making that software not super useable.

To be able to use the native Pandora resolution, you may need to create the 800x480 as a custom resolution in the NVidia control panel.

But I guess for Turn by Turn game, it may be usefull...

History log
==========


Build 04
-----------

  • Switched to upstream Moonlight-embeded
  • Using latest sources
  • Revamped gtkdialog to add a more options
  • Nubs are now configuration in the dialog
  • Streaming Texture is now optional
Build 03
-----------

  • Now using Streaming Texture
Build 02
-----------

  • Switched to Moonlight-embedded (GLES2 build from ODroid user AreaScout).
  • Using some cheap gtkdialog menu for more ease of use
Build 01
-----------

  • Initial build
  • Forced 800x480 fullscreen
  • OpenGL mode is not working
 
Last edited:
Thanks pitSeb! Look promising. Is there any chance this will be worked on to improve Moonlight? Or is it mostly down to the Pandoras limitations which cause the lag?
 
Thanks pitSeb! Look promising. Is there any chance this will be worked on to improve Moonlight? Or is it mostly down to the Pandoras limitations which cause the lag?
I don't know for sure, but I'm afraid the Pandora Wifi and CPU are a bit weak for this.

Still, I may try to get more usefulness out of this one in the future..
 
Have you considered porting the embedded port of Moonlight? It runs well on very limited hardware like the Pi. If there's some hardware accelerated video decoding API you can use like OpenMAX or VDPAU, it could be worth a shot. If you're lucky, you might only need to write a video decoder/renderer implementation for the Pandora (https://github.com/irtimmer/moonlight-embedded/blob/master/src/video/omx.c). It would also let you drop the dependency on Java since Moonlight-Embedded is pure C since v2.0.

https://github.com/irtimmer/moonlight-embedded
 
Last edited by a moderator:
Have you considered porting the embedded port of Moonlight? It runs well on very limited hardware like the Pi. If there's some hardware accelerated video decoding API you can use like OpenMAX or VDPAU, it could be worth a shot. If you're lucky, you might only need to write a video decoder/renderer implementation for the Pandora (https://github.com/irtimmer/moonlight-embedded/blob/master/src/video/omx.c). It would also let you drop the dependency on Java since Moonlight-Embedded is pure C since v2.0.

https://github.com/irtimmer/moonlight-embedded
I may have a look. Not sure it will help much, I think most lag comes from Network (the decoding is done with the avcodec lib in the java version, so it's already native, the java part is mostly for the windows & menu handling).
 
I may have a look. Not sure it will help much, I think most lag comes from Network (the decoding is done with the avcodec lib in the java version, so it's already native, the java part is mostly for the windows & menu handling).
Well decoding is native code but it's definitely not fast. It needs to be done on the GPU/VPU to have a chance at reasonable performance. Even current generation phones can't decode the stream in realtime without hardware assistance during periods of high action. Android and iOS ports have to use hardware decoding to reliably decode at a reasonable frame rate.

Can the hardware decoder in the Pandora SoC handle H.264 high profile?
 
Last edited by a moderator:
I may have a look. Not sure it will help much, I think most lag comes from Network (the decoding is done with the avcodec lib in the java version, so it's already native, the java part is mostly for the windows & menu handling).
Well decoding is native code but it's definitely not fast. It needs to be done on the GPU/VPU to have a chance at reasonable performance. Even current generation phones can't decode the stream in realtime without hardware assistance during periods of high action. Android and iOS ports have to use hardware decoding to reliably decode at a reasonable frame rate.

Can the hardware decoder in the Pandora SoC handle H.264 high profile?
There should be some H.264 hardware assist, but not for high profile, and I don't think it's open source anyway.

The only thing that can help is probably the Color Conversion that may be done in hardware, but that's pretty much all that can be done (to my knowledge).

PS: Are you from the dev team of moonlight?
 
Last edited by a moderator:
Can the hardware decoder in the Pandora SoC handle H.264 high profile?
Can it? Yes, technically.The codec doesn't exist though. All we need is for someone to write a DSP implementation of the h.264 decoder and we'll be in business :p

That hasn't happened in the 7 years since the Pandora's release, I don't expect it to happen any time before the Pyra's release. :(
 
Can the hardware decoder in the Pandora SoC handle H.264 high profile?
Can it? Yes, technically.
The codec doesn't exist though. All we need is for someone to write a DSP implementation of the h.264 decoder and we'll be in business :p


That hasn't happened in the 7 years since the Pandora's release, I don't expect it to happen any time before the Pyra's release. :(
Where's bsp? :)
 
Moonlight doesn't start for me eventhough java has been installed.

=======================================================================================

PND             : /media/psd1_256gb/pandora/apps/moonlight.pnd

PND_FSTYPE      : Squashfs

APPDATADIR      : /media/psd1_256gb/pandora/appdata/moonlight

APPDD_FSTYPE    : ext4

PND_CPUSPEED    : <unset>

EXENAME         : runscript.sh

ARGUMENTS       : <unset>

=======================================================================================

[ START ]--- Mount the PND ----------

Mounting : mount -t squashfs -o ro "/dev/loop0" "/mnt/utmp/moonlight"

Mounting the Union FS : mount -t aufs -o exec,dirs="/media/psd1_256gb/pandora/appdata/moonlight=rw+nolwh":"/mnt/pnd/moonlight=rr" none "/mnt/utmp/moonlight"

[sUCCESS]--- Mount the PND ----------

[ START ]--- Starting the application ( runscript.sh  ) ----------

System check

============

Freememory is 1368

Cpu Speed is 1295

Sys Speed is 400

nubs has mouse mbuttons

Found java.pnd at /media/psd1_256gb/pandora/apps/java.pnd

Attempting to execute jvm at /mnt/utmp/java/jdk/bin/java

Args are: -Xmx256m build/moonlight-pandora.jar

Error: Could not find or load main class build.moonlight-pandora.jar

rmdir: failed to remove `/mnt/utmp/java': Device or resource busy

[sUCCESS]--- Starting the application ( runscript.sh  ) ----------

[ START ]--- Restoring the frame buffer status ----------

[sUCCESS]--- Restoring the frame buffer status ----------

[ START ]--- Restoring nub mode ----------

[sUCCESS]--- Restoring nub mode ----------

[ START ]--- uMount the PND ----------

[ START ]--- Waiting the Union to be available ----------

[sUCCESS]--- Waiting the Union to be available ----------

rmdir: failed to remove `/mnt/utmp/moonlight': Device or resource busy

[ START ]--- Waiting the PND mount dir to be free ----------

[sUCCESS]--- Waiting the PND mount dir to be free ----------

cleanup done

[sUCCESS]--- uMount the PND ----------

=======================================================================================

Return code is : 3

 
 
If I remember correctly, you can choose from OpenJDK or SUN.

I choosed SUN myseif, and you?

*EDIT*: also, can you download it again from the Repo, it looks like you have the 1st beta release I had done, that doesn't start properly.
 
Last edited by a moderator:
Redowndloaded and reinstall  Java PND, but still can start it.
But the log you put came from the 1st beta version (the line "Args are: -Xmx256m build/moonlight-pandora.jar").

The correct version should print "Args are: -Xmx256m -jar moonlight-pandora.jar". Can you delete all the moonlight.pnd you have and re-download?
 
Redowndloaded and reinstall  Java PND, but still can start it.
But the log you put came from the 1st beta version (the line "Args are: -Xmx256m build/moonlight-pandora.jar").

The correct version should print "Args are: -Xmx256m -jar moonlight-pandora.jar". Can you delete all the moonlight.pnd you have and re-download?
I did, still the same result.  Let me try another Moonlight see if it works.

gpV9a5I.jpg
 
Last edited by a moderator:
Redowndloaded and reinstall  Java PND, but still can start it.
But the log you put came from the 1st beta version (the line "Args are: -Xmx256m build/moonlight-pandora.jar").

The correct version should print "Args are: -Xmx256m -jar moonlight-pandora.jar". Can you delete all the moonlight.pnd you have and re-download?
I did, still the same result.  Let me try another Moonlight see if it works.

gpV9a5I.jpg
That other moonlight seems to taste good, but I prefer belgian ones ;)

Anyway, I have downloaded moonlight from the repo to be sure, and it's working fine for me.

To be sure of the pnd version you have, you can do


/usr/pandora/scripts/pnd_run.sh -p /media/psd1_256gb/pandora/apps/moonlight.pnd -m

than copy/past here the result of


cat /mnt/utmp/moonlight/runscript.sh

after that, you can unmount the pnd with

Code:
/usr/pandora/scripts/pnd_run.sh -p /media/psd1_256gb/pandora/apps/moonlight.pnd -u
 
Back
Top