Kodi Community Forum
hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy) - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Development (https://forum.kodi.tv/forumdisplay.php?fid=32)
+--- Forum: Kodi Application (https://forum.kodi.tv/forumdisplay.php?fid=93)
+--- Thread: hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy) (/showthread.php?tid=254202)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23


RE: hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy) - matrzh - 2017-04-15

No, no cross compile . I compile on Debian (jessie).
The funny thing is: I added a '--verbose' to the ld-line in the makefile and I see all included libs when "collect2" is called. It's an enormous line with many libraries in there 2 or 3 times.
The order of the "cannot find -lxcb-xfixes" is exactly as in the command line that is printed.
However, it contains also lxcb without xfixes etc.
This does not seem to throw an error. libxcb.so.1 is in the exact same directory (and nowhere else on my system).
libxcb.so.1 is version 1, all the libxcb-xfixes.so.0 are of version 0. Could this yield conflicts? I tried to make a symbolic link and even a copy to libxcb-xfixes.so.1, but this did not work either.

--edit--

So stupid. For some reason the symbolic link libxcb-xfixes.so was missing in the library directory, it only had libxcb-xfixes.so.0 etc.... Confused
libxcb.so existed, however.

Compile went through Cool
I will let you know tomorrow, if it actually works Wink

Is it correct that there still seems to be some X11 stuff in it?


RE: hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy) - matrzh - 2017-04-16

It's working in principle! I keep getting segmentation faults, after some time, though. Could be because I am running squeezelite in parallel that is also using ALSA and sound cannot be allocated. Will fiddle around a little and think I will get there. Thanks for your help!


RE: hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy) - mosterta - 2017-04-16

check that your user running kodi is part of group "audio", otherwise kodi lacks the rights to open /dev/snd

do you have a backtrace from the segfaults? can you run kodi in gdb and provide the backtraces?


RE: hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy) - matrzh - 2017-04-16

I am running as root to test, I know I shouldn't Wink

