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
gstreamer-imx / gleffects [opengl] interaction #193
Comments
Again using glshader... This pipeline: gives very poor results... Seems like glshader is copying from the physical memory to CPU then back to physmem... Taking a lot of time, indeed. rawling through the bad plugin sourcecode, I found this: raw_data_upload: I know this is not gstreamer-imx related, now... Just if you could give me some clue about what to do. Maybe upgrading plugins-bad woud do the trick ? All my gstreamer yocto packages are tied to 1.4.5 version, so that would be a lot of work to make it work with another version. |
Have you solved that issue yet? |
Hello, no I did not. |
Could you please send a link about that NEON based memcpy, I cant found information more informative than https://stackoverflow.com/questions/11161237/fast-arm-neon-memcpy |
Hello, I am not not sure if this is relevant at all but it might help. On my Raspberry Pi (I don't have an NXP board right now) I usually put the 'glupload' element before the 'gleffects' element in my pipeline and it works. Example pipeline: |
Sorry, but that is not connected. Main reason basically were DMA based "unique" memory allocator in gstreamer-imx. Gstreamer-core supports 4 types of memory allocation, and when you try to connect glupload and imxv4l2videosrc, it checks common allocator type. Because of unique allocation type, glupload does not support it, and gstreamer use cpu based memory copy. For that reason as result I added own plugin based on eglvivsink, and used as shader configurator. Also waf was configured wrong in standard yocto layer. I've to corrected that. |
@BMValeev have you considered contributing that code to gstreamer-imx to make it compatible with glupload by default? |
Is it possible to use gstreamer-imx plugins along with opengl plugins from the gst-plugins-bad (1.4.5) to apply opengl effects and/or opengl shaders ?
Using the following pipeline:
gst-launch-1.0 imxv4l2videosrc imx-capture-mode=10 ! imxg2dvideotransform ! video/x-raw, width=800, height=600, format=RGBA ! gleffects effect=0 ! imxeglvivsink
I get very low framerate...
While using this pipeline:
gst-launch-1.0 imxv4l2videosrc imx-capture-mode=10 ! imxg2dvideotransform ! video/x-raw, width=800, height=600, format=RGBA ! gleffects effect=0 ! imxipuvideotransform ! video/x-raw, format=I420 ! imxeglvivsink
I get the following error:
ERROR: from element /GstPipeline:pipeline0/GstGLEffects:gleffects0: Failed to download video frame
Also, using this pipeline:
gst-launch-1.0 imxv4l2videosrc imx-capture-mode=10 ! imxg2dvideotransform ! video/x-raw, width=800, height=600, format=RGBA ! imxeglvivsink
I get high framerate, with low latency, which is what I want...
The thing is, I would like to apply image processing and/or effects to my video before output... And since I'm already using DMA memory through gstreamer-imx plugins, the idea was to use shaders for image processing...
Is there something I'm missing, here ? How gstreamer-imx is supposed to be interfaced with gstreamer opengl plugins ? Should I switch to more recent version of the opengl plugins ? (I'm using 1.4.5 on my system, I know they moved the opengl plugins from bad to base in the newer releases...)
Thanks for your help
The text was updated successfully, but these errors were encountered: