Still struggling here. Trying things on and off.
I now rebuilt all the tools from mosterta's github (libvdpau-sunxi, libcedarjpeg und also libyuv. I had to tweek something with libyuv during the compile process so that it links as a shared library, Do not quite remember how I did it.
I still get segmentation faults when I try to play a video.
something in the crashlog that may be fishy:
Code:
Thread 38 (Thread 0xb4c9c000 (LWP 7249)):
#0 0xb5df5f42 in write () from /lib/arm-linux-gnueabihf/libc.so.6
#1 0xb5dbac84 in _IO_file_write () from /lib/arm-linux-gnueabihf/libc.so.6
#2 0xb5dba4b2 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
#3 0xb5dbb0d0 in _IO_file_xsputn () from /lib/arm-linux-gnueabihf/libc.so.6
#4 0xb5db3ec6 in fwrite () from /lib/arm-linux-gnueabihf/libc.so.6
#5 0xb4401ad8 in writeBuffers (dataY=0x9ae2d000, szDataY=983040, dataU=0x9adb5000, szDataU=491520, h=720, w=1280) at cedar_display.c:503
#6 0xb44014f2 in glVDPAUGetVideoFrameConfig (surface=21, config=0xbe8de42c) at cedar_display.c:290
#7 0x0141e574 in CHwLayerAdaptorVdpauAllwinner::getFrameConfig (this=0x500839c, config=...) at HwLayerAdaptorVdpau.cpp:66
#8 0x0141de92 in CHwLayerAllwinnerA10::displayFrame (this=0x4523d40, frame=..., fence=@0x9f79b808: -1, top_field=0) at HwLayerAllwinnerA
10.cpp:363
#9 0x0141a7d2 in CHwLayerManagerAllwinnerDisp::displayFrame (this=0x4544b48, type=CHwLayer<CHwLayerAdaptorVdpauAllwinner, CHwLayerConfig
Allwinner>::Video, frame=..., fence=@0x9f79b808: -1, top_field=0) at HwLayerManagerAllwinnerDisp.cpp:313
#10 0x014199ea in CHwLayerManagerAllwinner::displayFrame (this=0x4310828, type=CHwLayer<CHwLayerAdaptorVdpauAllwinner, CHwLayerConfigAllw
inner>::Video, frame=..., fence=@0x9f79b808: -1, top_field=0) at HwLayerManagerAllwinner.cpp:119
#11 0x020ea174 in CRendererVDPAUAllwinner::RenderUpdateVideoHook (this=0x5007668, clear=false, flags=0, alpha=255) at RendererVDPAUAllwin
ner.cpp:343
#12 0x020dc3f6 in CLinuxRendererGLES::RenderUpdateVideo (this=0x5007668, clear=false, flags=0, alpha=255) at LinuxRendererGLES.cpp:523
#13 0x020dc16e in CLinuxRendererGLES::RenderUpdate (this=0x5007668, clear=false, flags=0, alpha=255) at LinuxRendererGLES.cpp:445
#14 0x020d6392 in CRenderManager::PresentSingle (this=0x52601f8, clear=false, flags=0, alpha=255) at RenderManager.cpp:1036
#15 0x020d5e68 in CRenderManager::Render (this=0x52601f8, clear=false, flags=0, alpha=255, gui=false) at RenderManager.cpp:931
#16 0x0209b078 in CVideoPlayer::Render (this=0x525f6f0, clear=false, alpha=255, gui=false) at VideoPlayer.cpp:5112
I also get a "wrong handle 0" message in the console.
Furthermore, my syslog is spammed with "[DISP] not supported image0 pixel sequence:128 in img_sw_para_to_reg" messages after some messages "[DISP] not supported scaler input pixel format:0 in Scaler_sw_para_to_reg1"
I was fiddling around with the kernel config, but think I changed everything back and now have the following relevant bits in it:
Code:
# CONFIG_VIDEO_SH_MOBILE_CSI2 is not set
# CONFIG_VIDEO_SH_MOBILE_CEU is not set
# CONFIG_VIDEO_MEM2MEM_TESTDEV is not set
CONFIG_VIDEO_SUNXI_CEDAR=m
CONFIG_VIDEO_DECODER_SUNXI=m
CONFIG_VIDEO_AVS_COUNTER=m
CONFIG_VIDEO_CSI_SUN4I=y
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
# CONFIG_EXYNOS_VIDEO is not set
...
CONFIG_FB=y
# CONFIG_FB_DDC is not set
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
CONFIG_FB_SYS_FILLRECT=m
CONFIG_FB_SYS_COPYAREA=m
CONFIG_FB_SYS_IMAGEBLIT=m
# CONFIG_FB_FOREIGN_ENDIAN is not set
# CONFIG_FB_SYS_FOPS is not set
# CONFIG_FB_WMT_GE_ROPS is not set
CONFIG_FB_DEFERRED_IO=y
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set
CONFIG_FB_SUNXI=y
CONFIG_FB_SUNXI_RESERVED_MEM=y
CONFIG_FB_SUNXI_UMP=y
CONFIG_FB_SUNXI_LCD=y
CONFIG_FB_SUNXI_HDMI=y
# CONFIG_FB_ARMCLCD is not set
# CONFIG_FB_UVESA is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_TMIO is not set
# CONFIG_FB_SMSCUFX is not set
# CONFIG_FB_UDL is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_BROADSHEET is not set
CONFIG_FB_SM7XX=m
...
CONFIG_UMP=m
CONFIG_UMP_DEBUG=y
CONFIG_FB_SUNXI_UMP=y
...
CONFIG_DRM_MALI=m
CONFIG_MALI=m
CONFIG_MALI400=m
CONFIG_MALI400_DEBUG=y
CONFIG_MALI400_GPU_UTILIZATION=y
...
mali, ump, disp_ump, hdmi and sunxi_cedar_mod modules load without any errors
Only ump says the following:
Code:
May 13 11:25:21 cubie2 kernel: [ 250.943463] UMP<2>: Inserting UMP device driver. Compiled: Apr 9 2017, time: 13:33:32
May 13 11:25:21 cubie2 kernel: [ 250.961157] UMP<2>: dma_set_mask_and_coherent calling
May 13 11:25:21 cubie2 kernel: [ 250.970374] UMP<2>: dma_set_mask_and_coherent result=-5
May 13 11:25:21 cubie2 kernel: [ 250.981746] UMP<2>: dma_set_mask_and_coherent failed
May 13 11:25:21 cubie2 kernel: [ 250.990570] UMP<2>: Using CMA memory backend, allocation limit: 134217728
May 13 11:25:21 cubie2 kernel: [ 251.004592] UMP: UMP device driver loaded
Is there any issue with the dma_set_mask_and_coherent?
Any suggestions?
One last thing where I am not sure if it has any influence. My udelay seems to be about 20% off (not 100% sure, but my suspicion is that this is because of the two cores running at different speeds). I may be wrong, but just discovered this recently when exploring some software IR protocols (I always had to fiddle a lot with lirc and now think it was because of that). This could also be the issue that the sound kept advancing over the video with at the previous version.