backtrace:
Code:
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
Core was generated by `/usr/local/lib/kodi/kodi.bin'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00000000 in ?? ()

Thread 34 (Thread 0xaf4ff3f0 (LWP 6168)):
#0  0xb68b866e in PyObject_GetIter () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
#1  0xb68cfb90 in PyEval_EvalFrameEx () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
#2  0xb69148ca in PyEval_EvalCodeEx () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
#3  0xb68d2f0c in PyEval_EvalFrameEx () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
#4  0xb68d2fc0 in PyEval_EvalFrameEx () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
#5  0xb68d2fc0 in PyEval_EvalFrameEx () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
#6  0xb68d2fc0 in PyEval_EvalFrameEx () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
#7  0xb68d2fc0 in PyEval_EvalFrameEx () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
#8  0xb68d2fc0 in PyEval_EvalFrameEx () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
#9  0xb68d2fc0 in PyEval_EvalFrameEx () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
#10 0xb69148ca in PyEval_EvalCodeEx () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
#11 0xb68d2f0c in PyEval_EvalFrameEx () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
#12 0xb69148ca in PyEval_EvalCodeEx () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
#13 0xb68d2f0c in PyEval_EvalFrameEx () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
#14 0xb69148ca in PyEval_EvalCodeEx () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
#15 0xb68d2f0c in PyEval_EvalFrameEx () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
#16 0xb69148ca in PyEval_EvalCodeEx () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
#17 0xb68ce6bc in PyEval_EvalCode () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
#18 0xb68a9048 in PyImport_ExecCodeModuleEx () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
#19 0xb68a9492 in ?? () from /usr/lib/arm-linux-gnueabihf/libpython2.7.so.1.0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 33 (Thread 0xaabf33f0 (LWP 6170)):
#0  0xb5c307b2 in nanosleep () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0xb5c4de38 in usleep () from /lib/arm-linux-gnueabihf/libc.so.6
#2  0x01a11a00 in XbmcThreads::ThreadSleep (millis=0) at /root/kodi/xbmc/xbmc/threads/platform/pthreads/ThreadImpl.h:37
#3  0x01a127f2 in CThread::Sleep (this=0x55192e0, milliseconds=0) at Thread.cpp:197
#4  0x018b43a6 in CDVDPlayer::Process (this=0x55192d8) at DVDPlayer.cpp:1349
#5  0x01a12824 in CThread::Action (this=0x55192e0) at Thread.cpp:221
#6  0x01a1258e in CThread::staticThread (data=0x55192e0) at Thread.cpp:131
#7  0xb6c8bf88 in start_thread () from /lib/arm-linux-gnueabihf/libpthread.so.0
#8  0xb5c520fc in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 32 (Thread 0xa04093f0 (LWP 6106)):
#0  0xb5c4d7c2 in select () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0xb5c4d7bc in select () from /lib/arm-linux-gnueabihf/libc.so.6
#2  0xb6fc9f10 in _rtld_global_ro () from /lib/ld-linux-armhf.so.3
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 31 (Thread 0xa0c093f0 (LWP 6105)):
#0  0xb5c4d7c2 in select () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0xb5c4d7bc in select () from /lib/arm-linux-gnueabihf/libc.so.6
#2  0xb6fc9f10 in _rtld_global_ro () from /lib/ld-linux-armhf.so.3
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 30 (Thread 0xadc7f3f0 (LWP 5965)):
#0  0xb5c4d7c2 in select () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0xb5c4d7bc in select () from /lib/arm-linux-gnueabihf/libc.so.6
#2  0xb6fc9f10 in _rtld_global_ro () from /lib/ld-linux-armhf.so.3
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 29 (Thread 0xb12a13f0 (LWP 5926)):
#0  0xb5c4b8d2 in poll () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0x019b9c40 in PERIPHERALS::CPeripheralBusUSB::WaitForUpdate (this=0x42f9618) at linux/PeripheralBusUSBLibUdev.cpp:237
#2  0x019b9b56 in PERIPHERALS::CPeripheralBusUSB::Process (this=0x42f9618) at linux/PeripheralBusUSBLibUdev.cpp:207
#3  0x01a12824 in CThread::Action (this=0x42f9618) at Thread.cpp:221
#4  0x01a1258e in CThread::staticThread (data=0x42f9618) at Thread.cpp:131
#5  0xb6c8bf88 in start_thread () from /lib/arm-linux-gnueabihf/libpthread.so.0
#6  0xb5c520fc in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 28 (Thread 0xa467a3f0 (LWP 6155)):
#0  0xb6c93546 in __libc_do_syscall () from /lib/arm-linux-gnueabihf/libpthread.so.0
#1  0xb6c8f3bc in pthread_cond_timedwait@@GLIBC_2.4 () from /lib/arm-linux-gnueabihf/libpthread.so.0
#2  0x00b7aa18 in XbmcThreads::ConditionVariable::wait (this=0x2037158 <CJobManager::GetInstance()::sJobManager+264>, lock=..., milliseconds=30000) at /root/kodi
/xbmc/xbmc/threads/platform/pthreads/Condition.h:84
#3  0x00b7b58c in XbmcThreads::TightConditionVariable<bool volatile&>::wait<CCriticalSection> (this=0x2037188 <CJobManager::GetInstance()::sJobManager+312>, lock
=..., milliseconds=30000) at /root/kodi/xbmc/xbmc/threads/Condition.h:65
#4  0x00b7ac38 in CEvent::WaitMSec (this=0x2037130 <CJobManager::GetInstance()::sJobManager+224>, milliSeconds=30000) at /root/kodi/xbmc/xbmc/threads/Event.h:86
#5  0x0118301c in CJobManager::GetNextJob (this=0x2037050 <CJobManager::GetInstance()::sJobManager>, worker=0x4b93878) at JobManager.cpp:362
#6  0x01181dd2 in CJobWorker::Process (this=0x4b93878) at JobManager.cpp:59
#7  0x01a12824 in CThread::Action (this=0x4b93878) at Thread.cpp:221
#8  0x01a1258e in CThread::staticThread (data=0x4b93878) at Thread.cpp:131
#9  0xb6c8bf88 in start_thread () from /lib/arm-linux-gnueabihf/libpthread.so.0
#10 0xb5c520fc in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 27 (Thread 0xa5bf33f0 (LWP 5946)):
#0  0xb5c4d7c2 in select () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0xb5c4d7bc in select () from /lib/arm-linux-gnueabihf/libc.so.6
#2  0x00000000 in ?? ()

Thread 26 (Thread 0xa23f33f0 (LWP 5958)):
#0  0xb5c4d7c2 in select () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0xb5c4d7bc in select () from /lib/arm-linux-gnueabihf/libc.so.6
#2  0xa23f2c5c in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)


Thread 25 (Thread 0xa2bf33f0 (LWP 5959)):
#0  0xb5c4d7c2 in select () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0xb5c4d7bc in select () from /lib/arm-linux-gnueabihf/libc.so.6
#2  0x04bb1bb8 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 24 (Thread 0xa63f33f0 (LWP 5945)):
#0  0xb6c93546 in __libc_do_syscall () from /lib/arm-linux-gnueabihf/libpthread.so.0
#1  0xb6c8f3bc in pthread_cond_timedwait@@GLIBC_2.4 () from /lib/arm-linux-gnueabihf/libpthread.so.0
#2  0x0109e530 in NPT_PosixSharedVariable::WaitUntilEquals (this=0x4a58f50, value=1, timeout=890000) at Neptune/Source/System/Posix/NptPosixThreads.cpp:198
#3  0x01080136 in NPT_SharedVariable::WaitUntilEquals (this=0x4bb1df8, value=1, timeout=890000) at ./Neptune/Source/Core/NptThreads.h:162
#4  0x010abf50 in PLT_ThreadTask::IsAborting (this=0x4bb1de8, timeout=890000) at Platinum/Source/Core/PltThreadTask.h:74
#5  0x019e3ac6 in PLT_SsdpDeviceAnnounceTask::DoRun (this=0x4bb1de8) at Platinum/Source/Core/PltSsdp.cpp:316
#6  0x010af766 in PLT_ThreadTask::Run (this=0x4bb1de8) at Platinum/Source/Core/PltThreadTask.cpp:179
#7  0x0109edda in NPT_PosixThread::Run (this=0x4ac8cc8) at Neptune/Source/System/Posix/NptPosixThreads.cpp:555
#8  0x0109eba0 in NPT_PosixThread::EntryPoint (argument=0x4ac8cc8) at Neptune/Source/System/Posix/NptPosixThreads.cpp:481
#9  0xb6c8bf88 in start_thread () from /lib/arm-linux-gnueabihf/libpthread.so.0
#10 0xb5c520fc in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 23 (Thread 0xa73f33f0 (LWP 5943)):
#0  0xb5c4d7c2 in select () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0xb5c4d7bc in select () from /lib/arm-linux-gnueabihf/libc.so.6
#2  0x00000000 in ?? ()

Thread 22 (Thread 0xa83f33f0 (LWP 5941)):
#0  0xb6c93546 in __libc_do_syscall () from /lib/arm-linux-gnueabihf/libpthread.so.0
#1  0xb6c8f3bc in pthread_cond_timedwait@@GLIBC_2.4 () from /lib/arm-linux-gnueabihf/libpthread.so.0
#2  0x0109e530 in NPT_PosixSharedVariable::WaitUntilEquals (this=0x4c2d290, value=1, timeout=5000) at Neptune/Source/System/Posix/NptPosixThreads.cpp:198
#3  0x01080136 in NPT_SharedVariable::WaitUntilEquals (this=0x4a33638, value=1, timeout=5000) at ./Neptune/Source/Core/NptThreads.h:162
#4  0x010abf50 in PLT_ThreadTask::IsAborting (this=0x4a33628, timeout=5000) at Platinum/Source/Core/PltThreadTask.h:74
#5  0x019dbac2 in PLT_CtrlPointHouseKeepingTask::DoRun (this=0x4a33628) at Platinum/Source/Core/PltCtrlPointTask.cpp:164
#6  0x010af766 in PLT_ThreadTask::Run (this=0x4a33628) at Platinum/Source/Core/PltThreadTask.cpp:179
#7  0x0109edda in NPT_PosixThread::Run (this=0x4c2d2e8) at Neptune/Source/System/Posix/NptPosixThreads.cpp:555
#8  0x0109eba0 in NPT_PosixThread::EntryPoint (argument=0x4c2d2e8) at Neptune/Source/System/Posix/NptPosixThreads.cpp:481
#9  0xb6c8bf88 in start_thread () from /lib/arm-linux-gnueabihf/libpthread.so.0
#10 0xb5c520fc in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 21 (Thread 0xab3f33f0 (LWP 5935)):
#0  0xb5c4b8d2 in poll () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0xb6f35a1a in ?? () from /usr/lib/arm-linux-gnueabihf/libavahi-common.so.3
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 20 (Thread 0xa8bf33f0 (LWP 5940)):
#0  0xb5c4d7c2 in select () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0xb5c4d7bc in select () from /lib/arm-linux-gnueabihf/libc.so.6
#2  0x0000007c in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 19 (Thread 0xb41ff3f0 (LWP 5922)):
#0  0xb6c93546 in __libc_do_syscall () from /lib/arm-linux-gnueabihf/libpthread.so.0
#1  0xb6c8f3bc in pthread_cond_timedwait@@GLIBC_2.4 () from /lib/arm-linux-gnueabihf/libpthread.so.0
#2  0x00b7aa18 in XbmcThreads::ConditionVariable::wait (this=0x409e2f8, lock=..., milliseconds=100) at /root/kodi/xbmc/xbmc/threads/platform/pthreads/Condition.h
:84
#3  0x00b7b58c in XbmcThreads::TightConditionVariable<bool volatile&>::wait<CCriticalSection> (this=0x409e328, lock=..., milliseconds=100) at /root/kodi/xbmc/xbm
c/threads/Condition.h:65
#4  0x00b7ac38 in CEvent::WaitMSec (this=0x409e2d0, milliSeconds=100) at /root/kodi/xbmc/xbmc/threads/Event.h:86
#5  0x00c265a6 in ActiveAE::CActiveAE::Process (this=0x409e078) at Engines/ActiveAE/ActiveAE.cpp:935
#6  0x01a12824 in CThread::Action (this=0x409e080) at Thread.cpp:221
#7  0x01a1258e in CThread::staticThread (data=0x409e080) at Thread.cpp:131
#8  0xb6c8bf88 in start_thread () from /lib/arm-linux-gnueabihf/libpthread.so.0
#9  0xb5c520fc in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 18 (Thread 0xa6bf33f0 (LWP 6172)):
#0  0xb6c93546 in __libc_do_syscall () from /lib/arm-linux-gnueabihf/libpthread.so.0
#1  0xb6c8f3bc in pthread_cond_timedwait@@GLIBC_2.4 () from /lib/arm-linux-gnueabihf/libpthread.so.0
#2  0x00b7aa18 in XbmcThreads::ConditionVariable::wait (this=0xb42556d8, lock=..., milliseconds=100) at /root/kodi/xbmc/xbmc/threads/platform/pthreads/Condition.
h:84
#3  0x00b7b58c in XbmcThreads::TightConditionVariable<bool volatile&>::wait<CCriticalSection> (this=0xb4255708, lock=..., milliseconds=100) at /root/kodi/xbmc/xb
mc/threads/Condition.h:65
#4  0x00b7ac38 in CEvent::WaitMSec (this=0xb42556b0, milliSeconds=100) at /root/kodi/xbmc/xbmc/threads/Event.h:86
#5  0x00d281b0 in XFILE::CFileCache::Process (this=0xb42554b8) at FileCache.cpp:314
#6  0x01a12824 in CThread::Action (this=0xb42554c0) at Thread.cpp:221
#7  0x01a1258e in CThread::staticThread (data=0xb42554c0) at Thread.cpp:131
#8  0xb6c8bf88 in start_thread () from /lib/arm-linux-gnueabihf/libpthread.so.0
#9  0xb5c520fc in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 17 (Thread 0xa33f33f0 (LWP 6134)):
#0  0xb6c93546 in __libc_do_syscall () from /lib/arm-linux-gnueabihf/libpthread.so.0
#1  0xb6c8f3bc in pthread_cond_timedwait@@GLIBC_2.4 () from /lib/arm-linux-gnueabihf/libpthread.so.0
#2  0x00b7aa18 in XbmcThreads::ConditionVariable::wait (this=0x2037158 <CJobManager::GetInstance()::sJobManager+264>, lock=..., milliseconds=30000) at /root/kodi
/xbmc/xbmc/threads/platform/pthreads/Condition.h:84
#3  0x00b7b58c in XbmcThreads::TightConditionVariable<bool volatile&>::wait<CCriticalSection> (this=0x2037188 <CJobManager::GetInstance()::sJobManager+312>, lock
=..., milliseconds=30000) at /root/kodi/xbmc/xbmc/threads/Condition.h:65
#4  0x00b7ac38 in CEvent::WaitMSec (this=0x2037130 <CJobManager::GetInstance()::sJobManager+224>, milliSeconds=30000) at /root/kodi/xbmc/xbmc/threads/Event.h:86
#5  0x0118301c in CJobManager::GetNextJob (this=0x2037050 <CJobManager::GetInstance()::sJobManager>, worker=0x4b41830) at JobManager.cpp:362
#6  0x01181dd2 in CJobWorker::Process (this=0x4b41830) at JobManager.cpp:59
#7  0x01a12824 in CThread::Action (this=0x4b41830) at Thread.cpp:221
#8  0x01a1258e in CThread::staticThread (data=0x4b41830) at Thread.cpp:131
#9  0xb6c8bf88 in start_thread () from /lib/arm-linux-gnueabihf/libpthread.so.0
#10 0xb5c520fc in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 16 (Thread 0x9f4093f0 (LWP 6107)):
#0  0xb5c4d7c2 in select () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0xb5c4d7bc in select () from /lib/arm-linux-gnueabihf/libc.so.6
#2  0xb6fc9f10 in _rtld_global_ro () from /lib/ld-linux-armhf.so.3
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 15 (Thread 0xa93f33f0 (LWP 5939)):
#0  0xb5c4d7c2 in select () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0xb5c4d7bc in select () from /lib/arm-linux-gnueabihf/libc.so.6
#2  0x00000400 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 14 (Thread 0x9ec093f0 (LWP 6176)):
#0  0xb6c93546 in __libc_do_syscall () from /lib/arm-linux-gnueabihf/libpthread.so.0
#1  0xb6c8f3bc in pthread_cond_timedwait@@GLIBC_2.4 () from /lib/arm-linux-gnueabihf/libpthread.so.0
#2  0x00b7aa18 in XbmcThreads::ConditionVariable::wait (this=0x5399aa8, lock=..., milliseconds=146) at /root/kodi/xbmc/xbmc/threads/platform/pthreads/Condition.h
:84
#3  0x00b7b58c in XbmcThreads::TightConditionVariable<bool volatile&>::wait<CCriticalSection> (this=0x5399ad8, lock=..., milliseconds=146) at /root/kodi/xbmc/xbm
c/threads/Condition.h:65
#4  0x00b7ac38 in CEvent::WaitMSec (this=0x5399a80, milliSeconds=146) at /root/kodi/xbmc/xbmc/threads/Event.h:86
#5  0x018e7992 in CDVDMessageQueue::Get (this=0x5399a78, pMsg=0x9ec08a9c, iTimeoutInMilliSeconds=146, priority=@0x9ec08a98: 1) at DVDMessageQueue.cpp:208
#6  0x018c8ca4 in CDVDPlayerAudio::DecodeFrame (this=0x5399810, audioframe=...) at DVDPlayerAudio.cpp:336
#7  0x018c9610 in CDVDPlayerAudio::Process (this=0x5399810) at DVDPlayerAudio.cpp:510
#8  0x01a12824 in CThread::Action (this=0x5399810) at Thread.cpp:221
#9  0x01a1258e in CThread::staticThread (data=0x5399810) at Thread.cpp:131
#10 0xb6c8bf88 in start_thread () from /lib/arm-linux-gnueabihf/libpthread.so.0
#11 0xb5c520fc in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 13 (Thread 0xa3bf33f0 (LWP 5951)):
#0  0xb6c93546 in __libc_do_syscall () from /lib/arm-linux-gnueabihf/libpthread.so.0
#1  0xb6c8f3bc in pthread_cond_timedwait@@GLIBC_2.4 () from /lib/arm-linux-gnueabihf/libpthread.so.0
#2  0x0109e530 in NPT_PosixSharedVariable::WaitUntilEquals (this=0xb4246298, value=1, timeout=5000) at Neptune/Source/System/Posix/NptPosixThreads.cpp:198
#3  0x01080136 in NPT_SharedVariable::WaitUntilEquals (this=0xb4257ea8, value=1, timeout=5000) at ./Neptune/Source/Core/NptThreads.h:162
#4  0x01085682 in NPT_HttpConnectionManager::Run (this=0xb4257e88) at Neptune/Source/Core/NptHttp.cpp:1319
#5  0x0109edda in NPT_PosixThread::Run (this=0xb428c468) at Neptune/Source/System/Posix/NptPosixThreads.cpp:555
#6  0x0109eba0 in NPT_PosixThread::EntryPoint (argument=0xb428c468) at Neptune/Source/System/Posix/NptPosixThreads.cpp:481
#7  0xb6c8bf88 in start_thread () from /lib/arm-linux-gnueabihf/libpthread.so.0
#8  0xb5c520fc in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 12 (Thread 0xa9bf33f0 (LWP 5938)):
#0  0xb5c4d7c2 in select () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0xb5c4d7bc in select () from /lib/arm-linux-gnueabihf/libc.so.6
############# END STACK TRACE ###############

At one point, I had to repair my SD-Card filesystem which left some files corrupted and I had to reinstall some packages, including some python stuff, but I think everything is good again, now.
Do you see any shared library above that seems to be not working?
ldd -r works on all of them.

the last lines of the crashlog / logfile are as follows:
Code:
21:35:18 T:3032047616   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: system rules
21:35:18 T:3032047616   DEBUG: CPlayerSelectionRule::GetPlayers: matches rule: system rules
21:35:18 T:3032047616   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: mms/udp
21:35:18 T:3032047616   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: lastfm/shout
21:35:18 T:3032047616   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: rtmp
21:35:18 T:3032047616   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: rtsp
21:35:18 T:3032047616   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: streams
21:35:18 T:3032047616   DEBUG: CPlayerSelectionRule::GetPlayers: matches rule: streams
21:35:18 T:3032047616   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: aacp/sdp
21:35:18 T:3032047616   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: mp2
21:35:18 T:3032047616   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: dvd
21:35:18 T:3032047616   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: dvdimage
21:35:18 T:3032047616   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: sdp/asf
21:35:18 T:3032047616   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: nsv
21:35:18 T:3032047616   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: radio
21:35:18 T:3032047616   DEBUG: CPlayerCoreFactory::GetPlayers: matched 0 rules with players
21:35:18 T:3032047616   DEBUG: CPlayerCoreFactory::GetPlayers: adding videodefaultplayer (1)
21:35:18 T:3032047616   DEBUG: CPlayerCoreFactory::GetPlayers: for video=1, audio=0
21:35:18 T:3032047616   DEBUG: CPlayerCoreFactory::GetPlayers: for video=1, audio=1
21:35:18 T:3032047616   DEBUG: CPlayerCoreFactory::GetPlayers: adding player: DVDPlayer (1)
21:35:18 T:3032047616   DEBUG: CPlayerCoreFactory::GetPlayers: added 1 players
21:35:18 T:3032047616   DEBUG: Radio UECP (RDS) Processor - new CDVDRadioRDSData
21:35:18 T:3032047616  NOTICE: DVDPlayer: Opening: https://r4---sn-1gi7zn7z.googlevideo.com/videoplayback?lmt=1492180464553526&ei=dcfzWMC8F4PJcY2Mr_AD&requiressl=yes&dur=132.075&itag=22&pl=19&source=youtube&expire=1492392917&mime=video%2Fmp4&mm=31&signature=E38D5CE1C627B8019E0AA8F5E9CAC04076EA7933.836ED0CCFFC7A23AAA973B23281C71788FB168A8&ratebypass=yes&ipbits=0&initcwndbps=1713750&ip=212.203.58.128&key=yt6&ms=au&mt=1492371205&mv=m&id=o-AH-eRqSkpBwwBesIfzUpViHkihtY2kPwL7XEx8pr4ha7&sparams=dur%2Cei%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cupn%2Cexpire&mn=sn-1gi7zn7z&upn=S8MY68gHqkQ
21:35:18 T:3032047616 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
21:35:18 T:3032047616   DEBUG: CRenderManager::UpdateDisplayLatency - Latency set to 0 msec
21:35:18 T:3032047616   DEBUG: LinuxRendererGLES: Cleaning up GLES resources
21:35:18 T:2864657392   DEBUG: Thread DVDPlayer start, auto delete: false
21:35:18 T:2864657392  NOTICE: Creating InputStream
21:35:18 T:2864657392   DEBUG: CCurlFile::GetMimeType - https://r4---sn-1gi7zn7z.googlevideo.com/videoplayback?lmt=1492180464553526&ei=dcfzWMC8F4PJcY2Mr_AD&requiressl=yes&dur=132.075&itag=22&pl=19&source=youtube&expire=1492392917&mime=video%2Fmp4&mm=31&signature=E38D5CE1C627B8019E0AA8F5E9CAC04076EA7933.836ED0CCFFC7A23AAA973B23281C71788FB168A8&ratebypass=yes&ipbits=0&initcwndbps=1713750&ip=212.203.58.128&key=yt6&ms=au&mt=1492371205&mv=m&id=o-AH-eRqSkpBwwBesIfzUpViHkihtY2kPwL7XEx8pr4ha7&sparams=dur%2Cei%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cupn%2Cexpire&mn=sn-1gi7zn7z&upn=S8MY68gHqkQ -> video/mp4
21:35:18 T:2864657392   DEBUG: CFileCache::Open - opening <videoplayback> using cache
21:35:18 T:2864657392   DEBUG: CurlFile::Open(0xa3d22380) https://r4---sn-1gi7zn7z.googlevideo.com/videoplayback?lmt=1492180464553526&ei=dcfzWMC8F4PJcY2Mr_AD&requiressl=yes&dur=132.075&itag=22&pl=19&source=youtube&expire=1492392917&mime=video%2Fmp4&mm=31&signature=E38D5CE1C627B8019E0AA8F5E9CAC04076EA7933.836ED0CCFFC7A23AAA973B23281C71788FB168A8&ratebypass=yes&ipbits=0&initcwndbps=1713750&ip=212.203.58.128&key=yt6&ms=au&mt=1492371205&mv=m&id=o-AH-eRqSkpBwwBesIfzUpViHkihtY2kPwL7XEx8pr4ha7&sparams=dur%2Cei%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cupn%2Cexpire&mn=sn-1gi7zn7z&upn=S8MY68gHqkQ
21:35:18 T:2864657392  NOTICE: Creating Demuxer
21:35:18 T:2797548528   DEBUG: Thread FileCache start, auto delete: false
21:35:18 T:2864657392   DEBUG: Open - probing detected format [mov,mp4,m4a,3gp,3g2,mj2]
21:35:18 T:2864657392   DEBUG: Open - avformat_find_stream_info starting
21:35:18 T:2864657392   DEBUG: Open - av_find_stream_info finished
21:35:18 T:2864657392   DEBUG: CDVDInputStreamFile::SetReadRate - set cache throttle rate to 236131 bytes per second
21:35:18 T:2864657392  NOTICE: Opening stream: 0 source: 256
21:35:18 T:2864657392  NOTICE: Creating video codec with codec id: 29
21:35:18 T:2864657392   DEBUG: CDVDFactoryCodec: compiled in hardware support: AMCodec:no MediaCodec:no OpenMax:no libstagefright:no VDPAU:yes VAAPI:no iMXVPU:no MMAL:no
21:35:18 T:2864657392   DEBUG: FactoryCodec - Video:  - Opening
21:35:18 T:2864657392  NOTICE: CDVDVideoCodecFFmpeg::Open() Using codec: H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
21:35:18 T:2864657392   DEBUG: FactoryCodec - Video: ff-h264 - Opened
21:35:18 T:2864657392  NOTICE: Creating video thread
21:35:18 T:2864657392  NOTICE: Opening stream: 1 source: 256
21:35:18 T:2864657392  NOTICE: Finding audio codec for: 86018
21:35:18 T:2864657392   DEBUG: FactoryCodec - Audio: passthrough - Opening
21:35:18 T:2864657392   DEBUG: FactoryCodec - Audio: passthrough - Failed
21:35:18 T:2864657392   DEBUG: FactoryCodec - Audio: FFmpeg - Opening
21:35:18 T:2881434608   DEBUG: Thread DVDPlayerVideo start, auto delete: false
21:35:18 T:2881434608  NOTICE: running thread: video_thread
21:35:18 T:2864657392   DEBUG: FactoryCodec - Audio: FFmpeg - Opened
21:35:18 T:2864657392  NOTICE: Creating audio thread
21:35:18 T:2881434608   DEBUG: CDVDPlayerVideo - CDVDMsg::GENERAL_SYNCHRONIZE
21:35:18 T:2864657392   DEBUG: OnPlayBackStarted: play state was 1, starting 1
21:35:18 T:2864657392   DEBUG: CDVDPlayer::SetCaching - caching state 1
21:35:18 T:3032047616   DEBUG: PlayFile: OpenFile succeed, play state 2
21:35:18 T:3032047616   DEBUG: OnPlayBackStarted: play state was 2, starting 0
21:35:18 T:2663420912   DEBUG: Thread DVDPlayerAudio start, auto delete: false
21:35:18 T:2663420912  NOTICE: running thread: CDVDPlayerAudio::Process()
21:35:18 T:2663420912   DEBUG: CDVDPlayerAudio - CDVDMsg::GENERAL_SYNCHRONIZE
21:35:18 T:2864657392   DEBUG: CDVDPlayer::SetCaching - caching state 3
21:35:18 T:3032047616   DEBUG: ------ Window Deinit (DialogProgress.xml) ------
21:35:18 T:2881434608   DEBUG: CDVDPlayerVideo - CDVDMsg::GENERAL_RESYNC(0.000000, 1)
21:35:18 T:2881434608    INFO: CDVDPlayerVideo - Stillframe left, switching to normal playback
21:35:18 T:2881434608   DEBUG: CDVDPlayerVideo::CalcDropRequirement - hurry: 0
21:35:18 T:2881434608  NOTICE: CDVDVideoCodecFFmpeg::GetFormat - Creating VDPAU(1280x720)
21:35:18 T:2881434608  NOTICE: VDPAU::CreateContext - creating decoder context
21:35:18 T:2864657392   DEBUG: CDVDPlayer::CheckContinuity - wrapback :2, prev:125122.222222, curr:41711.111111, diff:-83411.111111
21:35:18 T:2663420912  NOTICE: Creating audio stream (codec id: 86018, channels: 2, sample rate: 44100, no pass-through)
21:35:18 T:2663420912   DEBUG: CDVDPlayerAudio:: synctype set to 0: clock feedback
21:35:18 T:2663420912  NOTICE: CDVDPlayerAudio::OutputPacket duplicate 1 packets of duration 23
21:35:18 T:3011507184    INFO: CActiveAESink::OpenSink - initialize sink
21:35:18 T:2881434608  NOTICE: vdp_device = 0x00000001 vdp_st = 0x00000000
21:35:18 T:2881434608  NOTICE: VDPAU Decoder capabilities:
21:35:18 T:2881434608  NOTICE: name          level macbs width height
21:35:18 T:2881434608  NOTICE: ------------------------------------
21:35:18 T:2881434608  NOTICE: MPEG1            16 32400  3840  2160
21:35:18 T:2881434608  NOTICE: MPEG2_SIMPLE     16 32400  3840  2160
21:35:18 T:2881434608  NOTICE: MPEG2_MAIN       16 32400  3840  2160
21:35:18 T:2881434608  NOTICE: H264_BASELINE    16 32400  3840  2160
21:35:18 T:2881434608  NOTICE: H264_MAIN        16 32400  3840  2160
21:35:18 T:2881434608  NOTICE: H264_HIGH        16 32400  3840  2160
21:35:18 T:2881434608  NOTICE: MPEG4_PART2_ASP  16 32400  3840  2160
21:35:18 T:2881434608  NOTICE: ------------------------------------
21:35:18 T:2881434608    INFO: CVDPAU::FFGetBuffer - Video surface=2 created
21:35:18 T:2881434608   DEBUG: CVideoSurfaces::AddSurface - mark surface reference=2
21:35:18 T:2881434608  NOTICE:  (VDPAU) ConfigVDPAU
21:35:18 T:2881434608   DEBUG: CVDPAU::SetWidthHeight Setting OutWidth: 1280 OutHeight: 720
21:35:18 T:2881434608  NOTICE:  (VDPAU) screenWidth:1280 vidWidth:1280 surfaceWidth:1280
21:35:18 T:2881434608  NOTICE:  (VDPAU) screenHeight:720 vidHeight:720 surfaceHeight:720
21:35:19 T:3011507184   DEBUG: CActiveAESink::OpenSink - trying to open device ALSA:@
21:35:19 T:3011507184    INFO: CAESinkALSA::Initialize - Attempting to open device "@"
21:35:19 T:3011507184    INFO: CAESinkALSA::Initialize - Opened device "sysdefault"
21:35:19 T:3011507184    INFO: CAESinkALSA::InitializeHW - Your hardware does not support AE_FMT_FLOAT, trying other formats
21:35:19 T:3011507184    INFO: CAESinkALSA::InitializeHW - Using data format AE_FMT_S16NE
21:35:19 T:3011507184   DEBUG: CAESinkALSA::InitializeHW - Request: periodSize 2048, bufferSize 8192
21:35:19 T:3011507184   DEBUG: CAESinkALSA::InitializeHW - Got: periodSize 2048, bufferSize 8192
21:35:19 T:3011507184   DEBUG: CAESinkALSA::InitializeHW - Setting timeout to 186 ms
21:35:19 T:3011507184   DEBUG: CAESinkALSA::GetChannelLayout - Input Channel Count: 2 Output Channel Count: 2
21:35:19 T:3011507184   DEBUG: CAESinkALSA::GetChannelLayout - Requested Layout: FL,FR
21:35:19 T:3011507184   DEBUG: CAESinkALSA::GetChannelLayout - Got Layout: FL,FR (ALSA: none)
21:35:19 T:3011507184   DEBUG: CActiveAESink::OpenSink - ALSA Initialized:
21:35:19 T:3011507184   DEBUG:   Output Device : Default (sunxi-CODEC sunxi PCM)
21:35:19 T:3011507184   DEBUG:   Sample Rate   : 44100
21:35:19 T:3011507184   DEBUG:   Sample Format : AE_FMT_S16NE
21:35:19 T:3011507184   DEBUG:   Channel Count : 2
21:35:19 T:3011507184   DEBUG:   Channel Layout: FL,FR
21:35:19 T:3011507184   DEBUG:   Frames        : 2048
21:35:19 T:3011507184   DEBUG:   Frame Samples : 4096
21:35:19 T:3011507184   DEBUG:   Frame Size    : 4
21:35:19 T:3021992944   DEBUG: CActiveAE::ClearDiscardedBuffers - buffer pool deleted
21:35:19 T:2864657392   DEBUG: CDVDPlayer::HandleMessages - player started 1
21:35:19 T:2655032304   DEBUG: Thread Vdpau Output start, auto delete: false
21:35:19 T:2655032304  NOTICE: COutput::OnStartup: Output Thread created
21:35:19 T:2655032304   DEBUG:  (VDPAU) COutput Process m_bStop=0
21:35:19 T:2655032304  NOTICE:  (VDPAU) COutput Init
21:35:19 T:2655032304  NOTICE: VDPAU::COutput::CreateGlxContext - created context

So the crash seems to be coming without many warnings. I can play some formats locally, but have not been able to play any web streams.
If it does not know how to display the stream, I would expect it to tell me instead of crashing with a segfault Undecided

Still no audio. I do not get any warnings / errors if I stop squeezeserver and squeezelite, but still have a red "no sound" logo on the top right and cannot make it go away.

I would also like to have sound via HDMI (soundcard with index 2). How can I tell Kodi? The selection under Settings->Audio is grey and cannot be selected.


RE: hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy) - mosterta - 2017-04-17

regarding the crash: the current (my) implementation expects that the library libvdpau_nv_sunxi.so.1 can be found in /usr/lib/vdpau. There is no fault handling done if it is in a different directory, but crashes with executing address 0x0000000 (which is the case in your backtrace). so check that the library is available in this directory.

regarding sound: have you checked with the program alsamixer, that the output is enabled and the volume is at a reasonable value? From your log file everything seems to be fine.
HDMI can be used in kodi via configuration in the settings menu (system/audio). When ALSA recognizes your HDMI output sink then you can choose the HDMI output sink there. When it is greyed out as in your case, then either Kodi does not recognize any sound device or within ALSA there is only one sink configured. You can see whether HDMI is available in the program alsamixer (you need to change the device via F6 key within the program). If there is no sndhdmi device available then your alsa configuration is not correct. please refer to how to configure ALSA. I do not know right now, since HDMI was recognized immediately on my Mele (A10) / bananapi / orangei.


RE: hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy) - matrzh - 2017-04-17

Thanks for the hint. I would not have been able to make any sense out of the backtrace.
Now I get a
kodi.bin: opengl_nv.c:352: glVDPAUMapSurfacesNV: Assertion `nv' failed.

