New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
imxvpudec_h264 incompatible with glupload? #316
Comments
Strangely, fps DOES manage to raise up to target 25fps, but only after 10 or so seconds!? FPS is not stable though, and CPU usages is ~70% instead of ~30% using Any ideas why FPS keeps 6-10 fps for some seconds, and then raises? All I see is:
|
@dv1 Do you believe it would be "doable" to make |
I've discovered After enabling |
Settings CPU usages is still near 70%, but maybe that's unavoidable overhead for using qmlglsink? The only issue now is that there's frame stuttering every ~2s. Currently pipeline looks line this:
|
I had to increace So to wrap:
My current pipeline is:
|
Sorry for the silence. I am unfortunately still kept busy by other topics. |
Yeah, I've noticed that even without video stream playing, my QML application consumes ~70% CPU JUST BY MOVING MOUSE AROUND :| . It's in EGLFS mode. Maybe I have to use Vivante EGL platform plugin from Qt for better performance, I believe some default EGL is used. |
Reopening since I will investigate further if there are ways to improve performance. @Talkless What do you use as build environment? Yocto? If so, what version? |
@dv1 I was provided toolchain called |
@Talkless I pushed a commit that changes the way G2D is used. On the imx8m plus, serious reduction in Also, I just ran a test on an imx8m mini EVK here, and CPU usage is much lower than 70%. However, this is Yocto Kirkstone, with upstream GStreamer (that is, not the NXP fork), and the latest versions of gstreamer-imx and libimxvpuapi. In the logs (by setting |
I've tried to build
|
@Talkless In |
Also fixed this error in:
But this fix makes it even worse error after "fixing"
|
Attach |
Now that you have mentioned
videodev2.h: https://paste.debian.net/1284436/ |
Hm then it is a toolchain bug. Patch that, then retry. I will switch the includes to |
@dv1 videodev2.h is already patched, or do you mean I need to patch something more? |
@Talkless Wait - when you had the build errors, did you try this with the patched or unpatched |
It was already patched. I needed this patch for some other package quite some time ago. |
This patch seems wrong. |
I've reverted
I believe Master shows this:
If I patch
|
I get same performance with 2.1.0 and master. I believe CPU usage is just some Qt overhead, as I discovered that simply moving mouse around in application without video playback I get ~70% of CPU usage... And extra element Maybe I could use one of the gstreamer profiling/tracing utilities to measure actual cost of elements? |
Thread with
So again, I guess we can close this bug... Bigger issue is how to reduce decoding latency, because I get total ~400ms delay from real world: https://community.nxp.com/t5/i-MX-Processors/How-to-achieve-lowest-latency-while-decoding-RTSP-h264-stream/m-p/1677683#M208271 |
I have trouble keeping track of this because your sysroot seems to be really weird. So, I can only give vague recommendations. Your That said, it does not seem to me that this is really a GStreamer issue anymore - not if a test pipeline with |
Yeah, I guess, though even 21% is higher than what I saw I think (I can't check right now). Agreed, let's close this. The issue does not seem gstreamer-imx specific, but instead originate somewhere else. |
Toolchain is provided by some Chinese panel pc manufacturers :) . Yes I'd say close this, brecause:
|
@dv1 should I create issue about decoding latency? Or it's just what ARM cpus can be expected to provide? GStreamer tracing shows:
That's 160-250ms latency..? On desktop with vah264dec we can get TOTAL of ~220-250ms latency, with this NXP IMX8MM machine 400ms or 300ms with sync=false but with jittering... |
@Talkless Open a new issue, and provide a |
Thanks for all your time @dv1 , it's really great to have FOSS option, to be able to build from source for latest GStreamer. System image/toolkit provided by manufacturers only have GStreamer & vpudec 1.18... |
Hi,
I'm trying to port our Qt application that display RTSP stream using qmlglsink to some imx8mm device.
So far I've managed to cross-compile GStreamer 1.22.3 with gstreamer-imx 2.0.0, libimxdmabuffer 1.0.1, libimxvpuapi2/2.1.2" (can't use more recent libimx* due to Freescale/libimxdmabuffer#7), but either I get caps not accepted:
for pipeline:
Or I do get video displayed, but just barely 4fps if I make imx + glupload link using
imxg2dvideotransform
like this:Does this experiment proves that imxvpudec_h264 incompatible with glpupload? Have anyone though how it could be made possible to use
glupload
with some minimal overhead?The text was updated successfully, but these errors were encountered: