Hardware accelerated moonlight-embedded

Test and fix the Kernel 4.9 features

Moderators: odroid, mdrjr

Hardware accelerated moonlight-embedded

Unread postby crashoverride » Fri May 19, 2017 6:20 pm

I have created an experimental version of moonlight-embedded with hardware accelerated H264 decoding. It operates in a X11 desktop environment:
https://github.com/OtherCrashOverride/moonlight-embedded-crashoverride/tree/xu4

IMPORTANT:
It is possible for MFC to lockup the device on exit. If this happens, you will lose any unsaved work in other programs.

For best results, ensure "NoFlip" is set in /etc/X11/xorg.conf.d/exynos.conf
Code: Select all
        Option          "NoFlip"                "true"

Without this setting, video may increasingly lag due to limitations of moonlight-embedded.

A pre-compiled binary is provided here (ensure you have all dependencies installed):
https://github.com/OtherCrashOverride/moonlight-embedded-crashoverride/blob/xu4/moonlight-embedded
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby meveric » Fri May 19, 2017 9:07 pm

That sounds very interesting.
I'm looking forward to try this.
If this works maybe we can get it pushed upstream as well.

Thanks for all your work :)
User avatar
meveric
 
Posts: 7036
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: Hardware accelerated moonlight-embedded

Unread postby AreaScout » Fri May 19, 2017 9:52 pm

crashoverride wrote:I have created an experimental version of moonlight-embedded with hardware accelerated H264 decoding. It operates in a X11 desktop environment:
https://github.com/OtherCrashOverride/moonlight-embedded-crashoverride/tree/xu4

IMPORTANT:
It is possible for MFC to lockup the device on exit. If this happens, you will lose any unsaved work in other programs.

For best results, ensure "NoFlip" is set in /etc/X11/xorg.conf.d/exynos.conf
Code: Select all
        Option          "NoFlip"                "true"

Without this setting, video may increasingly lag due to limitations of moonlight-embedded.

A pre-compiled binary is provided here (ensure you have all dependencies installed):
https://github.com/OtherCrashOverride/moonlight-embedded-crashoverride/blob/xu4/moonlight-embedded


That would be just in time newer versions of ffmpeg doesn't support frame threading anymore but only slicing, and slicing doesn't works best on XU3/4 with software decoder

RG
User avatar
AreaScout
 
Posts: 385
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Fri May 19, 2017 10:07 pm

I created a patch to address the MFC IOMMU page-faults. The pull request is here:
https://github.com/hardkernel/linux/pull/297

This patch will be CRITICAL going forward with future updates. Without it, moonlight-embedded will page-fault locking up the XU4 when abnormally terminated (cntrl-c, kill, etc). Currently, I try to work around the issue, but its not always successful.
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Fri May 19, 2017 10:21 pm

FYI: if you experience significant audio (not video) lag, try disabling pulse-audio:
viewtopic.php?f=146&t=26962#p189598
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby meveric » Fri May 19, 2017 10:38 pm

crashoverride wrote:FYI: if you experience significant audio (not video) lag, try disabling pulse-audio:
viewtopic.php?f=146&t=26962#p189598

That's what we're doing on the XU3/XU4 ever since we use moonlight ;)

I actually have a lot of issues compiling this, mostly due to X11 vs EGL conflicts.
I guess I'll have to look into it in more detail later on.
User avatar
meveric
 
Posts: 7036
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Fri May 19, 2017 11:04 pm

That reminds me. I think I have the MESA EGL/GLES headers. I was compiling PPSSPP and I got frustrated with having to add #define everywhere. We really need to address this issue on the Ubuntu image.

Also, note that building is different than it is for upstream moonlight-embedded:
https://github.com/OtherCrashOverride/moonlight-embedded-crashoverride/blob/xu4/README.md
Code: Select all
git clone https://github.com/OtherCrashOverride/moonlight-embedded-crashoverride.git -b xu4
cd moonlight-embedded-crashoverride
git submodule update --init
premake4 gmake
make
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby meveric » Sat May 20, 2017 4:05 am

crashoverride wrote:That reminds me. I think I have the MESA EGL/GLES headers. I was compiling PPSSPP and I got frustrated with having to add #define everywhere. We really need to address this issue on the Ubuntu image.

That's new to me, I've compiled PPSSPP numerous times and never had issues with headers, and never had to add any #define

crashoverride wrote:Also, note that building is different than it is for upstream moonlight-embedded:
https://github.com/OtherCrashOverride/moonlight-embedded-crashoverride/blob/xu4/README.md
Code: Select all
git clone https://github.com/OtherCrashOverride/moonlight-embedded-crashoverride.git -b xu4
cd moonlight-embedded-crashoverride
git submodule update --init
premake4 gmake
make

I've seen that, followed it, and as I said it failed ;)
Code: Select all
==== Building xu4 (debug) ====
fake_video.cpp
In file included from ../../xu4/fake_video.cpp:21:0:
../../xu4/X11Window.h:19:5: error: ‘Display’ does not name a type; did you mean ‘EGLDisplay’?
     Display* x11Display = 0;
     ^~~~~~~
     EGLDisplay