In the file there is indeed the code "assert(nv)" on that line.
Any idea? In any case, the backtrace is a bit more meaningful, now.

As for the sound: In alsamixer I can choose the other cards, but I get a message "This sound device does not have any controls"
I suspect I am missing a kernel module (I may just have to load it, but need to figure out which).

Getting there, one step at a time Wink

---edit---
Just saw your previous post from the beginning of this thread where you mentioned to disable the vdpau mixing. It is now working !!
Still need to figure out the sound, and I do have a slight stutter every 2-5 seconds. Could be a streaming issue, but the internet is fast, in principle.
I also do see the cursor blinking on the top right. Is this normal or can this be shut off (it is from the login screen before starting kodi)


RE: hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy) - mosterta - 2017-04-18

very well. the stutter is from writting debug information into the log file (~/.kodi/temp/kodi.log). When you recompile without debug or disable debug the stutter should be gone.

the blinking curser must be disabled outside of kodi. I created a udevd rule which switched blinking off when the sysfs is loaded:
bananapi@bananapro:/etc> less udev/rules.d/95-sysfs.rules
#rule to switch off console curser blinking
KERNEL=="fbcon", SUBSYSTEM=="graphics", ATTR{cursor_blink}="0"


RE: hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy) - matrzh - 2017-04-22

