I am trying to build FFMPEG v0.6.6 on an IMX53 QS board. I need this version of FFMPEG specifically, so that is why I am trying to build it from scratch. After some tests it seems that FFMPEG is not using the NEON SIMD. I would like it to do so.
The problem is, I think I am configuring it properly. My “configure” command is this:
: ./configure --enable-shared --enable-neon --enable-libx264 --enable-gpl --extra-cflags=’-mfpu=neon -mcpu=cortex-a8 -mfloat-abi=softfp’
The configure script’s summary goes on to say “NEON enabled: yes”. But I don’t think it is really engaged. Why do I think this? My kernel has MXC Debugging turned on. That means I get nice messages about the VPU usage when it is used. When I run a demo video, I see many MXC debugging prints. When I run my software which uses FFMPEG, I see no such messages. Also, performance is low and CPU usage is high.
Any ideas on how to build FFMPEG so that it REALLY engages the NEON SIMD (or VPU?)
I installed the Freescale's codecs following i.MX Linux Mulimedia Framework User's Guide.
While trying to use a h264 codec we get the following error:
0:11.053 PExternalT...0x2f2be420 GStreamer mfw_gst_h264_getbuffer: >>DECODER: Error -4 in allocating the Framebuffer
Could anybody point to a document that may help to interpret codec errors? What the "Error -4" means?
I wonder if you are really using the element you are building.
can you post the pipeline you are running?
are you using playbin2?
Also, I am not sure how much benefit does the '-mfpu=neon' is archive for that particular gst element. As DaianeAngolini mentioned, ffmpeg plugins do not accelerate the decoding/encoding using the VPU, so the only optimization you can get is using the NEON configure parameter, as you have done.
Thank you for your help. Unfortunately ffmpeg is not capable to use the VPU.
I am looking for g-stream friendly solution for my application. That may use Freescale codecs.
FFMPEG does not have VPU support.
As I know, any decoder from ffmpeg is sotfware based.
For the neon support, I did not understand how you concluded you´re not using it on ffmpeg, could you, please elaborate?
I mistakenly thought that Neon is a VPU name. I need to use VPU not Neon. Unfortunately ffmpeg doesn't support VPU. I actually didn't check if Neon used. To confirm VPU usage I added to each VPU related kernel API printk.