../../xu4/X11Window.h:20:5: error: ‘Window’ does not name a type; did you mean ‘X11Window’?
     Window xwin = 0;
     ^~~~~~
     X11Window
../../xu4/X11Window.h:21:5: error: ‘Colormap’ does not name a type; did you mean ‘CWColormap’?
     Colormap colormap = 0;
     ^~~~~~~~
     CWColormap
../../xu4/X11Window.h:25:5: error: ‘Atom’ does not name a type; did you mean ‘Action’?
     Atom wm_delete_window;
     ^~~~
     Action
../../xu4/X11Window.h:29:2: error: ‘Display’ does not name a type; did you mean ‘EGLDisplay’?
  Display* X11Display() const
  ^~~~~~~
  EGLDisplay
../../xu4/fake_video.cpp: In function ‘void Render()’:
../../xu4/fake_video.cpp:98:26: error: ‘using element_type = class X11Window {aka class X11Window}’ has no member named ‘X11Display’; did you mean ‘EglDisplay’?
  drmfd = OpenDRM(window->X11Display());
                          ^~~~~~~~~~
                          EglDisplay
User avatar
meveric
 
Posts: 7036
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Sat May 20, 2017 6:12 am

Try adding the following after "#pragma once" in "./xu4/X11Window.h"
Code: Select all
#include <X11/Xlib.h>
#include <X11/keysym.h>
#include <X11/XKBlib.h>


so it should look like
Code: Select all
#pragma once

#include <X11/Xlib.h>
#include <X11/keysym.h>
#include <X11/XKBlib.h>
#include <EGL/egl.h>

enum class Action
{
    Nothing = 0,    //None is a #define
    Quit,
    ChangeScene

};


[edit]
RE: PPSSPP
I had to install SDL to compile it. SDL brought in MESA as a dependency. I have changes to make it (PPSSPP) work in X11 on XU4, but that is a topic for a different discussion.
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby meveric » Sat May 20, 2017 8:31 am

my current changes look like this:

Code: Select all
diff --git a/libgamestream/client.c b/libgamestream/client.c
index bc6c020..da938f0 100644
--- a/libgamestream/client.c
+++ b/libgamestream/client.c
@@ -495,7 +495,7 @@ int gs_pair(PSERVER_DATA server, char* pin) {
   RAND_bytes(client_secret_data, 16);
 
   const ASN1_BIT_STRING *asnSignature;
-  X509_get0_signature(&asnSignature, NULL, cert);
+  //X509_get0_signature(&asnSignature, NULL, cert);
 
   char challenge_response[16 + 256 + 16];
   char challenge_response_hash[32];
diff --git a/moonlight-embedded b/moonlight-embedded
index eaf433f..df5afe0 100755
Binary files a/moonlight-embedded and b/moonlight-embedded differ
diff --git a/premake4.lua b/premake4.lua
index 8dd5278..7419301 100755
--- a/premake4.lua
+++ b/premake4.lua
@@ -71,7 +71,7 @@ project "xu4"
    links {"pthread", "udev", "evdev", "asound", "opus", "moonlight-common-c", "h264bitstream", "gamestream",
                  "enet", "ssl", "crypto",
                  "uuid", "expat", "avahi-client", "avahi-common", "curl",
-                 "m", "X11", "mali", "stdc++", "drm", "dri2"}
+                 "m", "X11", "GLESv2", "stdc++", "drm", "dri2"}
    defines { "HAVE_FAKE=1" }
 
    configuration "Debug"
@@ -80,4 +80,4 @@ project "xu4"
 
    configuration "Release"
       flags { "Optimize" }
-      defines { "" }
\ No newline at end of file
+      defines { "" }
diff --git a/xu4/Scene.cpp b/xu4/Scene.cpp
index 27cf250..53fbebe 100755
--- a/xu4/Scene.cpp
+++ b/xu4/Scene.cpp
@@ -10,7 +10,7 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <sys/mman.h>
-#include <drm/drm_fourcc.h>
+#include <libdrm/drm_fourcc.h>
 #include <string.h>
 
 #define EGL_EGLEXT_PROTOTYPES 1
diff --git a/xu4/X11Window.cpp b/xu4/X11Window.cpp
index 077afa0..e65e7b0 100755
--- a/xu4/X11Window.cpp
+++ b/xu4/X11Window.cpp
@@ -7,6 +7,7 @@
 #include <X11/Xlib.h>
 #include <X11/keysym.h>
 #include <X11/XKBlib.h>
+#include <X11/Xutil.h>
 #include <memory>
 #include <GLES2/gl2.h>
 
@@ -302,4 +303,4 @@ void X11Window::HideMouse()
 void X11Window::UnHideMouse()
 {
        XUndefineCursor(x11Display, xwin);
-}
\ No newline at end of file
+}
diff --git a/xu4/X11Window.h b/xu4/X11Window.h
index 502cf95..bf179e9 100755
--- a/xu4/X11Window.h
+++ b/xu4/X11Window.h
@@ -1,5 +1,8 @@
 #pragma once
 
