[meta-freescale] gstreamer 1.x freescale plugings

Eric Nelson eric.nelson at boundarydevices.com
Tue Oct 15 12:16:13 PDT 2013


Thanks for the update Carlos,

On 10/15/2013 11:49 AM, Carlos Rafael Giani wrote:
> Hi,
>
> I have been working on these plugins in my spare time. Currently, there
> are two IPU plugins (a videotransform element and a sink), a GLES based
> sink using Vivante's direct textures (for smooth HD playback), a VPU
> decoder plugin, and several VPU encoder plugins. These work, but there
> are several things left to do. The encoders are relatively unfinished
> (they can encode, but need coniderably more testing), and h264
> reordering and input<->output frame association is not established yet,
> potentially messing up the timestamps.
>
Nice work getting this far!

> That said, I can reliably playback 1080p video with this. This is _not_
> a port of the existing 0.10 plugins, but written from scratch. The 0.10
> plugins have several conceptual flaws, and most importantly, are not
> built on top of the GStreamer video en/decoder base classes. A rewrite
> was just easier.
>
It's funny how that works.

> One detail that was very important to me was to avoid buffer copies as
> much as possible. With GStreamer 1.0 , defining custom allocators and
> attaching metadata to buffers is much easier to do. So for example a
> pipeline which decodes MPEG2, rotates the frame with the IPU, and
> encodes this to h264 automatically ensures the data is not unnecessarily
> copied around by the CPU. It directly wanders from VPU to IPU and VPU
> again through DMA.
>
> I am running into problems with the existing VPU wrapper library there
> (I am not directly using imx-lib). I need some way to pass user data
> through the VPU en- and decoder. That is, when I for example specify
> input data for the decoder, I need a way to also give it a user-defined
> void pointer, that is then passed through and placed into the output
> frame that corresponds to the input frame I just specified. If the
> authors of the VPU wrapper could be contacted, it would be ideal. I
> hesitate to fork it and make my fork a dependency.
>
> Also, a documentation for the VPU wrapper would be very welcome :)
>

Have you seen the file "i.MX_6Dual6Quad_VPU_API_Reference_Manual.pdf"
within the 'docs' package here (item #1):
	https://community.freescale.com/docs/DOC-94809




More information about the meta-freescale mailing list