blinking has gone and big improvements over the stutter when cutting off all debugging through the GUI.
Sound is being played over the headphone jack without problems. However, I cannot get it through HDMI which is the only thing left before I can actually enjoy kodi Wink
But I did not really progress here over the last days, as everything seems in principle fine:
I can stream sound through the HDMI card with speaker-test or mpeg321

aplay -l displays:

**** List of PLAYBACK Hardware Devices ****
card 0: sunxicodec [sunxi-CODEC], device 0: M1 PCM [sunxi PCM]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: sunxisndspdif [sunxi-sndspdif], device 0: SUNXI-SPDIF sndspdif-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: sunxisndhdmi [sunxi-sndhdmi], device 0: SUNXI-HDMIAUDIO sndhdmi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0


mpeg321 -o alsa -a hw:2,0 somemusic.mp3 works perfectly. However, Kodi only shows as audio output a greyed out, unselectable "sunxi-CODEC" (which goes to the headphone jack)
Any ideas?

As mentioned: the cards 1 and 2 can be selected in alsamixer, but do not have any controls (this is not displayed as error, but more as information and apparently at least the HDMI can stream).
It kind of seems reasonable that HDMI is digital and has no volume control, though.
I was stumbling over this http://alsa.opensrc.org/Softvol, but it seems a bit cumbersome and I cannot imagine that this is necessary to make Kodi work...