+#include <X11/Xlib.h>
+#include <X11/keysym.h>
+#include <X11/XKBlib.h>
 #include <EGL/egl.h>
 
 enum class Action

Don't know what's with that X509_get0_signature, it doesn't seem to exist anyway.
I haven't had time to test yet, but that's how I'm able to compile it at least.
I can only compile debug, release instantly failes with <command-line>:0:1: error: macro names must be identifiers.

Well I'm gonna try it tomorrow if I have time for it and report back.
User avatar
meveric
 
Posts: 7036
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Sat May 20, 2017 8:42 am

meveric wrote:my current changes look like this:

+ //X509_get0_signature(&asnSignature, NULL, cert);

This is from upstream. I imported the current branch from them as of a day or two ago.

+ "m", "X11", "GLESv2", "stdc++", "drm", "dri2"}
+#include <libdrm/drm_fourcc.h>
+#include <X11/Xutil.h>
+#include <X11/Xlib.h>
+#include <X11/keysym.h>
+#include <X11/XKBlib.h>

Those are likely due to the distro/package/gcc/version differences. I will need to investigate making it more robust.

meveric wrote:I can only compile debug

That is already fixed in the latest commit to my repo. If you use the latest, ensure you have the MFC patch in your kernel. Otherwise, your kernel will hang when streaming stops.
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Sun May 21, 2017 8:38 am

I should point out that the Kernel 4.9.y has support for PS3/Xbox controllers. This means 3rd party utilities like sixad, xboxdrv should not be used. I have updated the xbox360 mapping to match the kernel driver.
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Sun May 21, 2017 5:10 pm

The latest update add VSYNC support.

The maximum supported stream is 1080p@30fps (720p@60fps is supported). MFC can not keep up with 1080p@60 in the scenario where a buffer return is delayed (such as when Mali needs to use it). Despite giving MFC additional decode buffers, it does not appear to ever use them. In the 1080p@60 scenario, video lag will accumulate.

The following is an example used during testing:
Code: Select all
./moonlight-embedded stream -app "Your App Name" -mapping ./mappings/xbox360.conf -1080 -30fps -bitrate 20000
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Tue May 23, 2017 4:18 pm

The latest update makes 1080p@60 work. The issue was a bug in my code. :oops:
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby AreaScout » Tue May 23, 2017 6:14 pm

crashoverride wrote:The latest update makes 1080p@60 work. The issue was a bug in my code. :oops:


oho ! :) will test that in the evening, that sounds promising
User avatar
AreaScout
 
Posts: 385
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Tue May 23, 2017 6:46 pm

I have been playing games... I mean testing... for a couple hours now. Its working as expected so far. :D
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby meveric » Tue May 23, 2017 6:50 pm

You should remove the binary from your git repo or at least move it to a different place.
User avatar
meveric
 
Posts: 7036
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Tue May 23, 2017 6:55 pm

meveric wrote:You should remove the binary from your git repo or at least move it to a different place.

My preference is to remove it entirely. Its a pain to track since it needs to be "release", but I always test in "debug" and forget about it.

I did not know how well the transition to "premake4" from "cmake" would be received by the community. This is why I originally included a binary.
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby odroid » Tue May 23, 2017 6:59 pm

crashoverride wrote:I have been playing games... I mean testing... for a couple hours now. Its working as expected so far. :D


Great news!
Really appreciate your hard work.
User avatar
odroid
Site Admin
 
Posts: 22768
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID

Re: Hardware accelerated moonlight-embedded

Unread postby meveric » Tue May 23, 2017 7:01 pm

currently (at least for me) I consider this just "testing", since packaging this version is a lot harder than the original sources, and probably involves a lot of manual steps.
Also it's not "universal" as the other versions are. You can't have one build for MFC and AML at the same time the way you build it, but this works just fine with the original sources.
User avatar
meveric
 
Posts: 7036
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Tue May 23, 2017 7:17 pm

meveric wrote:currently (at least for me) I consider this just "testing"

I consider it "getting started". My plan is to integrate the C1/C2 (and new Odroids!) branch in the future.

The challenge is maintenance. The xu4 branch is an experiment in co-existing with upstream. After a few more tweaks, the code will "co-exist" allowing upstream patches to be merged without conflicts. That is why the xu4 specific code is currently 'de-coupled' from where it would normally be. I plan to do the same for C2. The end result would be "make xu4" or "make c2" from a single repo/codebase. Unlike upstream, only a single binary is produced. This should make packaging for distros extremely simple. For XU4, there are also fewer dependencies than upstream since SDL and FFMPEG are not used.

I am always open to suggestions and comments on improving things. The build may be different, but it should be easier/simpler than it is upstream once everything is settled.
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Tue May 23, 2017 7:48 pm

odroid wrote:Really appreciate your hard work.

By the way, thank you, @odroid, for your kind words. Some days, its particularly nice to hear words of encouragement.
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby meveric » Tue May 23, 2017 8:53 pm

