Closed Meonardo closed 9 months ago
I have the same issue by the way. Even on an RK3588, decoding anything higher than 1080p 60FPS, causes the CPU to go extremely high.
for glimagesink, it will try to import buffer to texture, which is normally a neon version of memcpy(inside of the gl texture2d impl).
check the gl related hack patches under: https://github.com/JeffyCN/rockchip_mirrors/tree/buildroot/package/gstreamer1/gst1-plugins-base
for dmabuf direct importing
i haven't use android with this before, you can try to check the cpu usage of threads, the decoder and renderer should not cause much with these patches.
Env:
GStreamer pipelines:
without renderer, works great low CPU usage, very fast at decoding.
with renderer(
glimagesink
), the CPU up to105%
I am using
SurfaceView
as renderer on Android, in native I got theANativeWindow
fromANativeWindow_fromSurface(env, surface)
, then I usegst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(video_sink), (guintptr)window)
pass to GStreamer. Did I miss something? Do I need apply some patches in GStreamer? @JeffyCN sorry to bother you, could you give me some advice? thanks.