Is there any other place where I can set Kodi on passthrough mode, when I cannot select the HDMI?


RE: hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy) - mosterta - 2017-04-23

I have found the issue: The devices are named differently when I look to different platforms A10/A20 (linux-sunxi kernel) and H3 (H3 kernel)
A20 output in kodi.log:
20:39:05.884 T:3031375872 NOTICE: Enumerated ALSA devices:
20:39:05.884 T:3031375872 NOTICE: Device 1
20:39:05.885 T:3031375872 NOTICE: m_deviceName : @
20:39:05.885 T:3031375872 NOTICE: m_displayName : Default (sunxi-CODEC sunxi PCM)
20:39:05.885 T:3031375872 NOTICE: m_displayNameExtra:
20:39:05.885 T:3031375872 NOTICE: m_deviceType : AE_DEVTYPE_PCM
20:39:05.885 T:3031375872 NOTICE: m_channels : FL,FR
20:39:05.885 T:3031375872 NOTICE: m_sampleRates : 8000,11025,16000,22050,32000,44100,48000,96000,192000
20:39:05.885 T:3031375872 NOTICE: m_dataFormats : AE_FMT_S16NE,AE_FMT_S16LE
20:39:05.885 T:3031375872 NOTICE: m_streamTypes : No passthrough capabilities
20:39:05.885 T:3031375872 NOTICE: Device 2
20:39:05.886 T:3031375872 NOTICE: m_deviceName : sysdefault:CARD=sunxicodec
20:39:05.886 T:3031375872 NOTICE: m_displayName : sunxi-CODEC
20:39:05.886 T:3031375872 NOTICE: m_displayNameExtra: sunxi PCM
20:39:05.886 T:3031375872 NOTICE: m_deviceType : AE_DEVTYPE_PCM
20:39:05.886 T:3031375872 NOTICE: m_channels : FL,FR
20:39:05.886 T:3031375872 NOTICE: m_sampleRates : 8000,11025,16000,22050,32000,44100,48000,96000,192000
20:39:05.886 T:3031375872 NOTICE: m_dataFormats : AE_FMT_S16NE,AE_FMT_S16LE
20:39:05.886 T:3031375872 NOTICE: m_streamTypes : No passthrough capabilities
20:39:05.886 T:3031375872 NOTICE: Device 3
20:39:05.886 T:3031375872 NOTICE: m_deviceName : sysdefault:CARD=sunxisndhdmi
20:39:05.886 T:3031375872 NOTICE: m_displayName : sunxi-sndhdmi
20:39:05.887 T:3031375872 NOTICE: m_displayNameExtra: HDMI
20:39:05.887 T:3031375872 NOTICE: m_deviceType : AE_DEVTYPE_HDMI
20:39:05.887 T:3031375872 NOTICE: m_channels : FL,FR
20:39:05.887 T:3031375872 NOTICE: m_sampleRates : 8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,176400,192000
20:39:05.887 T:3031375872 NOTICE: m_dataFormats : AE_FMT_S32NE,AE_FMT_S16NE,AE_FMT_S16LE,AE_FMT_RAW
20:39:05.887 T:3031375872 NOTICE: m_streamTypes : STREAM_TYPE_AC3,STREAM_TYPE_DTSHD,STREAM_TYPE_DTSHD_CORE,STREAM_TYPE_DTS_1024,STREAM_TYPE_DTS_2048,STREAM_TYPE_DTS_512,STREAM_TYPE_EAC3,STREAM_TYPE_TRUEHD