crashoverride wrote:By the way, thank you, @odroid, for your kind words. Some days, its particularly nice to hear words of encouragement.

You've done very impressive work on ODROIDs. The hardware accelerated moonlight for C1/C2 which is already upstream, your work on G2D for the XU3/XU4, and your current work with MFC decoding, is really impressive.
We're lucky to have someone in our community that can do all this, aside with some other people that have done very good work and help ODROIDs to be such good boards as they are. @OverSun with his work on the Kodi, @memeka, with hardware decoder/encoder, @moon.linux, @rooted, @LiquidAcid, as well as the entire HardKernel team, and many more. I'm really glad we have you guys :)



I think I need to find a way to setup another ODROID, so I can do more tests with all the new 4.9 Kernel stuff. Currently I always have to switch images. I'd rather just switch IPs of different boards :D
User avatar
meveric
 
Posts: 7036
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: Hardware accelerated moonlight-embedded

Unread postby AreaScout » Wed May 24, 2017 3:41 am

crashoverride wrote:
odroid wrote:Really appreciate your hard work.

By the way, thank you, @odroid, for your kind words. Some days, its particularly nice to hear words of encouragement.


You are the man crashoverride ! congrats on that, what would be the world without guys like you :)

I have tested it now, sometimes audio got lost and i get this as kernel message:

Code: Select all
[ 7564.979294] max98090 5-0010: PLL unlocked
[ 7565.019308] max98090 5-0010: PLL unlocked
[ 7565.059741] max98090 5-0010: PLL unlocked
[ 7565.099308] max98090 5-0010: PLL unlocked
[ 7565.139298] max98090 5-0010: PLL unlocked
[ 7565.179306] max98090 5-0010: PLL unlocked


and this as console output:

Code: Select all
Alsa error from writei: -32
Alsa error from writei: -32
Alsa error from writei: -32


I also had compile errors on debian, i added in xu4/CodecData.h

Code: Select all
#include <iostream>


i changed in xu4/Scene.cpp

Code: Select all
-#include <drm/drm_fourcc.h>
+#include <libdrm/drm_fourcc.h>


then i added -std=gnu99 to CFLAGS in moonlight-common-c.make, h264bitstream.make and gamestream.make to get rid of the "‘for’ loop initial declarations are only allowed in C99 or C11 mode" errors and somehow you have to manage
to add the C99 or C11 flag to src/main.c, src/config.c and src/loop.c file only in xu4.make

then it would build perfectly

Streaming is very fast ( low latency ) -> i love it, again great work !

RG
Last edited by AreaScout on Thu May 25, 2017 5:50 pm, edited 1 time in total.
User avatar
AreaScout
 
Posts: 385
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: Hardware accelerated moonlight-embedded

Unread postby meveric » Wed May 24, 2017 6:32 am

I finally got around testing as well, and I can confirm it's working great as well, although. There are some minor issues compiling.
Code: Select all
diff --git a/premake4.lua b/premake4.lua
index cf6c440..51442f5 100755
--- a/premake4.lua
+++ b/premake4.lua
@@ -10,7 +10,7 @@ project "moonlight-common-c"
    language "C"
    includedirs { "third_party/moonlight-common-c/reedsolomon" }
    files { "third_party/moonlight-common-c/**.h", "third_party/moonlight-common-c/**.c" }
-   buildoptions { "-fPIC" }
+   buildoptions { "-fPIC", "--std=gnu99" }
    -- linkoptions { "-lenet -lpthread -lssl -lcrypto" }
    links {"pthread", "enet", "ssl", "crypto"}
 
@@ -28,7 +28,7 @@ project "h264bitstream"
    language "C"
    includedirs { "" }
    files { "third_party/h264bitstream/**.h", "third_party/h264bitstream/**.c" }
-   buildoptions { "-fPIC" }
+   buildoptions { "-fPIC", "--std=gnu99" }
    -- linkoptions { "" }
 
    configuration "Debug"
@@ -45,7 +45,7 @@ project "gamestream"
    language "C"
    includedirs { "third_party/moonlight-common-c/src", "third_party/h264bitstream/" }
    files { "libgamestream/**.h", "libgamestream/**.c" }
-   buildoptions { "-fPIC" }
+   buildoptions { "-fPIC", "--std=gnu99" }
    linkoptions { "" }
    -- links {"moonlight-common-c", "h264bitstream"}
    links {"uuid", "expat", "avahi-client", "curl", "h264bitstream", "moonlight-common-c"}
@@ -71,7 +71,7 @@ project "xu4"
    links {"pthread", "udev", "evdev", "asound", "opus", "moonlight-common-c", "h264bitstream", "gamestream",
                  "enet", "ssl", "crypto",
                  "uuid", "expat", "avahi-client", "avahi-common", "curl",
-                 "m", "X11", "mali", "stdc++", "drm", "dri2"}
+                 "m", "X11", "GLESv2", "stdc++", "drm", "dri2"}
    defines { "HAVE_FAKE=1" }
 
    configuration "Debug"

