All of lore.kernel.org
 help / color / mirror / Atom feed
* QtMultimedia on i.MX6
@ 2013-07-04 15:03 Thomas Senyk
  2013-07-04 15:14 ` Thomas Senyk
  0 siblings, 1 reply; 25+ messages in thread
From: Thomas Senyk @ 2013-07-04 15:03 UTC (permalink / raw)
  To: meta-freescale

Hi,

I've started to investigate to see the QtMultimedia-gstreamer integration on 
the i.MX6 could be optimized.

I'm writing this mail to sync with others who might already done some work or 
investigations on this matter, to get hints where to start and what's worth to 
investigate.



State right now:

The HW-decoders are used (according to gstreamer log).
That's a very good start/out of the box experience! Good job..freescale I 
guess?

There is still a lot of cpu load:
   - 720p: smooth playback but~18% complete cpu load => ~70% of one core
   - 1080p: playback not smooth and ~27% complete cpu load -> 100% of one core 
+ some additional cpu load

The obvious reason for this cpu load is some sort of memcopy and/or 
conversion.
  ... gstreamer doesn't render into gpu-memory directly.
  ... or (if you want it the other way around) the gstreamer (/cpu) memory 
isn't mapped into gpu-memory (which is possibly on the imx6)




Started to do some digging:

One of the first things I tried was to compile gst-plugin-gl (which is part of 
the meta-fsl-arm layer via a .bbappend).
The current recipe is driver-version-1.1.0 based and is not building out of 
the box (at least not for me) ... I got gst-plugins-gl-0.10.3.1.tar.gz (based 
on 4.0.0) building.**

So, after I got it deployed I hoped for magic to happen and everything is 
perfect now ... no big surprise: it's not :) nothing changed, possibly the 
gst-pipline build by qtmultimedia is the ame.



The reason for this mail / some questions:

So I though, I write this mail before I waste a lot of time.
What does people think is the best way forward?
Try to convince QtMultimedia to use glsink?
Try to use a fakesink/memory-based-sink and try to map the cpu memory into gpu 
memory via vivante APIs?

Does anyone have c/c++ code I could try?
Ideally for direct framebuffer/EGL use (I'm not using X11)
I found: https://github.com/andreluizeng/i.MX6-Video-Streaming-Texture.git
 .. but it's crashing rather early and I'm not sure the if the time is well 
spend fix this code? Anyone used it before?
Does anyone know if gst-plugins-gl is applicable for framebuffer/EGL setups?


Greet
Thomas

** some more info in gst-plugin-gl:
It's 'detected' on the board:
root@nitrogen-1:~# gst-inspect |grep gl
opengl:  glupload: OpenGL upload
opengl:  gldownload: OpenGL video maker
opengl:  glimagesink: OpenGL video sink
opengl:  glfiltercube: OpenGL cube filter
opengl:  gleffects: Gstreamer OpenGL Effects

... if someone is interested on how I got it building, let me know. If I got 
something useful out of it (read: "it's tested") I'll start a discussion on 
how to upstream it properly into meta-fsl-arm (by the way: I find the current 
setup of how to bbappend and it's patch looks like very weird)



^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2013-07-16  8:16 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-04 15:03 QtMultimedia on i.MX6 Thomas Senyk
2013-07-04 15:14 ` Thomas Senyk
2013-07-04 21:42   ` Otavio Salvador
2013-07-04 21:53     ` Sébastien Taylor
2013-07-04 22:03       ` Otavio Salvador
2013-07-05 17:16         ` Rogerio Nunes
2013-07-09  8:14           ` Thomas Senyk
2013-07-09 11:26             ` Otavio Salvador
2013-07-09 23:53             ` Rogerio Nunes
2013-07-10  0:25               ` Philip Craig
2013-07-10  8:26                 ` Thomas Senyk
2013-07-10  9:13                   ` Philip Craig
2013-07-10  9:52                     ` Thomas Senyk
2013-07-10 10:32                       ` Philip Craig
2013-07-10 10:41                         ` Thomas Senyk
2013-07-10 13:30                           ` Philip Craig
2013-07-11 19:58                             ` Robert Winkler
2013-07-12  8:56                               ` Thomas Senyk
2013-07-15 18:18                                 ` Robert Winkler
2013-07-16  8:15                                   ` Thomas Senyk
2013-07-05 23:04     ` Eric Nelson
2013-07-06  1:52       ` Trevor Woerner
2013-07-06 13:09         ` Otavio Salvador
2013-07-06 17:09           ` Eric Nelson
2013-07-08  7:08             ` Thomas Senyk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.