H3 output of kodi.log:
3:51:07.654 T:3031781376 NOTICE: Enumerated ALSA devices:
23:51:07.656 T:3031781376 NOTICE: Device 1
23:51:07.663 T:3031781376 NOTICE: m_deviceName : @
23:51:07.664 T:3031781376 NOTICE: m_displayName : Default (audiocodec Analog)
23:51:07.665 T:3031781376 NOTICE: m_displayNameExtra:
23:51:07.667 T:3031781376 NOTICE: m_deviceType : AE_DEVTYPE_PCM
23:51:07.667 T:3031781376 NOTICE: m_channels : FL,FR
23:51:07.668 T:3031781376 NOTICE: m_sampleRates : 8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,176400,192000
23:51:07.669 T:3031781376 NOTICE: m_dataFormats : AE_FMT_S24NE4,AE_FMT_S32NE,AE_FMT_S16NE,AE_FMT_S16LE
23:51:07.670 T:3031781376 NOTICE: m_streamTypes : No passthrough capabilities


there is a sunxi dedicated whitelisting in the code, which searches for substring "sunxi" in the alsa device name. But the device names in H3 do not contain the substring "sunxi", while the A10/A20 device names do.
Which kernel are you using and which processor? (I just saw that your device have the sunxi substring - strange since the devices should be found. I will have a look at the code if the whitelisting is really required or can be done in a better way.
The other option is to install pulseaudio and try that. That worked for me as well, but since I do not have multiple sound generating applications I removed it from my system.


RE: hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy) - matrzh - 2017-04-23

Quote:there is a sunxi dedicated whitelisting in the code, which searches for substring "sunxi" in the alsa device name.
I am wondering, now...is there something missing in this code? I cannot find any "sunxi" whitelisting. I searched for the string in all *.h and *.cpp files.

I used the xbmc version from https://github.com/tnmeyer/xbmc branch Jarvis_vdpau_gles

With the info below, I was digging a little into the code and got to
xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp
Code:
.....
else if (baseName == "front")
      {
for (void** hint = hints; *hint != NULL; ++hint)
  {
    char *io = snd_device_name_get_hint(*hint, "IOID");
    char *name = snd_device_name_get_hint(*hint, "NAME");
    char *desc = snd_device_name_get_hint(*hint, "DESC");
    if ((!io || strcmp(io, "Output") == 0) && name
        && strcmp(name, "null") != 0)
    {
      std::string baseName = std::string(name);
      baseName = baseName.substr(0, baseName.find(':'));

      if (strcmp(name, "default") == 0)
      {
        /* added already, but lets get the description if we have one */
        if (desc)
          defaultDescription = desc;
      }
      else if (baseName == "front")
      {
        /* Enumerate using the surroundXX mangling */
        /* do not enumerate basic "front", it is already handled
         * by the default "@" entry added in the very beginning */
        if (strcmp(name, "front") != 0)
          EnumerateDevice(list, std::string("@") + (name+5), desc ? desc : name, config);
      }

      /* Do not enumerate "default", it is already enumerated above. */

      /* Do not enumerate the sysdefault or surroundXX devices, those are
       * always accompanied with a "front" device and it is handled above
       * as "@". The below devices will be automatically used if available
       * for a "@" device. */

      /* Ubuntu has patched their alsa-lib so that "defaults.namehint.extended"
       * defaults to "on" instead of upstream "off", causing lots of unwanted
       * extra devices (many of which are not actually routed properly) to be
       * found by the enumeration process. Skip them as well ("hw", "dmix",
       * "plughw", "dsnoop"). */

      else if (baseName != "default"
            && baseName != "sysdefault"
            && baseName != "surround40"
            && baseName != "surround41"
            && baseName != "surround50"
            && baseName != "surround51"
            && baseName != "surround71"
            && baseName != "hw"
            && baseName != "dmix"
            && baseName != "plughw"
            && baseName != "dsnoop")
      {
        EnumerateDevice(list, name, desc ? desc : name, config);
      }
    }
...
But if I do aplay -L, I get:
Code:
null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=sunxicodec
    sunxi-CODEC, sunxi PCM
    Default Audio Device
sysdefault:CARD=sunxicodec
    sunxi-CODEC, sunxi PCM
    Default Audio Device
dmix:CARD=sunxicodec,DEV=0
    sunxi-CODEC, sunxi PCM
    Direct sample mixing device
dsnoop:CARD=sunxicodec,DEV=0
    sunxi-CODEC, sunxi PCM
    Direct sample snooping device
hw:CARD=sunxicodec,DEV=0
    sunxi-CODEC, sunxi PCM
    Direct hardware device without any conversions
plughw:CARD=sunxicodec,DEV=0
    sunxi-CODEC, sunxi PCM
    Hardware device with all software conversions
default:CARD=sunxisndspdif
    sunxi-sndspdif,
    Default Audio Device
sysdefault:CARD=sunxisndspdif
    sunxi-sndspdif,
    Default Audio Device
dmix:CARD=sunxisndspdif,DEV=0
    sunxi-sndspdif,
    Direct sample mixing device
dsnoop:CARD=sunxisndspdif,DEV=0
    sunxi-sndspdif,
    Direct sample snooping device
hw:CARD=sunxisndspdif,DEV=0
    sunxi-sndspdif,
    Direct hardware device without any conversions
plughw:CARD=sunxisndspdif,DEV=0
    sunxi-sndspdif,
    Hardware device with all software conversions
default:CARD=sunxisndhdmi
    sunxi-sndhdmi,
    Default Audio Device
sysdefault:CARD=sunxisndhdmi
    sunxi-sndhdmi,
    Default Audio Device
dmix:CARD=sunxisndhdmi,DEV=0
    sunxi-sndhdmi,
    Direct sample mixing device
dsnoop:CARD=sunxisndhdmi,DEV=0
    sunxi-sndhdmi,
    Direct sample snooping device
hw:CARD=sunxisndhdmi,DEV=0
    sunxi-sndhdmi,
    Direct hardware device without any conversions
plughw:CARD=sunxisndhdmi,DEV=0
    sunxi-sndhdmi,
    Hardware device with all software conversions

I do not really know the Alsa API and what the method 'snd_device_name_get_hint' does compared to aplay -L, but my guess is that this excludes all cards from the listing...
Default is somewhere defined before, I do not quite see where, but only the description is added (and I see the sunxi-CODEC sunxi PCM in the GUI).
Then, sunxisndhdmi and sunxisndspdif all have the excluded names as "base name".
Should I allow the "default"?


RE: hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy) - mosterta - 2017-04-23

it seems that the tnmeyer repository misses some code (for whatever reason), where in my repository this code is included.
This is the missing code (see else branch)

else if (baseName != "default"
&& baseName != "sysdefault"
&& baseName != "surround40"
&& baseName != "surround41"
&& baseName != "surround50"
&& baseName != "surround51"
&& baseName != "surround71"
&& baseName != "hw"
&& baseName != "dmix"
&& baseName != "plughw"
&& baseName != "dsnoop")
{
EnumerateDevice(list, name, desc ? desc : name, config);
}
else
{
/* sunxi whilelist */
std:Confusedtring strDevice = std:Confusedtring(name);
size_t found = strDevice.find("sunxi");

if(found != std:Confusedtring::npos)
EnumerateDevice(list, name, desc ? desc : name, config);
}

This white listing does work for your kernel, you will see a lot of devices in Kodi (this is an Ubuntu bug, whereas I use openSuse which does not have the issue). A fix including Ubuntu is to restrict the white listing for the device "sysdefault".


RE: hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy) - matrzh - 2017-04-23

It's working! I added the code and filtered for baseName=="sysdefault" and have 4 devices showing (default and the first being identical). You are my hero Wink
Now I still need to compile without debugging enabled and hopefully I can get rid of the out of sync problem between audio and video.
Thanks again


RE: hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy) - mosterta - 2017-04-24

you're welcome.
Now that you have been able to compile that version and enjoying the videos, you can do your next step and compile kodi version 17.1 with improved video output. The GLES version is based on Kodi 16.x and has performance issues with full HD video resolution. In the kodi version 17.x I have replaced the GLES output by using a more hardware centric approach (i.e. I used the hardware layer mechanism instead of build the layers via OpenGL). This version displays videos much smoother, especially in Full HD resolution.
I don't know whether it is in the tnmeyers respository, but it is in mine on the branch "master_allwinner_layered_vdpau". So if you want to compile a bit more and even get a better experience on watching videos, then try this one.


RE: hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy) - matrzh - 2017-04-27

Hi. I succeeded to compile your version, but now I get again Segmentation faults when trying to play the videos.
Actually, before I tried to turn off debugging in tnmeyer's version (which remained in there in a really stubborn way, trying it with advancedsettings.xml etc., but this also led to a crash.
It could be that Libudev was additionally configured after I cleared the cache?
crashlog is will be added below.
I cannot see any unresolved lib-calls, but I am a little guessing around, here...

Your compile went through very smoothly. However, I tried a previous version of yours before I checked out the master_allwinner_layered_vdpau that had an old ffmpeg. could it be corrupted?

Your compile went through relatively straight forward Smile
In xbmc/windowing/egl/EGLNativeTypeA10.cpp I had to comment out #include <os_adapter.h> and get drv_display_sun4i.h from a cedarx-lib that I found somewhere (may I could also comment it out, did not try).
xbmc/cores/VideoPlayer/DVDCodecs/Video/Makefile did not have HwBufferAllwinner.cpp in the source variable.
and my sunxi_disp_ioctl.h was in the video subdirectory whereas you include it from the linux subdirectory in HwLayerAllwinnerA10.cpp
Probably a kernel difference? (I am on 3.4.111)


RE: hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy) - Rechi - 2017-04-27

(2017-04-27, 22:43)matrzh Wrote: crashlog is here: https://pastebin.com/ycKaj10i

You have installed Banned add-ons (wiki), so you won't get any support here unless you want to remove them.