this solves the issues with everything except for xu4 section.
The xu4 section needs CFLAGS -std=gnu99 and CXXFLAGS -std=c++11
The issue earlier with X509_get0_signature can be solved by installing backports libraries of libssl under Debian jessie:
Code: Select all
apt-get install -t jessie-backports libssl-dev


For now I'm very pleased with the results, it's really nice to see it working that great :)
CPU is mostly idling with moonlight running with less than 20% CPU usage :)

Although I've experienced some slow downs while playing, but I'm not sure what caused this yet.
User avatar
meveric
 
Posts: 7036
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Wed May 24, 2017 10:33 am

AreaScout wrote:I have tested it now, sometimes audio got lost and i get this as kernel message:

The audio issues are due to buffer "under-run" based on my testing observations. The heart of the issue is that the XU4 audio clock and PC source clock are not synchronized. This means that audio will either finish early (under-run) or accumulate a delay (audio lag). I posted this issue upstream, but it was closed as "wont fix":
https://github.com/irtimmer/moonlight-embedded/issues/443
Somewhere in the data stream is a reference clock. If I had access to that clock, I can stretch or drop audio/video to prevent drop-outs or lag.

meveric wrote:Although I've experienced some slow downs while playing, but I'm not sure what caused this yet.

In testing XU4VideoCube, I have observed MFC will "speed up and slow down". My theory is this is due to memory "pressure" rather than CPU usage. The goal here is to ensure "recovery" in synchronization. The decode is threaded separately from rendering. Each render frame "flushes" MFC to re-establish sync. This is also a case where a reference clock (above issue) would be helpful.

RE: compilation issues.
The issues seem to stem from GCC version (Ubuntu vs Debian). If someone could make a pull request with all the changes, I will test them on Ubuntu. If it does not break anything, I will merge them.
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Wed May 24, 2017 11:27 am

The following video illustrates the clock problem:
https://www.youtube.com/watch?v=T58lGKREubo

We have four clocks: XU4 video, XU4 audio, PC video, PC audio. We need all clocks to be synchronized by some means. In the video, they are synchronized by all sharing a common base. In the digital world, we need a reference clock.
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Wed May 24, 2017 2:33 pm

crashoverride wrote: If someone could make a pull request with all the changes, I will test them on Ubuntu.

Alternatively, if someone can point me to a Debian + kernel 4.9 image then I can test with it.
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby meveric » Wed May 24, 2017 2:46 pm

crashoverride wrote:RE: compilation issues.
The issues seem to stem from GCC version (Ubuntu vs Debian). If someone could make a pull request with all the changes, I will test them on Ubuntu. If it does not break anything, I will merge them.

That is true, using GCC 7.1 to compile the software also works without issues for me, but then I need to add static libstdc++ to the linker flags.

crashoverride wrote:
crashoverride wrote: If someone could make a pull request with all the changes, I will test them on Ubuntu.

Alternatively, if someone can point me to a Debian + kernel 4.9 image then I can test with it.

Using my GamstationTurbo image should work ok for that task, but you would have to install Kernel manually from my packages: https://oph.mdrjr.net/meveric/kernel/XU3/4.9.x/
a simple dpkg -i for kernel header and armsoc should be enough, and then just changing the xorg setting for noflip and boot.ini to xu4 dtb.
User avatar
meveric
 
Posts: 7036
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Wed May 24, 2017 5:35 pm

Ok, I tried but could not get it to work.
I downloaded the image. I had to do the "apt-get upgrade" work around. Got it updated. Downloaded kernel 4.9.28+ deb file. Installed it with "dpkg -i". Edited device tree to point to {blah blah]xu4.dtb. Rebooted.

The system starts and I can see the log on the screen. systemd takes over. mmclk1p2 is mounted. Then everything just stops. The blue LED continues to flash. The text remains on screen. I can reboot with CTRL-ALT-DEL several times so the kernel is alive. It just never gives me a login prompt. SSH is also dead. I left it sitting. Screen saver kicks in and blanks the display. Pressing a key restores the display but still no log-in.

[edit]
Attached console cable. The issue is /etc/fstab trying to mount /dev/mmcblk0p1 to /boot. This does not exist with SD card (/dev/mmcblk1). Should either mount it by label or use 'nofail' option.

[edi2]
Need "apt install firmware-linux" for MFC firmware.

[edit 3]
The above did not work, still see
Code: Select all
[    6.414987] s5p-mfc 11000000.codec:: Direct firmware load for s5p-mfc-v8.fw failed with error -2
[    6.428644] s5p_mfc_load_firmware:70: Firmware is not present in the /lib/firmware directory nor compiled in kernel
[    6.444323] s5p-mfc 11000000.codec:: Direct firmware load for s5p-mfc-v8.fw failed with error -2
[    6.456277] s5p_mfc_load_firmware:70: Firmware is not present in the /lib/firmware directory nor compiled in kernel

No idea what package its in, so I just downloaded from:
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/s5p-mfc-v8.fw
to /lib/firmware
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby AreaScout » Wed May 24, 2017 6:22 pm

