-
Notifications
You must be signed in to change notification settings - Fork 127
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
How to enable i.MX vpuenc_h264 ? #296
Comments
This currently is not possible, since the i.MX8m plus has a different encoder (VC8000E) that is not supported by libimxvpuapi. I'm working on this. |
Dear @dv1,
Could you share any progress on this, please ? |
Progress is slow, because the VC8000E encoder is not trivial to use, and because many other tasks keep me busy. I am trying to get it in for Yocto Kirkstone, but I cannot guarantee it. |
Hi @dv1, since I am in the same situation as @l4es (developing with buildroot), I would be happy to get an update. Is the encoding already implemented for GStreamer in Yocto. I am using the linux kernel 5.10.9, do you see any problems if I integrate the Yocto package in my Buildroot pipeline, or is the kernel to outdated? |
Hi @d-lareg, Clarification of VPU plugins : More detail here : https://community.nxp.com/t5/i-MX-Processors/iMX8MPlus-How-to-mix-two-video-sources-into-one-with-Gstreamer/m-p/1532117 Personally, kernel 5.10.9 seems a little bit outdated even-though it has been stayed quite long time with Buildroot. |
@d-lareg @l4es I am currently facing the problem that parts of the encoder actually collide with libimvxpuapi's current design. I am trying to implement basic encoding support, but it would only expose a subset of the VC8000E's full functionality. I estimate this will take me 1-2 months to finish at this point. |
Hi @dv1, Great news! i am eager to test it, if possible! Could you advice which commit that I could use for the H.264 encoding, please? Or should I wait for some time for having H265 encoding available as well ? |
Hi @dv1, Thank you |
Hi @dv1, Just FYI from Gary Bisson of Boundary Devices :
But I think we still need your implementation in older BSPs. |
The last time I tried the daemon, it was prone to multiple crashes, and did need the NXP fork of GStreamer, because some patches on top of v4l2enc were needed. Perhaps this improved, I'll check, but yeah, this works with older BSPs, and also works with upstream GStreamer. |
Dear @dv1, |
Hi @dv1, |
@l4es Sorry for the late reply. A simple example would be:
Another one would be:
|
Hi @dv1 is OpenMax required to use the encoder? I tested the following pipe.... My buildroot configuration is: The log for GST_DEBUG=4 is attached. |
@d-lareg This is an imx8m mini? Can you re-run this with |
@dv1 no its a self developed board equipped with an imx8m+ soc. |
@d-lareg There are three variants of imx8m: imx8m quad, imx8m mini, imx8m plus. Which one is yours? |
imx8m+ = imx8m plus |
Oh, right, I missed the "+" :) The logs indicate a misconfigured libimxvpuapi then:
The imx8m plus does not have an H1 encoder, it has the VC8000E encoder. Use the latest git master version of libimxvpuapi, and when using its |
Argh, my bad! You are right! But now I am facing a build error when building the image with buildroot. In the mk file of imx-vpu-hantro-vc the header will copied to the main include path:
But libimxvpuapi is searching for a subfolder called hantro_VC8000E_enc that does not exists.
|
@d-lareg Please issue a ticket for fixing that mk file. Copying the headers into |
@d-lareg Also, can you try to patch that mk file yourself? Just change:
to:
If everything works with this patch, then I can make a 2.3.0 release, and buildroot can be notified about this problem in that mk file. |
@d-lareg EWL errors can happen when certain device nodes are not available. Check for the presence of If one of these are missing, then this might be why you get that error. Another idea is to re-run your program with strace, like: |
@d-lareg Did you have any success in fixing this? Was it a problem with the kernel config or the devicetree? |
Hello! I'm also struggling with this issue while building The problem arises due to the use of kernel version According to the
Versions of libraries:
Any insights or suggestions on resolving this issue would be greatly appreciated! Please also see the full |
Hello again! As it turned out, the issue described above appeared due to inconsistent builds of So, simple buildroot rebuild solved the issue. |
Hi @dv1! I'm having a very similar issue with the imx8mm. Using Yocto Kirkstone 5.15.60. My message is slightly different from the original post:
where the error code is -5 instead of -3. The device mxc_hantro_h1 and mxc_hantro is present and cma is enabled Installed dependency versions:
Does anybody know what the difference in error code could mean and any help in general? The sample gst test won't even work. |
Dear All,
I'm integrating gstreamer-imx for the iMX8M Plus in Buildroot borrowing package implemented here : https://github.com/boundarydevices/buildroot-external-boundary/tree/master/package/gst1-imx-v2
When verifying the available hardware encoder/decoder plugins, I cannot find vpuenc_h264 :
root@imx-camera:~# dmesg | grep hantro
[ 2.063741] hantrodec 0 : module inserted. Major = 236
[ 2.064220] hantrodec 1 : module inserted. Major = 236
[ 2.065434] hantroenc: HW at base <0000000038320000> with ID <0x80006200>
root@imx-camera:~# gst-inspect-1.0 | grep imx
libav: avdec_simbiosis_imx: libav Simbiosis Interactive IMX Video decoder
imxvpu: imxvpudec_sspark: i.MX VPU Sorenson Spark video decoder
imxvpu: imxvpudec_divx5: i.MX VPU DivX 5 & 6 video decoder
imxvpu: imxvpudec_divx4: i.MX VPU DivX 4 video decoder
imxvpu: imxvpudec_divx3: i.MX VPU DivX 3 video decoder
imxvpu: imxvpudec_cavs: i.MX VPU AVS (Audio and Video Coding Standard) video decoder
imxvpu: imxvpudec_vp6: i.MX VPU VP6 video decoder
imxvpu: imxvpudec_vc1: i.MX VPU VC-1 advanced profile video decoder
imxvpu: imxvpudec_wmv3: i.MX VPU WMV3 / Window Media Video 9 / VC-1 simple profile video decoder
imxvpu: imxvpudec_h263: i.MX VPU h.263 video decoder
imxvpu: imxvpudec_mpeg4: i.MX VPU MPEG-4 video decoder
imxvpu: imxvpudec_mpeg2: i.MX VPU MPEG-1 & 2 video decoder
imxvpu: imxvpudec_webp: i.MX VPU WebP video decoder
imxvpu: imxvpudec_jpeg: i.MX VPU JPEG video decoder
imxvpu: imxvpudec_vp9: i.MX VPU VP9 video decoder
imxvpu: imxvpudec_vp8: i.MX VPU VP8 video decoder
imxvpu: imxvpudec_h265: i.MX VPU h.265 / HEVC video decoder
imxvpu: imxvpudec_h264: i.MX VPU h.264 / AVC video decoder
imxv4l2video: imxv4l2videosink: NXP i.MX V4L2 video sink
imxv4l2video: imxv4l2videosrc: NXP i.MX V4L2 video source
imxaudio: imxuniaudiodec: NXP i.MX uniaudio decoder
imx2d: imxpxpvideotransform: i.MX PxP video transform
imx2d: imxpxpvideosink: i.MX PxP video sink
imx2d: imxipuvideotransform: i.MX IPU video transform
imx2d: imxg2dvideotransform: i.MX G2D video transform
imx2d: imxg2dvideosink: i.MX G2D video sink
imx2d: imxg2dcompositor: i.MX G2D video transform
Could someone help to point out what possible missing dependency or configuration that prevents the vpuenc_h264, please ?
Thank very much in advance and best regards,
Khang
The text was updated successfully, but these errors were encountered: