2020–09–17:
Video acceleration experiments with PinePhone
Recently, gstreamer gained support for utilizing v4l2-requests API, for h264
acceleration, so I compiled it for Arch Linux, patched the kernel with the help
of ndufresne from #cedrus to fix kernel panics, figured out how to make
gstreamer play to kms, and made a bunch of experiments with these results:
https://www.youtube.com/watch?v=dHOgVmxH_dA
https://www.youtube.com/watch?v=6P76lQX70iI
https://www.youtube.com/watch?v=yyRm8kccyG4
External display video playback, even to a fairly large display works very
nicely. Quite a feat for an entry-level phone. :)
CPU utilization during playback is miniscule. Comparing power consumption,
between idle and video playback, the video decoding takes just additional 0.2W
of power, compared to CPU based decoding which could take up to 2.4W.
There's an issue with internal display being locked to 36 FPS, which makes
playback of 30FPS video a bit choppy.
I also hacked my kernel to workaround gstreamer kmssink bugs, to test
playback to an external 1440p@60fps monitor. 1440p@30 video decoding works fine.
1440p@60 video is too much, and drops frames. 1080p@60 video decodes and scales
to 1440p fine, too.
Another issue is a heavy power consumption (4W) from the dock when HDMI
output is enabled. Also dock's display output doesn't seem to work when
powering the dock from the USB-C power supply.
Overall, it's nice. :)