Do you have any USB-Stick connected ? I had the same issue when booting and USB-Stick is connected ?
User avatar
AreaScout
 
Posts: 385
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: Hardware accelerated moonlight-embedded

Unread postby meveric » Wed May 24, 2017 6:28 pm

crashoverride wrote:[edit]
Attached console cable. The issue is /etc/fstab trying to mount /dev/mmcblk0p1 to /boot. This does not exist with SD card (/dev/mmcblk1). Should either mount it by label or use 'nofail' option.

This should already be fixed in the current version and the system uses UUID rather than /dev/mmcblk0p1. Are you sure you're using the latest image?
Even if you're using an old image if you do a full system upgrade it would fix the /etc/fstab entry (after you fixed the issue with the HTTPS update)

crashoverride wrote:[edi2]
Need "apt install firmware-linux" for MFC firmware.

firmware-samsung should have been already installed, which is needed for MFC, if it wouldn't be installed, Kodi wouldn't work either, so I highly doubt it's missing.

crashoverride wrote:[edit 3]
The above did not work, still see
Code: Select all
[    6.414987] s5p-mfc 11000000.codec:: Direct firmware load for s5p-mfc-v8.fw failed with error -2
[    6.428644] s5p_mfc_load_firmware:70: Firmware is not present in the /lib/firmware directory nor compiled in kernel
[    6.444323] s5p-mfc 11000000.codec:: Direct firmware load for s5p-mfc-v8.fw failed with error -2
[    6.456277] s5p_mfc_load_firmware:70: Firmware is not present in the /lib/firmware directory nor compiled in kernel

No idea what package its in, so I just downloaded from:
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/s5p-mfc-v8.fw
to /lib/firmware

once again, since it's required for Kodi anyway it's pre-installed. So I really don't know what issues you're facing.
It was also tested by AreaScout and me, and we did not have the issues with MFC, so I'm rather confused.

Could it be that you have two storange devices connected to your ODROID at the same time?
Like eMMC with Ubuntu and SD with my image?
If so, than this can cause an issue, since Ubuntu and Debian image share the same rootfs UUID.
User avatar
meveric
 
Posts: 7036
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Wed May 24, 2017 6:39 pm

This is the image I installed:
viewtopic.php?f=96&t=17542#p114709

If there is a newer one, please link it.

I only have sd card installed (in a cloudshell2).
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby AreaScout » Wed May 24, 2017 6:46 pm

i use the 20170313 from here https://oph.mdrjr.net/meveric/images/OGST/
User avatar
AreaScout
 
Posts: 385
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Wed May 24, 2017 7:19 pm

Where is the "libdri2-dev" package for Debian?
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby AreaScout » Wed May 24, 2017 7:36 pm

Code: Select all
apt-get install apt-transport-https
apt-get install libdri2-odroid
User avatar
AreaScout
 
Posts: 385
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Wed May 24, 2017 7:47 pm

Here is the patch that allowed me to compile in Jessie. Its a little different from what has been posted, so I will test with the other image linked.
https://github.com/OtherCrashOverride/moonlight-embedded-crashoverride/commit/1c4a5ab173e1c538393f696e78b375d1851b92e7
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby meveric » Wed May 24, 2017 8:01 pm

Looks pretty much like the changes I had to do, when I compiled it yesterday.
Minus the
Code: Select all
+#include <X11/Xlib.h>
+#include <X11/keysym.h>
+#include <X11/XKBlib.h>

Suggested way earlier in the thread.

For all I can say this should work fine, at least under Debian.
User avatar
meveric
 
Posts: 7036
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: Hardware accelerated moonlight-embedded

Unread postby AreaScout » Thu May 25, 2017 10:50 pm

crashoverride wrote:
AreaScout wrote:I have tested it now, sometimes audio got lost and i get this as kernel message:

The audio issues are due to buffer "under-run" based on my testing observations. The heart of the issue is that the XU4 audio clock and PC source clock are not synchronized. This means that audio will either finish early (under-run) or accumulate a delay (audio lag). I posted this issue upstream, but it was closed as "wont fix":
https://github.com/irtimmer/moonlight-embedded/issues/443
Somewhere in the data stream is a reference clock. If I had access to that clock, I can stretch or drop audio/video to prevent drop-outs or lag.


I did further research on that, audio pauses frequently which was very annoying because the overall impression is very good and the audio/video latency is really low and fast, beside that i also had that "speed up and slow down" effect two times on 3 hours gameplay, so i used SDL2 as audio decoder and what can i say, the audio losts/pauses are gone ! :) Audio plays flawlessly with SDL2 and so after 1 hour testing there was also no "speed up and slow down" to show up, we should use SDL2 as default audio decoder if you can confirm this.

Playing with the sample size in audio/sdl.c from 4096, to 1024 shows the same audio lost behavior like the alsa decoder, so it has something to do with the audio sample size, but SDL2 is well known to do a very good job as a low level driver in low latency audio streaming, so we better stay with SDL2 i think.

RG
User avatar
AreaScout
 
Posts: 385
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Thu May 25, 2017 11:13 pm

