Hi Stephen,
after looking deeper into Android Freescale BSP I think my question is still partly unresponded, and I'm about to explain why.
The part I'm referring to specifically is:
Stephen Cox:
- Restricted Use/distribution codecs such as MPEGLA (MP3, H.264...), AAC... these are also considered proprietary codecs BUT the licensors allow Freescale to distribute them in our standard BSP (or extended package) for internal use and demonstration purposes -- any commercial distribution requires the customer to engage directly with the Licensor to garner a proper license. These terms are included in the appendix of the license you clicked through to take delivery of the Android BSP.
While for audio decoders, encoders and parsers I can actually find the software pieces that do the decoding inside the Android Freescale BSP and run on the CPU, I can't find the same for video decoders and encoders, as I just find software that seems to be communicating with a hardware device (not the CPU) which actually performs decoding and encoding.
Let me detail that with two examples.
MP3 decoding
I can find the OMX component that is registered to OMX core in the file external/fsl_imx_omx/OpenMAXIL/release/registry/component_register.
The OMX component OMX.Freescale.std.audio_decoder.mp3.sw-based that has the audio_decoder.mp3 role uses the lib_omx_mp3_dec_v2_arm11_elinux.so.
As can be seen in external/fsl_imx_omx/OpenMAXIL/src/component/mp3_dec/Android.mk the lib_omx_mp3_dec_v2_arm11_elinux.so library uses and links to device/fsl-codec/lib/lib_mp3_dec_v2_arm12_elinux.so, which is the software piece, provided by Freescale, that runs on the CPU so it might require licensing as you detailed.
H.264 / MPEG4 AVC decoding
I can find the OMX component that is registered to OMX core in the file external/fsl_imx_omx/OpenMAXIL/release/registry/component_register.
The OMX component OMX.Freescale.std.video_decoder.avc.v3.hw-based that has the video_decoder.avc role uses the lib_omx_vpu_dec_v2_arm11_elinux.so.
As can be seen in external/fsl_imx_omx/OpenMAXIL/src/component/vpu_dec_v2/Android.mk the lib_omx_vpu_dec_v2_arm11_elinux.so library uses and links to libvpu.so, which is obtained by building the files in external/linux-lib/vpu/ provided by Freescale.
To me it looks like this software just opens /dev/mxc_vpu device and passes buffers so that hardware VPU can decode incoming video streams.
So, I'm back to the question: am I right supposing that no license is needed for computing (decoding) which is performed on the VPU? After all I won't be shipping any software performing video decoding, as libvpu.so seems to be just passing back and forth data.
Thanks,
Diego
P.S.: I know software fallback using libav gets installed by default, but don't take that into consideration, as I'm willing to remove the fallback and the library altogether.