Quote:I bet DR = Direct Rendering = Surface
Googling it indeed reveals that DR uses Surface rendering.
I did another test with non-Surface MediaCodec in latest Kodi L18 nightly. Performance seems to have improved and the cutted-sample.mkv indeed runs smoothly on my Sony now too. But non-Surface just uses too much resources on the weak MediaTek SoC. So higher resolution video isn't smooth anymore. Also interlaced video somehow suffers from non-Surface.
So I did another comparison of the resource usage with cutted-sample.mkv (720p25 H.264).
Kodi 18L
MediaCodec -
smooth
Code:
org.xbmc.kodi ~18%
/system/bin/surfaceflinger ~6%
MediaCodec-Surface -
jerky
Code:
org.xbmc.kodi ~12%
/system/bin/surfaceflinger ~6%
VLC
MediaCodec -
jerky
Code:
org.videolan.vlc ~8%
/system/bin/surfaceflinger ~2%
MediaCodec-DR -
jerky
Code:
org.videolan.vlc ~7%
/system/bin/surfaceflinger ~2%
What additional things does Kodi have to do in non-Surface mode? Copy back to main memory? Deinterlacing? Scaling? Is this done in SW, GPU or via some HW-API?
With VLC, Surface vs. non-Surface does not seem to be too different from a resource point of view. IOMX decoders use slightly less resources. But all modes perform similarely on the cutted-sample.mkv, which is always jerky though.