[Development] i.MX6 zero copy video playback

Michael Olbrich m.olbrich at pengutronix.de
Tue Mar 4 18:02:30 CET 2014


Hi,

On Tue, Mar 04, 2014 at 05:38:57PM +0100, Thomas Senyk wrote:
> On Thursday, 27 February, 2014 17:57:43 Michael Olbrich wrote:
> > On Tue, Feb 18, 2014 at 10:18:36AM +0100, Thomas Senyk wrote:
> > > On Thursday, 13 February, 2014 13:16:42 Michael Olbrich wrote:
> > > > On Wed, Feb 12, 2014 at 10:43:25AM +0100, Thomas Senyk wrote:
> > > > > I finally got around to polish and upstream zero copy video playback
> > > > > for
> > > > > the i.MX6.
> > > > > 
> > > > > The change:
> > > > > https://codereview.qt-project.org/#change,76764
> > > > > 
> > > > > A video showcasing the functionality:
> > > > > http://www.youtube.com/watch?v=pmxsWGhrrBQ
> > > > 
> > > > Nice. Are there any limitation regarding the input QVideoFrames? I've
> > > > used
> > > > glTexDirectVIVMap in the past, and I don't think that using it on
> > > > malloc'ed
> > > > memory ever worked for me.
> > > 
> > > never tried it on malloc'ed memory ... I think gstreamer somehow reserves
> > > them in a specific memory block.
> > > 
> > > So the answer is: I don't know :)
> > 
> > So, I had some time to work with this. I found one limitation: the memory
> > must be 64 Bytes aligned. Unfortunately I have no idea how this could be
> > communicated upstream.
> > I also found that the texture cache based on the virtual address is rather
> > fragile. I've had several cases where different video frames had the same
> > virtual address. I'm not sure how to fix this. Maybe some special meta data
> > that can be used if provided or a special handle type?
> > 
> > Anyways, I've submitted some changes for review:
> > 
> > https://codereview.qt-project.org/#change,79447
> > https://codereview.qt-project.org/#change,79448
> > https://codereview.qt-project.org/#change,79449
> > 
> > Thomas, it would be great if you could test if this works for you.
> 
> Guess Andy was faster @ review :)

:-)

> I very much like change 79447, I always though this should be solved better, 
> but for some reason I never considered a config.test :)
> just tested -> works for me!

Great.

> @ 79448: where have you found video sources with all those formats?

I have my own code that generated the QVideoFrames. It's GStreamer 1.2
based and with a videotestsrc I can generate just about any format.

> @ 79449: yes, I fully agreed, but I don't have time to test right now.

It's not that easy to test for most people anyways. You need a source that
changes the format while streaming. I have full control of the pipeline, so
that's easy to test for me.

Michael

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the Development mailing list