Guanqiong,
It appears that Freescale has done a good job with GStreamer—still there are many developers who want to develop "bare metal" multimedia applications for the i.MX6. For those of us in this category who are also new to the i.MX6, the chapters you cite in both the i.MX6 Linux Reference Manual and i.MX6 Linux Users Guide, while helpful, really do not provide the proper level of instruction that a few, straightforward sample A/V encode, decode, and transcode applications would do.
And while Freescale has included the VPU test application (located in the "mxc_vpu_test" folder) with its BSP, this application is not at all straightforward since it has to cover so many use cases in a single application plus it is clear that the application is not written with the new developer in mind.
So to my question: is it possible for Freescale to provide the developer community a few, straightforward applications that illustrate how to create A/V applications using the VPU directly for video encoding, decoding, and transcoding from/to various inputs/outputs (without involving GStreamer)? As I see it, these sample applications would illustrate how:
1. to set up and manage the input/output video frame buffers for both multiple buffer and ring buffer instances;
2. to set up, initialize, and then manage the VPU codecs for encoding, decoding, and transcoding of H.264, MPEG-4,
MPEG-2, etc. video from a file, a stream, or other interface then output the result to the display or other interface;
3. to set up then manage multiplexing/demultiplexing/synchronization for various video and audio types, e.g., H.264
video and AAC audio; and
4. specific VPU codec initialize parameters effect encoding/decoding/transcoding performance (currently, this essential
information is missing—if it's available—I have not been able to find it).
If Freescale cannot make the described sample A/V described available to the i.MX6 developer community, perhaps it can enlist the community to do so.
Regards,
-Chuck