I will investigate. SDL is going to use either ALSA or PulseAudio as its backend so its better to just directly use one of them and avoid the dependency.

If possible, a video recording showing the issue would be helpful to ensure we are discussing the same issue. As noted before, I have PulseAudio disabled. So I will also need to ensure we are testing in the same configuration.

Its likely the buffer size will impact operation. Bigger buffers mean more lag, though. For my retro-arch front end, I have already observed that PulseAudio negatively affects small buffer/low latency audio causing frequent under-runs. If necessary, I can author a new ALSA backend. Bigger buffers, however, are likely the solution.
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby AreaScout » Fri May 26, 2017 12:08 am

crashoverride wrote:I will investigate. SDL is going to use either ALSA or PulseAudio as its backend so its better to just directly use one of them and avoid the dependency.


Sure it does use ALSA or PulseAudio and SDL Video is using OpenGL/ES/ES2 but it does that in a very fast and wise way, it's not an 'overhead' and SDL2 is preinstalled on most Linux distros we use

crashoverride wrote:If possible, a video recording showing the issue would be helpful to ensure we are discussing the same issue. As noted before, I have PulseAudio disabled. So I will also need to ensure we are testing in the same configuration.


I also have pulseaudio disabled, just finished another longplay test and sadly the "speed up and slow down" did happen again, it's like slow motion and then fast forward and it does not happen very often and so it's hard to make a video of it, but the audio pauses are happen every 10-15 sec. and pauses 2-3sec. but this it's completely gone when i use SDL and i am VERY happy about that.

crashoverride wrote:Its likely the buffer size will impact operation. Bigger buffers mean more lag, though. For my retro-arch front end, I have already observed that PulseAudio negatively affects small buffer/low latency audio causing frequent under-runs. If necessary, I can author a new ALSA backend. Bigger buffers, however, are likely the solution.


Also with retroarch i had the best results on ODROID's by using SDL as Audio device no need to author another ALSA audio driver for moonlight if you're asking for

RG
User avatar
AreaScout
 
Posts: 385
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Fri May 26, 2017 2:59 pm

The "speed up and slow down" is due to MFC. For some unknown reason it actually does speed up and slow down. This can be seen in the XU4VideoCube demo.

The issue with SDL as a dependency is that it is completely broken by default. A special patched version of SDL is required. Additionally, SDL brings in MESA as a dependency which overwrite the EGL/GLES headers. For these reasons, it is preferred to avoid SDL.

I have experimented with a compromise. I attempted to dynamically load libSDL2.so at runtime. This removes the hard dependency and allows the program to work on systems where SDL is not present while still allowing its use on systems where it is present. The issue, though, is that SDL has a hard dependency on itself in the headers. I would need to further patch SDL to remove it.
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby meveric » Fri May 26, 2017 5:45 pm

crashoverride wrote:The issue with SDL as a dependency is that it is completely broken by default. A special patched version of SDL is required. Additionally, SDL brings in MESA as a dependency which overwrite the EGL/GLES headers. For these reasons, it is preferred to avoid SDL.

What patches are needed and what is completely broken? O_o
I've never heard of this. The only time you need a patched version of SDL2 is if you want to run it on fbdev drivers rather than X11, and yes I agree that's nothing that should be default.
But for X11 SDL2 works fine on Ubuntu and Debian. Only issue what "could" be, is that for "most" application SDL2 uses the first renderer it finds which under Ubuntu and Debian is by default OpenGL which is (as we know) not working.
But you can tell the application on compile time to use OpenGL ES instead (AreaScout does this with his patches for moonlight). That way it doesn't matter how SDL2 is compiled.
On my Debian Image, SDL2 comes without OpenGL support and it always uses OpenGL ES as a default, no one needs to change anything for that.
But then again, this all is for VIDEO acceleration, not for audio, Audio should always work no matter what. I've never had any issues with SDL2 audio (except from being slower than ALSA or pulse in some cases maybe).
User avatar
meveric
 
Posts: 7036
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: ODROID-X2,ODROID-U2,ODROID-U3,ODROID-XU-Lite, ODROID-XU3, ODROID-XU3-Lite, ODROID-C1, ODROID-XU4, ODROID-C2

Re: Hardware accelerated moonlight-embedded

Unread postby AreaScout » Fri May 26, 2017 5:58 pm

crashoverride wrote:The "speed up and slow down" is due to MFC. For some unknown reason it actually does speed up and slow down. This can be seen in the XU4VideoCube demo.


did a release build yesterday and tested with that, "speed up and slow down" appeared but not that extrem, in fact it was hard noticable, maybe i was only lucky, i will retest today

crashoverride wrote:The issue with SDL as a dependency is that it is completely broken by default. A special patched version of SDL is required. Additionally, SDL brings in MESA as a dependency which overwrite the EGL/GLES headers. For these reasons, it is preferred to avoid SDL.


What you are consider as 'completely broken' ? We compile SDL2 with --disable-opengl if needed, thats all and to only use SDL2 audio you do not have to initialize SDL2 video, so every standart SDL2 package will work.

crashoverride wrote:I have experimented with a compromise. I attempted to dynamically load libSDL2.so at runtime. This removes the hard dependency and allows the program to work on systems where SDL is not present while still allowing its use on systems where it is present. The issue, though, is that SDL has a hard dependency on itself in the headers. I would need to further patch SDL to remove it.


You want to use dlopen for SDL2 ?, no need to do that thought, SDL2 itself will load it's library dependency via dlopen, and if you have am image without SDL2 and you get the MESA EGL/GLES headers you can reinstall the malit628-odroid (or mali-x11 on ubuntu) package by forcing it, thats how we done this all the time
User avatar
AreaScout
 
Posts: 385
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: Hardware accelerated moonlight-embedded

Unread postby AreaScout » Fri May 26, 2017 6:45 pm

btw. here is the patch i did quickly to use SDL2 Audio on your fork -> consider this as quick and dirty please ;)

Code: Select all
cd moonlight-embedded-crashoverride/
wget -O SDL2Audio.diff https://pastebin.com/raw/GP7gpWFZ
patch -p0 < SDL2Audio.diff
Last edited by AreaScout on Fri May 26, 2017 7:09 pm, edited 1 time in total.
User avatar
AreaScout
 
Posts: 385
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: Hardware accelerated moonlight-embedded

Unread postby OverSun » Fri May 26, 2017 7:05 pm

Just for the record I did not ever experienced the "slow downs" of MFC ever. MFC works like a charm.
What I see is that EGL layer is working the way one CPU is always topped. Which makes it not catch up with the incoming data. This is what is the problem in Kodi right now.
User avatar
OverSun
 
Posts: 1216
Joined: Mon Apr 29, 2013 5:12 pm
languages_spoken: english

Re: Hardware accelerated moonlight-embedded

Unread postby AreaScout » Fri May 26, 2017 7:12 pm

maybe if you get the time you can test it on the same image like me ? pulseaudio off, 20170313, debug and release version of moonlight
User avatar
AreaScout
 
Posts: 385
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Fri May 26, 2017 7:12 pm

AreaScout wrote:You want to use dlopen for SDL2 ?, no need to do that thought, SDL2 itself will load it's library dependency via dlopen

Yes, I planned to dlopen it. The issue is this as seen in your patch:
Code: Select all
+        "m", "X11", "GLESv2", "stdc++", "drm", "dri2", "SDL2"}

If you hard link SDL2, the binary will not load on a system where the libSDL2.so is not present.

AreaScout wrote:What you are consider as 'completely broken' ?

meveric wrote:what is completely broken?

The "video" part of SDL is what caused issue for me on official Ubuntu image with Ubuntu provided SDL2. The audio and input works. I could never get it to create a GLES context. It always tried to use OpenGL.

I created my own ALSA backend and was able to confirm my theory about clocks. My PC clock runs slightly slower than my XU4 clock. This means after a certain amount of frames (113 seconds), there is an under-run. There are slight variations in the data recorded, but its almost always 113 seconds. This number would vary for every XU4 and PC/GPU combination.

I went through the SDL source to see what makes it different. It operates much like Pulse Audio does. It does not directly submit audio buffers to the hardware from programs. Instead they are "mixed" into a common buffer. This is what mitigates the audio under-runs. It also adds audio latency (83ms). This is only noticeable when switching between ALSA and SDL. Your brain "adjusts" for the delay and it seems normal after a while.

I have a theory that using OpenAL would produce similar results to SDL since it also buffers/mixes audio. Its would be a preferable dependency to SDL. I will investigate further.

Long term, I would like to enable everyone to choose what ever audio backend they like. Also, there are new changes upstream that I would like to merge. They have absolutely no effect on Odroid operation. However, X11 is now a supported type. I would prefer to utilize that over "FAKE" as I currently do.
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: Hardware accelerated moonlight-embedded

Unread postby AreaScout » Fri May 26, 2017 7:22 pm

crashoverride wrote:I went through the SDL source to see what makes it different. It operates much like Pulse Audio does. It does not directly submit audio buffers to the hardware from programs. Instead they are "mixed" into a common buffer. This is what mitigates the audio under-runs. It also adds audio latency (83ms). This is only noticeable when switching between ALSA and SDL. Your brain "adjusts" for the delay and it seems normal after a while.


That 83ms is that audio is behind or before Video ? I don't believe that it adds an overall latency of 83ms ?
User avatar
AreaScout
 
Posts: 385
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: english, german
ODROIDs: X2, U3, XU3, C2

Re: Hardware accelerated moonlight-embedded

Unread postby crashoverride » Fri May 26, 2017 8:15 pm

AreaScout wrote:That 83ms is that audio is behind or before Video ?

The audio is "behind" the video. Something happens on screen, there is a slight pause before its heard.

FYI, so far, the OpenAL backend I wrote works great. After some more testing, I will upload it to my github.
crashoverride
 
Posts: 2783
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Next

Return to Linux Kernel 4.9 Debugging Party

Who is online

Users browsing this forum: AreaScout, crashoverride and 2 guests